Anleitung: Iron Blogger Skript (reloaded)

Achtung, diesen Beitrag schrieb ich vor über 12 Jahren. Beachte, dass sich in der Zeit viel geändert haben kann und wird! Nicht alles lässt sich immer noch so anwenden, manches passt auch gar nicht mehr.

Nach einigen Änderungen am Skript und dem Aufruf von Mako Hill, dass jemand mal das Iron Blogger Skript dokumentieren soll, wird es Zeit, endlich mal meine Anleitung auf den aktuellsten Stand zu bringen. Die alte Anleitung ist damit hinfällig. Wundert euch nicht, wenn euch einiges bekannt vorkommt – Dinge, die sich nicht geändert haben, habe ich aus der alten Anleitung übernommen.

The English version of this guide will be updated soon. Stay tuned.

In meiner Anleitung gehe ich wieder davon aus, dass ihr Debian nutzt. Solltet ihr ein anderes System verwenden, so müsst ihr die Befehle anpassen und evtl. heißen die Paketnamen dann ein wenig anders.

Was muss alles installiert sein?

  • git
  • python
  • python-yaml
  • python-dateutil
  • python-mako
  • python-lxml
  • python-feedparser
  • ledger
  • mutt

Wie installiere ich die Pakete?

Gebt auf der Konsole folgende Zeile ein – auch wenn hier ein Zeilenumbruch angezeigt werden sollte, es ist eine einzige Zeile!:

sudo apt-get install git python python-yaml python-dateutil python-mako python-lxml python-feedparser ledger mutt

Es werden die benötigten Pakete herunter geladen und installiert. Wenn eines der Pakete schon vorhanden ist, dann wird dieses automatisch übersprungen.

Woher bekomme ich das Iron Blogger Skript?

Wechselt auf der Konsole in das Verzeichnis, in dem ihr das Iron Blogger Skript später haben wollt, und führt folgende Zeile aus:

git clone https://github.com/chaosblog/iron-blogger.git

Es wird automatisch ein Verzeichnis „iron-blogger“ angelegt, dieses beinhaltet das Skript.

Was muss ich bei meinem Blog vorbereiten?

Erstellt eine neue Seite (kein Artikel) für die Teilnehmerliste. Verpasst der Seite eine Überschrift nach belieben.

Macht euch keine Mühe Text auf die Seite zu schreiben – jeglicher
Inhalt der Seite wird bei einer Generierung der Teilnehmerliste überschrieben.

Navigiert in eurem WordPress-Admininterface zu „Seiten“, in der Auflistung der vorhanden Seite taucht die gerade erzeugte Teilnehmerliste auf. Fahrt mit der Maus über den Link und merkt euch die ID-Nummer der Seite, diese wird später gebraucht.

Wenn der Link zur Seite beispielsweise https://chaosblog.wordpress.com/wp-admin/post.php?post=2&action=edit lautet, dann wäre die ID die ihr euch merken müsst die 2.

Was muss ich anpassen?

Die zentrale Konfigurationsdatei.
Nach meinen Änderungen gibt es nun eine zentrale Konfigurationsdatei – es ist nicht mehr nötig, wie bisher, verschiedenste Dateien zu bearbeiten. Eine Beispiel-Konfigurationsdatei wird schon mitgeliefert. Diese heißt „settings.cfg.dist“. Kopiert die Datei und gebt ihr den Namen „settings.cfg“. Die Datei hat folgenden Inhalt:

[general]
mail=addyourmail@here
start_date=YYYY/MM/DD
 
[blogsettings]
username=john_doe
xmlrpc_endpoint=http://blog-URL.tld/xmlrpc.php
blog_id=0
participants_page_id=12

[general]
Im Abschnitt general sind Mailadresse und Startdatum zu definieren.
Tragt bei „mail=“ die Mailadresse ein, die die Auswertungsmails am Ende einer Wertungswoche erhalten soll. Die Variable „start_date“ muss das Datum enthalten, an dem euer Iron Blogger Projekt gestartet ist. Das Datumsformat ist hierbei wie folgt festgelegt: YYYY/MM/DD. Das Jahr also vierstellig, der Monat zweistellig und der Tag ebenfalls zweistellig.

[blogsettings]
Der Abschnitt blogsettings enthält die notwendigen Informationen um mittels des Skriptes auf einen WordPress-Blog zugreifen zu können. Der „username“ muss den Nutzernamen eures WordPress-Zugangs enthalten. Die Variable „xmlrpc_endpoint“ muss die URL eures Blogs gefolgt von „/xmlrpc.php“ (ohne Anführungszeichen) enthalten.
Wenn eure Blog-URL z.B. http://chaosblog.wordpress.com heißt, dann wäre der einzutragende Wert http://chaosblog.wordpress.com/xmlrpc.php.
Sollte das Schema eurer XML-RPC-URL abweichen, dann schaut bitte direkt innerhalb der Administrationsoberfläche vorn WordPress nach, wie die URL lautet.
Die Variable „blog_id“ lasst ihr auf 0 stehen. Theoretisch könnte hier auch ein anderer Wert stehen – dieser Fall ist mir aber bisher noch nie in der Praxis begegnet. Solltet ihr hier etwas anderes eintragen müssen, dann wisst ihr es auch 😉
Als Letztes fehlt noch die participants_page_id. Dies ist die ID der Teilnehmerseite, die wir uns vorhin gemerkt haben.

Die Liste der Blogger
Die Datei bloggers.yml enthält die Blogger, die an eurer Iron Blogger Aktion teilnehmen.

username:
links:
- [Blogname 01,'http://blog-URL.tld/']
- [Blogname 02,'http://blog-URL02.tld/']
name: Jon Doe
start: YYYY/MM/DD

Der username entspricht dem Nick des Bloggers auf Twitter. Solltet ihr auch Blogger ohne Twitteraccount haben, so schreibt hier einen Nutzernamen hin, den ihr euch ausdenkt und fügt den optionalen Eintrag twitter:no zu dem Nutzer hinzu.

Im Abschnitt links tragt ihr den oder die Blogs ein, die ein einzelner Blogger betreibt. Hier werden nur ein Name und ein Link eingetragen – eine Feed-URL wird später automatisch ermittelt und eingetragen.
Das Feld name erhält den Klarnamen, bzw. dass was als Klarname angezeigt werden soll.
Damit auch nach dem Start der Aktion neue Teilnehmer hinzustoßen können, gibt es das Feld start. Dort wird eingetragen, ab wann ein Nutzer in die Wertung einfließt.
Achtung:Wenn ihr einen Wert in der Vergangenheit eintragt, heißt es nicht, dass für den User auch rückwirkend die Gebühren berechnet werden!
Zum besseren Verständnis hier ein Beispiel:
chaosblog:
links:
-[Chaosblog, 'http://chaosblog.wordpress.com/']
name: Marcus S.
start: 2012/01/01
twitter: no

Wie führe ich das Skript aus?

In Wirklichkeit ist es nicht ein einzelnes Skript, sondern mehrere Skripte, die zusammenarbeiten. Daher gibt es eine bestimmte Reihenfolge, die ihr einhalten müsst.

      1. Tragt alle Teilnehmer wie oben beschrieben in die Datei bloggers.yml ein.
      2. Führt das Skript import-feeds.py durch Eingabe von
        ./import-feeds.py
        aus. Die Datei bloggers.yml wird gelesen und zu allen Blog die noch keine Feed-URL eingetragen haben, wird die Feed-URL erzeugt.
      3. Nun könnt ihr die Teilnehmerliste auf eurem Blog aktualisieren lassen. Dies geschieht wieder auf der Konsole, diesmal ist der Befehl:
        ./update-participants.py
        Ihr werdet nun aufgefordert, euer Passwort einzugeben – dies ist das Passwort mit dem ihr euch auch im WordPress einloggt.
        Nach einigen Sekunden erscheint wieder der Eingabeprompt und die Teilnehmerliste eures Blogs wurde aktualisiert.
      4. Die Ermittlung der neuen Beiträge der einzelnen Teilnehmer übernimmt scan-feeds.py. Dieses Skript lädt nacheinander alle Feeds der Blogs und speichert die Titel und die Adressen der neuen Beiträge. Dies geschieht via:
        ./scan-feeds.py
      5. Nun könnt ihr einen Probelauf des Auswertungsskripts weekly-update.py starten. Der Parameter -n sorgt für einen Probelauf – es wird keine Mail verschickt und kein Blogartikel erzeugt. Allerdings wird der Text, der Mail, die generiert wird, auf der Konsole ausgegeben. Als zweiten Parameter beim Probelauf erwartet das Skript ein Datum im Format YYYY-MM-DD (z.B. 2012-01-19)
        ./weekly-update.py -n 2012-01-19
        Das Datum definiert die Woche für die die Auswertung erzeugt wird. Basierend auf dem Parameter und dem weiter oben konfigurierten Start-Datum wird die Woche berechnet. Für das Skript muss eine Woche nicht zwingend mit Sonntag oder Montag beginnen.
        Wenn ihr den Parameter -n durch -q ersetzt, bekommt ihr noch eine kompaktere Ansicht des Probelaufs.
      6. Jetzt wird es ernst. Wir lassen nun den Blogbeitrag mit der Auswertung und die E-Mail dazu erzeugen. Wieder wird das Skript weekly-update.py ausgeführt, diesmal wird allerdings nur ein Parameter, das Datum, übergeben.
        ./weekly-update.py 2012-01-15
        Wie bei der Aktualisierung der Teilnehmerliste werdet ihr auch hier nach eurem WordPress-Passwort gefragt.
        Nach einigen Sekunden ist der Blogpost erstellt und ihr solltet eine neue E-Mail in eurem Postfach vorfinden.

Fertig. War doch auch diesmal gar nicht schwer und sogar leichter als bei der ersten Version, oder? 😉

Noch ein Tipp: Legt euch bei WordPress.com einfach einen neuen bzw. einen weiteren Blog an, den ihr auf privat schaltet. Diesen könnt ihr dann als Spielwiese zum Testen nutzen.

Achtung, diesen Beitrag schrieb ich vor über 12 Jahren. Beachte, dass sich in der Zeit viel geändert haben kann und wird! Nicht alles lässt sich immer noch so anwenden, manches passt auch gar nicht mehr.

About chaosblog

3 comments on “Anleitung: Iron Blogger Skript (reloaded)

  1. Pingback: Dentaku
  2. Hi,

    nach vielen Mühen und ner Menge Hilfe (kann nämlich selbst kein Python) habe ich das Script soweit zum Laufen gebracht. Nur eine Frage ist jetzt noch offen. Wenn Schulden bezahlt werden. Wo wird das eingetragen? Das fehlt mir auch hier in der Anleitung.

    Gruß Martin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert