Das Online-Auktionshaus Ebay bietet nach eigenen Angaben allein in Deutschland Zugriff auf mehr als eine Million Artikel. Um so schwerer wird es bei dieser Angebotsdichte, eine bestimmte Auktion zu finden. Das hier vorgestellte Skript »ebaywatch« (siehe Listing 1) sendet in regelmäßigen Abständen definierbare Suchanfragen an den Ebay-Server und wertet die gefundenen Auktionen nach ihrem Abschlussdatum aus.
Nähert sich eine Auktion ihrem Ende, verpackt das Skript eine kurze Beschreibung mit der URL zur Auktion in eine Instant-Messenger-Nachricht (IM) und schickt diese über den Jabber-Server an einen Gaim-Client[5]. Gaim lässt die Nachricht daraufhin dem interessierten Benutzer auf den Bildschirm flattern (siehe Abbildung 1). Ein Mausklick auf die URL genügt dann, um einzuschreiten und mitzusteigern.
Die Datei ».ebaywatchrc« im Homeverzeichnis des Anwenders legt fest, nach welchen Stichworten der Agent auf der Ebay-Website suchen soll. Jede nicht auskommentierte Zeile steht für eine Suchanfrage. Die Zeilen
# ~/.ebaywatchrc
dwl 650
nikon
definieren zum Beispiel Anfragen nach der D-Link-Netzwerkkarte DWL-650 und nach allen möglichen Produkten der Firma Nikon.
Das Skript durchforstet die Titelfelder der einzelnen Auktionen und unterstützt mit den in[2] beschriebenen Kürzeln sogar erweiterte Suchfunktionen. So findet zum Beispiel die Zeile »foto -nikon« alle Fotoartikel, aber keine Produkte der Firma Nikon. Der Suchstring »beatles (dvd,cd)« fördert alle Angebote von Beatles-CDs und -DVDs ans Licht.
CPAN-Module für Jabber und Ebay
Wie so oft hat sich bereits jemand nach dem Motto "I wrote code, so you don\'t have to" (siehe[6]) daran gemacht, die Suche in den Ebay-Beständen als Perl-Modul zu realisieren. In den CPAN- Archiven findet sich Martin Thurns »WWW::Search::Ebay« mit dem Modul »WWW::Search::Ebay::ByEndDate«. Es generiert die vom Benutzer vorgegebenen Suchabfragen und sortiert die eintrudelnden Ergebnisse nach dem Enddatum - perfekt!
Das ebenfalls beim CPAN erhältliche »Net::Jabber«-Modul von Ryan Eatmon enthält ein vollständiges API, um funktionsfähige Jabber-Clients zu schreiben. Ebaywatch nutzt lediglich einen kleinen Teil davon: Es muss sich im Bedarfsfall nur schnell mit dem Jabber-Server »jabber.org« auf Port 5222 verbinden, ihm seine Anwesenheit mitteilen, eine Nachricht an den Mandanten abschicken und sich dann gleich wieder verabschieden. Wer mehr Funktionen nutzen will, findet sie in dem Buch des mächtigen Jabberers DJ Adams (siehe[3]).
Zwei in einem</>
Um den Ablauf zu vereinfachen, benutzen sowohl das Überwachungsskript als auch der Empfänger den gleichen Jabber-Account. Das ist möglich, da der Jabber-Server es erlaubt, sich mit einem einzigen Benutzernamen von mehreren IM-Clients aus gleichzeitig einzuloggen. Damit der Server die verschiedenen eingeloggten Benutzer voneinander unterscheiden kann, qualifizieren diese sich zusätzlich zu ihrem Benutzernamen noch mit einer so genannten Resource. Sie besteht aus einem String, der jeden Client in Verbindung mit dem Benutzernamen eindeutig identifiziert. Das Überwachungsskript benutzt den Resource-Namen »ebaywatcher«, während Gaim seinen eigenen Resource-String definiert. Neuere Gaim-Versionen erlauben es auch, die Resource über ein Dialogfenster einzustellen.
Abbildung 1: Ein Perl-Agent meldet pünktlich drei Ebay-Auktionen, die in wenigen Minuten beendet sein werden. Der Anwender hat den Agenten nach bestimmten Suchbegriffen auf dem Ebay-Server suchen lassen.
« Zurück
1
2
3
4
Weiter »