Dec 20

feedcher

Veröffentlicht von Hanny

Nachdem ich mich bisher eher im Hintergrund betätigt hab’, meld’ ich mich nun auch mal zu Wort.
Ich versuche mal das Programm vorzustellen an dem ich momentan am ehesten arbeite :) : den feedcher.

Der Post hier wird vermutlich ab und an mal editiert werden, der jetzige Status ist mehr ‘ne Preview.

Warum der Name?

feedcher ist eine Zusammensetzung von “feed” im Sinne von RSS Feed und dem englischen Wort “fetch” was im Grunde schon den kompletten Sinn des Programms erklärt.

Sinn des Programms

Das Programm soll, bzw. ist schon auf eingeschränkte Art und Weise, fähig sein, RSS Feeds von externen Seiten zu fetchen. Mit fetchen meine ich hier aber nicht einfach die XML-ähnliche Datei des RSS Feeds auszulesen und zu speichern, sondern den kompletten Content der verlinkten Seiten zu analysieren und die wichtigen Sachen  zu speichern.

Der Hintergrund hierfür ist, dass viele (auch sehr große Seiten) die ursprüngliche Idee des RSS-Feeds (zumindest meiner Interpretation nach) etwas vernachlässigen, denn der <item> Block einer RSS-XML sollte meiner Meinung nach den kompletten Text des Artikels beinhalten, dies tut er aber in den seltensten Fällen. Wäre der <item>-Block korrekt, wäre es möglich den Feed zu laden und anschließend, unabhängig vom Zugang zum Internet, zu lesen.

Der feecher soll diese Lücke stopfen und den tatsächlichen Inhalt des <item> in einer MySQL Datenbank ablegen, diese stellt die ideale Möglichkeit dar, den Inhalt danach weiter zu verarbeiten (php, download als tgz, Erstellung eines neuen, vollständigen RSS etc)

Implementierung

Das Programm soll nach einer bereits bekannten Methode funktionieren (siehe munin oder logwatch):

Ein sogenannter Node lädt, verwaltet und ruft Plugins für jeden einzelnen RSS Feed auf, die dem Node dann die Daten zuführen und anschließend in die Datenbank geschoben werden. Der Node ist in dem Fall in C++ geschrieben, verwendete Libraries sind bis jetzt openssl (md5), curl (http) und mysqlpp (MySQL, obviously).

Die Plugins können in jeder beliebigen Sprache geschrieben sein, sie müssen nur auf stdout ihre Config und später in Dateien ihre Results ausgeben können (Ruby, Perl, Python…).

Bearbeitung eines Beispielfeeds

Der Node erkennt ein Plugin, holt sich dessen Config (Argument ist hier “autoconfig”) über den stdout (nach dem Schema “feedUrl=www.foobar.foo”) und holt sich den Feed. Nun wird jeder <item>-Block md5-gehashed und überprüft ob dieser Hash schon in der Datenbank existiert, wenn nicht wird der <item>-Block in eine Datei geschrieben und das Plugin mit dem Filename als Parameter aufgerufen. Das Plugin verarbeitet nur den <item>-Block und schreibt die Ergebnisse in seine neue Datei, welche der Node anschließend einliest und die ermittelten Daten in die Datenbank schreibt.

Status

Die Grundzüge des feechers funktionieren schon, eine bestimmte, hier nicht genauer genannte, Seite wird bereits korrekt eingelesen und verarbeitet. Im Moment hängt es noch an dem Vorhandensein eines korrekten Plugins, das von mir (in Python) geschriebene Plugin schafft es bisher nicht, die HTML-Tags korrekt zu entfernen, das sollte aber das kleinste Problem werden.

Die Entwicklung liegt zwar momentan auf einer kurzen Eisstrecke, wird aber bestimmt wieder anlaufen, auf Anfrage kann man die Quellen aber jetzt schon erhalten :)

mfg Hanny

PS: Feedback & comments are highly appreciated

Dec 8

HWE 4.-6. Dezember ’09

Veröffentlicht von Robert

Soweit wir wissen, haben wir keine unentdeckten Fehler.

Besser spät, als nie, hier endlich der Bericht vom letzten HWE.

Morgens war ich vor der Schule erstmal Mate kaufen. Ich wollte 5 oder 6 Kästen und es hatte noch genau 6, ich hab dann aber 5 genommen wegen Platz im Auto und so. Ich bin außerdem mit dem Händler ins Gespräch gekommen,was relativ lustig war, denn der Typ hat das Zeug halt echt “Hackerbrause” genannt.

Club-Mate [ˈklʊp ˈmaːte] ist ein koffeinhaltiges, alkoholfreies Erfrischungsgetränk mit Mate-Extrakt der Brauerei Loscher KG aus Münchsteinach/Franken. Club-Mate zeichnet sich durch einen verhältnismäßig hohen Koffeinanteil (20 mg auf 100 ml) und einen relativ geringen Zuckeranteil aus, gerade im Vergleich zu anderen koffeinhaltigen Erfrischungsgetränken wie Cola. Der Energiewert liegt nach Herstellerangaben bei 21 kcal/100 ml. Der ursprüngliche Name des Getränks lautete Sekt-Bronte und war nur regional bekannt.

Mate im Kofferraum

Mate im Kofferraum

und 2 Kästen vorne drin

und 2 Kästen vorne drin

Lese den ganzen Eintrag »

Dec 3

Upcoming HWE 4.-6. Dezember ’09

Veröffentlicht von Karo

MORGEN IST HWE -f!!!111einseinhundertelfdrölf

  • Wann? 2000
  • Wo? Beim ST, wie immer :>
  • Wer? ST, Hanny, Onny, Robert, Karo, …
  • Was? 3 Kästen Mate, CNC, Hannys feedcher, Eis & Gummizeug!, lahmes Inet, …

Bis morgen!

Lokalisiert von Hashi.Modified by project-insanity.