Aus Linux-Magazin 05/2001

News auf den Palm bringen mit Site Scooper

Freshmeat-News auf dem Palm

Slashdot, Freshmeat & Co. locken täglich mit Informationen – aber wann soll man sie lesen? Wer einen Palm Pilot oder kompatiblen PDA hat, wird mit Site Scooper und einigen Tools etwas flexibler beim News-Konsum.

Mit den beiden Tools Site Scooper und iSilo ziehen Sie die aktuellen News Ihrer bevorzugten Informationsquellen aus dem Internet, konvertieren die (HTML-)Daten in ein Palm-Dateiformat und übertragen dieses schließlich mit einem Sync-Tool (etwa kPilot). Dabei wird ein Cache angelegt, so dass bei täglichen Abrufen dieser Seiten nur neue Artikel gezogen werden. Um sich auf den unterschiedlich aufgebauten Webseiten zurechtzufinden, verwendet Site Scooper Templates, die die Struktur der Seiten beschreiben. Hier steht eine lange Liste, allein für Linux sind es zirka 20 Sites.

Site Scooper ist ein Perl-Skript, erfordert also keine aufwendige Kompilierung. Allerdings werden noch weitere Tools benötigt, darunter auch der als Freeware verfügbare Palm-Dokument-Viewer iSilo. Erster Schritt bei der Installation ist die Aktualisierung von Perl. Wechseln Sie als Root in ein neu angelegtes Installationsverzeichnis, das Sie später komplett löschen können.

Perl aktualisieren

Prüfen Sie, ob die Perl-Module HTML::Parser und HTML::Tagset auf Ihrem System vorhanden sind. Bei der für den Test verwendeten Distribution Red Hat 6.2 zum Beispiel fehlten sie. Der nächste Schritt ist nur nötig, falls die genannten Module nicht vorhanden sind: Sie finden HTML::Tagset und HTML::Parser wie üblich im CPAN, auch die Installationsprozedur ist Standard. Beachten Sie, dass das Tagset-Paket vor dem Parser-Paket installiert werden muss. Das komplette Vorgehen zeigt Listing 1.

Site Scooper installieren

Wenn Sie eine RPM-basierte Linux-Distribution verwenden, können Sie einfach die folgenden beiden Pakete ziehen und installieren:

wget http://sitescooper.org/released/ 
sitescooper-3.0.2-1.noarch.rpm
wget http://sitescooper.org/released/ 
sitescooper-sites-20010109-1.noarch.rpm
rpm -i sitescooper-3.0.2-1.noarch.rpm  
sitescooper-sites-20010109-1.noarch.rpm

Ein Debian-Archiv ist laut Information auf den Site-Scooper-Seiten zur Zeit nicht verfügbar. Für Debianer gilt also das Gleiche wie für alle, die lieber auf den Einsatz von RPM verzichten: Verwenden Sie stattdessen das Tar.gz-Archiv http://sitescooper.org/released/sitescooper-full.tar.gz.

Listing 1: Vorbereitung der Installation

wget http://www.cpan.org/authors/id/S/SB/SBURKE/HTML-Tagset-3.03.tar.gz
wget http://www.cpan.org/authors/id/GAAS/HTML-Parser-3.15.tar.gz
tar xzf HTML-Tagset-3.03.tar.gz
tar xzf HTML-Parser-3.15.tar.gz

HTML-Tagset installieren:

cd HTML-Tagset-3.03
perl Makefile.PL
make
make test
make install
cd ..
rm -rf HTML-Tagset-3.03

HTML-Parser installieren:

cd HTML-Parser-3.15
perl Makefile.PL
make
make test
cd ..
rm -rf HTML-Parser-3.15

iSilo

Der kommerzielle Palm-Viewer iSilo steht in einer Freeware-Version (iSilo free genannt) zur Verfügung, die Sie auf dem Palm Pilot installieren können. Zusätzlich benötigen Sie für Linux einen Konverter, der Dateien in das iSilo-Viewer-Format wandelt: iSilo386. Auch dieses Programm liegt für Linux auf der iSilo-Webseite bereit, wenn auch nur als Binary. Da das Programm statisch gelinkt ist, sollte sich daraus aber kein Problem ergeben. Die folgenden Befehle installieren den Konverter:

wget http://www.isilo.com/dl/iSilo386.zip
unzip iSilo386.zip
chmod a+x iSilo386
mv iSilo386 /usr/local/bin

Den eigentlichen iSilo-Viewer finden Sie ebenfalls unter dieser Adresse:

wget http://www.isilo.com/dl/iSiloF.zip
unzip iSiloF.zip

Überspielen Sie die entpackte Viewer-Datei iSiloF.prc anschließend auf Ihren Palm.

Auf geht’s

Im Verzeichnis /usr/share/sitescooper /site_samples/ finden sich nach der Installation von Site Scooper diverse Beispielkonfigurationen für verschiedene Webseiten. Da die beiden besonders populären News-Dienste Freshmeat und Slashdot zum Testzeitpunkt offline waren, haben wir die Konfiguration für die Linux Gazette getestet. Der Aufruf ist nun recht einfach und sieht prinzipiell wie folgt aus:

sitescooper -isilo -sites 
/usr/share/sitescooper/site_samples/ 
linux/linux_gazette.site 

Nach einigen Download-Bemühungen befindet sich in dem Verzeichnis ~/.sitescooper/txt/ eine HTML-Datei, die von Site Scooper automatisch mit Hilfe des folgenden Befehls in das vom Palm Pilot mit iSilo lesbare Format umgewandelt wird (alles in einer Zeile):

iSilo386 -y -U -Is300 -Ic -Id -i"2001-Jan-23: 
Linux Gazette" "/home/esser/.sitescooper/ 
txt/2001_01_23_Linux_Gazette/
2001_01_23_Linux_Gazette.html"  
"/home/esser/.sitescooper/prc/
2001_01_23_Linux_Gazette.pdb"

So weit die Theorie. Leider funktionierte dies mit der getesteten Version nicht. Als Lösung bietet sich folgende Vorgehensweise an:

  • Rufen Sie sitescooper mit der Option -html statt -isilo auf. So wird nur die HTML-Datei (wie im ersten Schritt) erzeugt, allerdings nicht nach dem Konvertierungsversuch gelöscht.
  • Konvertieren Sie die Datei von Hand mit dem oben angegebenen Aufruf des Tools iSilo386; dabei geben Sie hinter -i einen Titel Ihrer Wahl an.

Wenn Sie diesen langen Befehl nicht von Hand eingeben möchten, können Sie noch auf den folgenden Trick zurückgreifen: Verwenden Sie doch die bisher zum Scheitern verurteilte Option -isilo, aber zusätzlich noch die Option -keep-tmps. Durch sie wird nach dem Aufruf von iSilo386 die HTML-Datei nicht gelöscht. Dafür wird jetzt aber die volle Syntax des Aufrufs angezeigt; Sie brauchen diesen nur mit Copy & Paste aus der Ausgabe von Site Scooper zu übernehmen und manuell zu wiederholen. Die so erzeugte pdb-Datei können Sie dann auf den Palm Pilot übertragen und mit iSilo lesen.

Dokumente lassen sich in iSilo aus einer Liste auswählen und über die Auf-/Ab-Tasten des Palm Pilot angenehm scrollen. Beim Verlassen eines Dokuments merkt sich iSilo die aktuelle Leseposition, so dass Sie jederzeit dort weiterlesen können.

Site Scooper hat eine wirklich ausführliche Manpage ( man sitescooper), die eine Vielzahl von Optionen ausführlich beschreibt. Wenn der beschriebene Konvertierungs-Bug bei Ihnen nicht auftritt, können Sie ein wenig mit den verschiedenen Optionen experimentieren. Auch die restliche Dokumentation ( /usr/doc/sitescooper-3.0.2/) ist empfehlenswert.

Freshmeat-News auf dem Palm

Freshmeat-News auf dem Palm

iSilo – frei oder Shareware

Die Shareware-Version von iSilo, für die rund 25 Mark zu bezahlen sind, bietet die folgenden zusätzlichen Features gegenüber der Freeware-Variante: Darstellung von Bildern, bessere Formatierung (verschiedene Größen, fett, kursiv, unterstrichen), Hyperlinks, Copy & Paste (ein echter Mangel der freien Version) und Bookmarks fürs schnelle Wiederfinden bestimmter Textstellen.

Site Definitions

Mit den Beispiel-Site-Definitions in /usr/share/sitescooper/site_samples/ brauchen Sie sich nicht zufrieden zu geben – die Syntax der Site Definitions ist verständlich und zudem in der Dokumentation gut erklärt. Site Scooper unterscheidet zwischen drei Arten von Websites: one level, two level und three level. Eine One-Level-Site ist die simpelste Variante: Hier genügt die Angabe einer einzigen URL, die von Site Scooper geladen und in das benötigte Format konvertiert wird. Eine Two-Level-Site beginnt mit einer Index-Seite, die Links auf die eigentlichen Seiten enthält ( www.xy.de/article?id=264). Three-Level-Sites sind nur ein Spezialfall der zweiten Variante: Hier gibt es auf der Startseite eine Einteilung in Ausgaben wie bei Zeitschriften: Jede Seite der zweiten Ebene ist dann wieder eine Index-Seite mit Links auf die Artikel.

Zu One-Level-Sites gibt es in der Dokumentation ein Beispiel, diese Seiten sind aber nicht weiter spannend. Typische Two-Level-Sites sind etwa Freshmeat und Slashdot. Hier folgt zwar auf jeden Link noch ein kurzer Text (die ersten Sätze des Artikels), diese kann Site Scooper aber ignorieren. Ein kurzes Beispiel finden Sie im Kasten “Linux-Community im Palm”. ( uwo)

Infos

[1] Linux-Anwendungen für den Palm: http://mobilix.org/pda_linux_palm.html

[2] Site Scooper: http://sitescooper.org

[3] iSilo Viewer für den Palm und Konverter für Linux: http://www.isilo.com

Linux-Community im Palm

Die folgende Site Description erklärt beispielhaft die zu verwendende Syntax:

# community.site  SiteScooper Site File fuer die Linux-Community
#

URL:            http://www.linux-community.de/Backends/lc.inc
Name:           Linux-Community
Levels:         2

StoryURL:       .*story.storyid.*
StoryStart:     <tr>
StoryEnd:       Qualität: <font

Zur Erklärung: lc.inc ist eine Datei, die Links auf die letzten zehn Linux-Community-Artikel enthält; jede Zeile in dieser Datei hat dabei die Form:


<a href="http://www.linux-community.de/Neues/%20story?storyid=1122">Linux-Binaries auf NetBSD PowerPC</a>

Die Angabe URL in der Site Definition verweist also auf die zu parsende Startseite; der Name hat nur informativen Charakter. Levels legt hier fest, dass es sich um eine Two-Level-Site handelt (siehe Text). Interessant ist der StoryURL-Eintrag: Hier wird ein regulärer Ausdruck (in Perl-Syntax) erwartet, über den URLs identifiziert werden. Da unsere Startdatei nichts anderes als URLs enthält, eignet sich hier prinzipiell .* (der Punkt steht für ein beliebiges Zeichen, das Sternchen für eine beliebige Häufigkeit).

Um in einer Datei mit zahlreichen URLs (einige für Artikel, andere für Banner, Menüführung etc.) zwischen guten und schlechten URLs unterscheiden zu können, muss eine ausführlichere Beschreibung der richtigen URLs erfolgen – der hier verwendete Ausdruck .*story .storyid.* passt auf beliebige Strings, in denen story, dann ein beliebiges Zeichen und dann storyid vorkommen, also werden davon die Links auf Artikel erfasst. Die folgenden StoryStart- und StoryEnd-Einträge sind ebenfalls reguläre Ausdrücke, die innerhalb eines Artikels Start- und Endmarken definieren.

Ruft man sitescooper mit dieser Site Description und dem Zielformat html auf (sitescooper -html -sites community.site), kann man prüfen, wie das Endergebnis aussieht. Die erzeugte HTML-Datei enthält keine Banner oder überflüssigen Daten mehr, sondern nur die ersten zehn Artikel.

Diese Site Description ist noch optimierbar: Die Artikel enthalten jeweils einen Zeile mit für den Palm nutzlosen Links (Anmelden, FAQ etc.) – hier könnten Sie mit einem StoryHTMLPreProcess-Befehl überflüssige Teile aus der HTML-Datei entfernen, bevor sie durch die Konvertierung läuft.

Preview der Linux-Community-Aufbereitung für den Palm Pilot.

Preview der Linux-Community-Aufbereitung für den Palm Pilot.

LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben