Antville zu RSS 2.0, RSS 2.0 zu WordPress (Updated)

Der Import aller meiner Einträge aus dem alten Antville-Blog in WordPress hat geklappt.

Mit Hilfe des Perlskripts readantville.pl kann man nun alle Einträge eines Antville-Blogs über Web auslesen und in eine RSS 2.0-Datei speichern lassen.

Vorraussetzung dafür ist allerdings, daß man entweder noch die Standardeinstellungen von Antville benutzt (in Bezug auf Datumsformat und Skins), oder aber dass man diese kurzfristig noch anpasst.

Folgendermaßen ist vorzugehen:

In den Einstellungen des Blogs muss die SPrache auf Englisch (UK) gestellt werden. Dies ist wichtig, damit das Datum das richtige (englische) Fomat hat.
Einige Importroutinen von anderen Blogs und Readern, z.B. WordPress, können deutsche Datumsangaben nicht erkennen und interpretieren. (Was in meinen Fall dazu führte, daß bei einem ersten Testlauf alle meine importierten Beiträge auf den 31.12.1969 um 11:59 Uhr gestellt wurden. Und dies nur, weil der WordPress die deutsche Abkürzung des Wochentagnamens falsch interpretierte – die er garnicht brauchte, da das Datum als solches danach ja auch angegeben war.)

Ausserdem empfiehlt es sich bei der Einstellung „Days on front page:“ eine höhere Zahl als 3 einzustellen. Zum Beispiel 10. Damit bleibt die Zahl der Anfragen an den bisherigen Server in Grenzen.

Die Skin ‚Story display‘ sollte wie folgt aussehen:

<div class=“storyTitle“><% story.content part=“title“ %></div>
<div class=“storyTopic“><% story.topic as=“text“ %></div>
<div class=“storyDate“><% story.createtime format=“EEE, d MMM yyyy HH:mm:ss Z“ %></div>

<div><% story.content part=“text“ %></div>

Und der Skin ‚Full story view‘ sollte so aussehen:

<% story.skin name=“dayheader“ %>
<% story.skin name=“display“ %>

<p class=“small“><% story.commentlink prefix=“… “ %><% story.editlink prefix=“  … “ %><% story.onlinelink prefix=“  … “ %></p>

In der Skin ‚Main page‘ sollte ausserdem folgendes stehen:

<div id=“center“>
<div class=“content“>
<% response.message prefix='<div class=“message“>‘ suffix='</div><br /><br />‘ %>
<% response.body %>
</div>
</div>

Wichtig ist, daß um die Nachrichten rum der <div class=“content“> ist. Nur in diesem Bereich schaut der Parser bei der Indizierung der Artikel.

Nach setzen dieser Einstellungen (die im wesentlichen nur ein Zurücksetzen auf die Defaults der meisten Antville-Blogs bedeuten), kann man mein Skript starten.

Dieses hat zwei Optionen: Lesen und Speichern alle Artikel und Lesen eines einzelnen Artikels. Natürlich nehmen wir ersteres.
Daraufhin wird abgefragt, welches die Starturl des Blogs ist. Dort geben wir die Seite des Blogs ein, bei der die aktuellen Artikel enthalten sind. Das Skript wird diese Seite und alle folgenden, die dann auf ältere Beiträge zeigen, durchsuchen.

Weiterhin wird man noch gefragt ob man die Artikel speichern will. Das sollte man mit einer Eingabe wie „ja“ beantworten. (Wenn man nichts eingibt, wird auch nicht gespeichert.) Ausserdem wird man dann bei der gewünschten Speicherung der Artikel noch nach den Blognamen und dessen Beschriebung gefragt
Läuft alles ordentlich durch, werden im Verzeichnis in dem auch das Skript einige neue Dateien angelegt:

  • artikelindex.txt
  • global-artikelindex.txt
  • „domainname“.xml (wenn die Artikel gespeichert werden sollen)
  • „domainname“-items.xml (wenn die Artikel gespeichert werden sollen)

„domainname“ wird ersetzt durch die Adresse der Starturl.

In „domainname.xml“ haben wir nun alle Artikel des Blogs im RSS 2.0-Format. Dieses läßt sich über die Importfunktion (RSS) von WordPress lesen.

7 Kommentare zu “Antville zu RSS 2.0, RSS 2.0 zu WordPress (Updated)

Kommentarfunktion ist geschlossen.

  1. großartige idee!
    leider funktioniert bei mir irgendwas nicht ganz so wie es wohl soll. die seiten werden alle durchgegangen, die dateien auch angelegt, aber in der „domainname.xml“ befindet sich nichts weiter als titel, link, beschreibung, sprache und generator. also keine texte.
    irgendwelche ideen? wär toll, wenn das noch klappen würde.
    (die antvilleadresse ist oben angegeben; layout und sprache hatte ich zurückgesetzt, ja.)

  2. habs mal wieder auf das standardlayout gestellt.
    ist das datumsformat mit „yyyy-mm-dd hh:mm“ bzw. „M d, yyyy, hh:mm“ richtig?
    danke schonmal für deine hilfe! :-)

  3. Hab das Problem gefunden… (glaub ich).
    In der Skin ‚Main page‘ muss noch folgendes stehen:

    <div id=“center“>
    <div class=“content“>
    <% response.message prefix='<div class=“message“>‘ suffix='</div><br /><br />‘ %>
    <% response.body %>
    </div>
    </div>

    Wichtig ist, daß es einen <div class=“content> um jede Nachricht gibt.

  4. ah, nun gehts. sehr toll!
    allerdings schreibts mir die namen der autoren nicht vors datum und letzteres wird auch nur als stunde und minute gespeichert.

  5. ok, jetzt klappt alles. bei den codeschnipseln oben ist wichtig, dass man die anführungszeichen nochmal in die 08/15-anführungszeichen ändert.

    danke für das skript!

  6. Sorry wenn ich einen alten Artikel nochmal hervorkrame, aber das Script spuckt bei mir die Fehlermeldung aus:

    Can’t locate object method „DESTROY“ via package „HTML::Parser“ at ./readantville.pl line 254, line 3.

    Mein Perl ist leider nicht gut genug dafür, ich nehm mal an hat was mit Versionsänderung bei Perl zu tun, perl ist 5.10.0, ich bin für jeden Tip dankbar :-)