PythonmaniaScript Different! |
|
|
Navigation
Artikel zu Python
Warum Python? Hallo Welt Wie alt ist der Kapitän? Schmetterlingskurve Apfelmännchen Dancing Python User-Agenten fakeMail() Template Engine Python & XML (1) wxPython (1) wxPython (2) wxPython (3) How To's ftp mit Python Filedialog Piddle und Mac OS X XML-RPC Blogger API Zope und Python ZWiki und Plone Navigation und DTML »Last Update« Book Reviews Python und Tkinter Python Cookbook Alte Artikel O'Reilly MacPython & Tkinter (d) MacPython & Tkinter (e) Modul W Easy Dialogs File Dialogs Archiv Oktober 2009 Juni 2009 Mai 2009 April 2009 März 2009 Februar 2009 Januar 2009 Dezember 2008 November 2008 Oktober 2008 September 2008 August 2008 Juli 2008 Juni 2008 Mai 2008 April 2008 März 2008 Februar 2008 Januar 2008 Dezember 2007 November 2007 Oktober 2007 September 2007 August 2007 Juli 2007 Juni 2007 Mai 2007 April 2007 März 2007 Februar 2007 Januar 2007 Dezember 2006 November 2006 Oktober 2006 September 2006 August 2006 Juli 2006 Juni 2006 Mai 2006 April 2006 März 2006 Februar 2006 Januar 2006 Dezember 2005 November 2005 Oktober 2005 September 2005 August 2005 Juli 2005 Juni 2005 Mai 2005 April 2005 März 2005 Februar 2005 |
Anzeigen
|
|
http- und ftp-User Agenten in Python
Wer einen RSS-Channel via viewRssBox() in seine Manila-Site einbindet, wird feststellen, daß dabei Seltsames passiert. Entweder werden Kürzel gar nicht ausgeführt oder - beim ScriptingNews-Format - Makros nicht. Egal wie man es dreht und wendet, der Channel sieht seltsam aus. Da ich sowieso ein How To schreiben wollte, wie man via Pythons Also habe ich ein kleines Python-Script geschrieben, das folgendes macht:
Wenn ich dieses Skript nach jeder Änderung meiner Manila-Site aufrufen - und auf dem Macintosh reicht dafür ein Doppelklick - habe ich auf meinem Server immer eine aktuelle xmlrss-Datei liegen. Voila, hier ist der Code:
Das Skript ist erfreulich kurz, was man den umfangreichen mitgelieferten Bibliotheken verdankt. Aber es ist ein vollwertiger User Agent.
Als erstes fragt er ordnungsgemäß die Datei
Die Instanz von Die nachfolgenden Substitutionen nehmen wir an diesem String durch. Das geht schneller, als wenn wir ihn in einer Datei zwischenspeichern.
Zuerst schmeißen wir alle Danach gibt es noch ein paar kosmetische Verschönerungen. Die Doppelpunkte (::) rechts und links von den Überschriften habe ich eigentlich nur gesetzt, damit klar ist, daß das, was Ihr unten seht, auch tatsächlich die geänderte Datei ist.
Erst danach wird eine Datei auf den Client geschrieben (
Dann erzeugen wir eine Instanz der Klasse
Danach wechseln wir das Verzeichnis und speichern die Datei dort ab. Textdateien werden mit Zum Schluß schließen wir noch ordnungsgemäß die Datei und das war es dann schon. Das Skript funktioniert anstandslos. Es soll aber nicht verschwiegen werden, daß es auf dem Macintosh ebenfalls gelegentlich zu dem berüchtigten socket not connected-Fehler stößt, der auch Netscape-Usern auf dem Mac das Leben mit Manila-Sites so schwer macht und zu zahlreichen Doppelpostings führt. Da wir in unserem Skript aber nicht nach Manila hochladen, genügt es einfach, das Skript erneut aufzurufen. (Irgendwie scheint der Internet Explorer eine eigene Socket-Implementierung mitzubringen, die sich geschickt an diesem Bug vorbeimogelt.) Ja, und den Channel? Den können wir nun z.B. mit folgendem Manila-Makro einfach aufrufen:
Und dann erscheint der Schockwellenreiter zwar der Bilder beraubt, aber in voller Schönheit. (Allerdings werden keine Shortcuts ausgeführt. Wenn hier einer eine Lösung weiß, bin ich dankbar.) Vergleiche auch How To: ftp mit Python. Werbung: |
||