Anleitung: Iron Blogger Skript

20 01 2012

Wie bereits in meinem letzten Beitrag erwähnt, läuft auf meinem Server das Iron Blogger Skript mit einigen Anpassungen.

Hier eine kleine Anleitung, wie ihr das Skript bei euch installieren könnt.

Diese Anleitung gibt es auch in (miesem) Englisch.

Damit niemand meine Änderungen erneut machen muss, habe ich einen Fork auf Github erstellt und meine Änderungen dort wieder hochgeladen.

In meiner Anleitung gehe ich 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 wird, 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?

Aktuell gibt es noch keine zentrale Konfigurationsdatei, dies werde ich bei Gelegenheit noch ändern. Sobald das geschehen ist, werde ich die Änderungen wieder zu Github hochladen.

  1. render.py
    In der Datei render.py muss der Start eures Iron Blogger Events angepasst werden. Dies ist in Zeile 13 definiert:START = datetime.datetime(2011, 12, 25, 2)Das Datumsformat ist wie folgt: yyyy, mm, dd, h
    Das Jahr (vierstellig), der Monat (zweistellig), der Tag (zweistellig), die Stunde (im 24-Stundenformat).
  2. update-participants.py
    In der Datei update-participants.py müssen die Zeilen 10-13 angepasst werden.XMLRPC_ENDPOINT = 'http://blog-URL.tld/xmlrpc.php'
    USER = 'username'
    BLOG_ID = 0
    PAGE_ID = 12
    Der XMLRPC_ENDPOINT ist die URL eures Blogs gefolgt von „/xmlrpc.php“ (ohne Anführungszeichen).
    Wenn eure Blog-URL z.B. https://chaosblog.wordpress.com heißt, dann wäre der einzutragende Wert https://chaosblog.wordpress.com/xmlrpc.php
    USER ist euer Nutzername, den ihr beim Login eures Blogs nutzt.
    Die BLOG_ID dürfte in den meisten Fällen 0 sein, in Ausnahmefällen muss dies geändert werden.
    PAGE_ID ist die ID der Teilnehmerseite, die wir uns vorhin gemerkt haben.
  3. weekly-update.py
    In der Datei weekly-update.py müssen analog zur Datei update-participants.py die Zeilen 11-13 angepasst. werden.XMLRPC_ENDPOINT = 'http://blog-URL.tld/xmlrpc.php'
    USER = 'username'
    BLOG_ID = 0
    Diesmal muss allerdings keine PAGE_ID angegeben werden, da die wöchentlich geposteten Beiträge Artikel und keine Seiten sind.
  4. bloggers.yml
    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 – allerdings müsst ihr dann auch die Templates anpassen, die die Auswertung und die Teilnehmerliste generieren – hier wird basierend auf dem Usernamen ein Link zu Twitter generiert.
    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, 'https://chaosblog.wordpress.com/']
    name: Marcus S.
    start: 2012/01/01
  5. email.txt
    Nun eine kleine Änderung. In der Datei email.txt müsst ihr in Zeile 3 die Zeichenkette „addyourmail@here“ durch eure E-Mail-Adresse ersetzen.

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.
  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 -n 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 gar nicht schwer, oder? 😉

Was jetzt noch fehlt, ist eine zentrale Konfigurationsdatei, in der man alle nötigen Änderungen zentral vornehmen kann.
Des Weiteren sollte es noch möglich sein, das WordPress-Passwort zu hinterlegen, damit das Skript auch voll automatisiert ausgeführt werden kann.
Eine Verbesserung wäre auch das Auswertungsskript quasi „lautlos“ laufen zu lassen – es wird keine Mail verschickt und kein Blogpost erstellt – aber die Finanzen werden aktualisiert. Damit könnte man das Skript auch ohne Weiteres bei bestehenden Iron Blogger Projekten einsetzen.

Beides werde ich im Laufe der Zeit noch implementieren und auf Github hochladen.

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 nutzen.

Advertisements

Aktionen

Information

11 responses

20 01 2012
Iron Blogger. Jetzt erst recht. « ChaosBlog

[…] Anleitung, wie ihr das Skript selbst zum Laufen bekommt, folgt gibt es hier. Bewerten: Teilen Sie dies mit:TwitterFacebookE-MailDruckenGefällt mir:LikeSei der Erste, dem […]

20 01 2012
horax

knorke!

20 01 2012
antischokke

dufte! danke. 🙂

22 01 2012
Results for week beginning 2012-01-15 « Iron Blogger Berlin

[…] Anleitung: Iron Blogger Skript […]

11 02 2012
Unni

Sieht kompliziert aus

20 04 2012
assbach

krass

21 04 2012
chaosblog

Inzwischen um einiges einfacher – der verbesserte Code ist schon auf GitHub, jetzt muss ich nur noch die Anleitung updaten 🙂

5 05 2012
review: republica – ironblogger bierup « ChaosBlog

[…] paar Mal für das Ironblogger-Skript gelobt worden, einmal gesagt bekommen, dass ich Adam Sandler ähnlich sehen soll […]

30 11 2012
Howto: Iron Blogger Script (English Version) « ChaosBlog

[…] This howto is available in German too. […]

4 01 2013
kaffeeringe (@kaffeeringe)

Wie kann man Teilnehmer „skippen“ lassen?

4 01 2013
kaffeeringe (@kaffeeringe)

Oh, natürlich: Dickes Dankeschön! Ich hatte schon befürchtet, dass das richtig viel Arbeit macht, das alles abzurechnen usw. Aber dank des Scripts wird das relativ easy, denke ich. Schau doch mal vorbei: http://ibk.kaffeeringe.de/

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s




%d Bloggern gefällt das: