Das Wikipedia Plugin für den zBot schlägt einen Begriff bei Wikipedia nach und sendet die Definition (den ersten Abschnitt) zurück. Ist die Seite eine Begriffsklärung, so werden alle Möglichkeiten aufgelistet.
Zum Laden des Wikipedia Artikels wird das CPAN Modul LWP::UserAgent verwendet, welches also installiert sein muss, damit das Plugin funktioniert. Des Weiteren werden noch die CPAN Module HTML::Entities und HTML::TreeBuilder benötigt.
Die Datei “Wikipedia.pm” braucht nur ins Verzeichnis “plugins” kopiert zu werden. Dann kann z.B. man mit dem Befehl
wiki jabber
die Definition von Jabber abrufen (wenn die benötigten CPAN Module installiert sind).
Download: Wikipedia.pm
Update: Nun werden alle Wörter automatisch groß geschrieben. Ansonsten werden nicht alle Artikel gefunden (z.B. brownsche bewegung). Ansonsten wurde nur der Code etwas verschönert. Das Problem mit den Umlauten konnte ich jedoch noch nicht lösen (siehe unten).
Leider habe ich auch hier Probleme mit den Umlauten. Die meisten Artikel von Wikipedia werden richtig angezeigt. Bei wenigen Artikeln wie z.B. Thinkpad oder Schweiz werden die Umlaute jedoch nicht als utf8 interpretiert. Weder utf8::encode/utf8::decode noch die CPAN Module Encode oder HTML::Encoding haben geholfen (oder ich hab da was falsch gemacht). Falls jemand weis, woran das liegt, wäre ich über einen Hinweis dankbar. Weitere Infos in den Kommentaren.
Folgende Beiträge könnten Dich auch interessieren:
Schlagworte: Bot, Jabber, Wikipedia








Zeig mal den Code, der Probleme macht. Vielleicht finde ich was…
Hallo Renée,
der Code ist in der Wikipedia.pm (hier in diesem Artikel). Habe den Quelltext jetzt noch etwas besser kommentiert und neu hoch geladen. Meine Konsole (gnome-terminal mit utf8) hat die Umlaute (z.T.) richtig interpretiert, jedoch nicht der Jabber Client (habs mit Pidgin und Gajim probiert). Von daher könnte es Vorteilhaft sein, das Plugin im Bot selbst zu Testen.
Ich habe das Problem ein wenig eingrenzen können. Der Code wird nach Paragraphen (<p>) durchsucht und der erste genommen. Da aber bei einigen Artikeln der erste Paragraph nicht der Definition entspricht sondern manchmal auch etwas aus der rechten “Übersichtsbox” ist, habe ich next if… eingebaut. Wenn die Bedingung wahr ist (also der nächste Paragraph genommen wird), tritt das Problem mit den Sonderzeichen auf.
Danke, dass Du mal drüber schauen magst.
Gruß
zimon