[SUCHE] Autoreload + Tonbenachrichtigung bei "Codewort"

M

mastermischke

Neues Mitglied
Thread Starter
Dabei seit
10.05.2010
Beiträge
10
Reaktionspunkte
0
Hallo Leute,

also ich habe folgende Situation.

Ich suche ein Tool, dass eine bestimmte URL ( Website ) in nem Zeitabstand von 10 Sekunden automatisch aktualisiert.

Bei jedem aktualisieren soll es die dann neu geladene Website auf bestimmte Wörter absuchen die ich vorher eingestellt habe.

also zum beispiel "einlieferungsbeleg".

wenn das tool dann eines der vorher festgelegten wörter findet, soll ein ton / wav / mp3 abgespielt werden.


kennt da jemand ein tool / programm?
 
Eine Möglichkeit wäre ein Shellskript:
Code:
while true
do
curl $1 |grep $2
if [ $? == 0 ]
then
say Gefunden
fi
sleep 10
done
Abgespeichert als 'websitesearch.sh' wird es mit './websitesearch.sh http://domain.tld/site.html suchwort' aufgerufen
 
kann ich so auch mehrer suchwörter definieren? und wie wo lege ich den ton fest?

btw: ich bin absoluter mac neuling ( hätte ich vll vorher sagen sollen :D )
 
say ist ein Shellprogramm, dass die das dahinter geschriebene Wort gesprochen ausgibt. Mehrere Wörter könntest du grep mit RegExp mitgeben. Die Manpage davon wird dir verraten wie.
 
also ich hab davon bisher absolut keine Ahnung und Bitte da einfach mal um etwas nachsicht ;-)

trotzdem schonmal danke für deine hilfe!


grep -i "(wort1|wort2|wort3)"

grep steht hier für das suchen, korrekt?

-i ignoriert Groß und kleinschreibung

also zum beispiel

grep -i "(kaffe|butter|milch)"

wenn ich das jetzt in einen Zusammenhang mit dem von dir genannten code bringe

Code:
while true
do
curl $1 |grep $2
if [ $? == 0 ]
then
say Gefunden
fi
sleep 10
done

1.) Wo bringe ich dem Programm dann bei, was grep(also meine 3 worte ) ist? -> Einfach grep $2 durch grep -i "(wort1|wort2|wort3)" ersetzen?

2.) Kann ich für jedes grep wort einen eigenen ton ( der zbsp. dem suchwort entspricht ( say Kaffe, say butter, say milch ) festlegen?

3.) Wo lege ich dann fest, welche URL überwacht werden soll? ( es ist immer die gleiche URL (https:// ) -> (curl $1 |grep $2 --- also für $1 einfach den URL Link ? )
 
Zuletzt bearbeitet:
Wenn du für jedes Wort einen eigenen Ton haben möchtest wäre sowas interessant (Lösung für 2):
Code:
while true
do
curl $1 > file.tmp
#ab hier wiederholfen für jedes Wort und $2 um einen erhöhen
grep file.tmp $2
if [ $? = 0 ]
then
say Wort 1 gefunden
fi
#hier wiederholen zu Ende
sleep 10
done
Soll jedes Mal das gleiche ausgegeben werden (Lösung für 1):
Code:
while true
do
curl $1 |grep -i "($2|$3|$4)" # Beliebig erweiterbar
if [ $? == 0 ]
then
say Gefunden
fi
sleep 10
done
$1 bis $9 steht für die Parameter, die du dem Skript mitgibst (Nur die 9 möglich! Wenn du mehr brauchst musst du shift verwenden!)

Lösung für 3:
Wenn die URL tatsächlich immer gleich bleibt kannst du $1 durch die URL austauschen. 'curl' ist das Programm, was die Seite aufruft. Eine Möglichkeit wäre also:
Code:
curl https://www.macuser.de/
 
nochmals Danke für deine Hilfe.

Allerdings funktioniert das nicht so ganz.

Habe das mal als Beispiel wie folgt "programmiert"

So stehst in meiner websitesearch.sh

Code:
#!/bin/bash
while true
do
curl http://www.ekrit.de/serious-gamer |grep -i "(Starcraft2)"
if [ $? == 0 ]
then
say Arbeit
fi
sleep 10
done

kommt leider kein ton oder sonstwas, obwohl auf der website starcraft bzw starcraft2 steht.

er lädt alle 10 sekunden neu bzw überträgte daten, dass kann ich im Terminal sehen. Mehr aber auch leider nicht.

Eine Idee wodran es liegen könne?
 
geht denn "say Test" überhaupt?
also kommt audio raus?
Spricht er mit dir? ;)
 
Er sucht jetzt nach dem String (Starcraft). Gib grep den Schalter -E mit:
Code:
curl http://www.ekrit.de/serious-gamer |grep -i -E "(Starcraft2)"
Das nächste Problem ist, dass die Seite tatsächlich KEIN Starcraft enthält. Die URL ist schlicht falsch. Sie muss am Ende einen / haben.
 
wenn ich einfach nur so "say test" ins terminal eintippe, kommt auch nen ton bzw er sagt schön test ;)
 
wofür steht "-E" ?
 
man grep -> -E, --extended-regexp
Interpret PATTERN as an extended regular expression (see below).
 
wenn ich mir das script so ansehe... hm...
ich glaub ich hau das auf meinen kleinen linux server und häng da noch prowl hinten dran ^^
audiofile ist doch langweilig wenn man sich ne push nachricht aufs iphone ziehen kann ^^

nächste mal wenn der apple store down geht könnte man dass dann starten und sich updaten lassen :cool:
 
ah super.

für die beispiel seite aus dem code von oben funktioniert es jetzt ohne probleme.

allerdings funktioniert es für eine https:// Seite leider nicht.

Gibts da was was man beachten sollte?
 
https funktioniert nicht ohne Zertifikat. Du könntest curl das Zertifikat mitgeben oder mit Sicherheit auch irgendwie Warnungen ignorieren. Hierzu einfach mal in die manpage gucken.
 
ok danke für die Hilfe.

Ich werde mich mal schlau machen.
 
Zurück
Oben Unten