Posts on tag: river
Table of contents
geo.de fliegt raus
Ich betreibe ja seit langer Zeit meinen eigenen River of News, d.h. ein RSS Feed Reader hier auf der Seite. Der ist allerdings aus abmahnungstechnischen Gründen nicht mehr öffentlich, ich nutze ihn also nur privat, und zwar täglich.
Unter anderem habe ich den Feed von GEO im Reader. Da kommt nur selten was neues, und meistens ist es Unfug. Heute hab ich den Feed gelöscht, weil sich der Unfug echt nicht mehr steigern lässt. Was denken die sich dabei?!
Feedextrator für meinen River of News
Ich hatte ja neulich schon mal erwähnt, dass Feedburner demnächst die Pforten dicht macht und Feed43 ja auch eine zentrale Lösung ist, von der ich abhängig bin.
Das habe ich nun geändert mit Feedextrator. Dabei handelt es sich um ein - bis jetzt noch - recht einfaches Perlscript, dass Webseiten abholt und anhand von konfigurierbaren Regeln Teile davon extrahiert und einen Feed daraus erzeugt. Das Funktionsprinzip habe ich Feed43.com abgekupfert. Ich brauche das in folgenden Fällen:
- wenn ein Feed kein pubDate liefert (ich sortiere im River ja zeitlich), wie zum Beispiel Fefe.
- wenn ein Feed nur kurze Überschriften oder Snippets und keinen Volltextfeed liefert, wie zum Beispiel Nils Bloghaus.
- wenn eine Seite gar keinen Feed anbietet, wie zum Beispiel Al Daily.
- oder wenn eine Seite einen Feed ausliefert, der von Feedburner generiert wird.
Mit dem Script habe ich diese ganzen Fälle jetzt erschlagen. Das Script ist noch nicht paketiert usw, ist aber OpenSource (Perl Lizenz, wie üblich bei mir) und kann hier schon mal runtergeladen/angeschaut werden:
- Feedextrator Perl Script extract.pl
- Configuration für den Feedextrator feed.conf
Auf der River-About Seite sind ja alle Feeds aufgelistet. Die RSS Links unter dem Icon links zeigen jeweils entweder auf den original Feed oder auf den von meinem Script generierten. Hier mal als Beispiel der Feed von Al Daily: /river/feed/rss/50/.
Update 2012-10-01:
Ich habe den Feedextrator nochmal erweitert, man kann da jetzt in der Config auch den Cookieheader angeben. Ganz konkret benutze ich das, um mir den Feed von LMächtig gewaltig, wie Benny von der Olsenbande immer zu sagen pflegte...
Mein eigener River of News
Ich habe nochmal meinen Feed Agregator überarbeitet. Wie schonmal erwähnt, handelt es sich um eine von mir selbst programmierte Django-App. Inzwischen folgt mein River der Philosophie des "River of News" von David Winer. Das heisst, die einzelnen RSS-Feed-Items werden zeitlich sortiert angezeigt und nicht einfach Feed, nach Feed. Die neuesten Items stehen also immer zu oberst. Diese Methode funktioniert wunderbar, allerdings führt das dazu, dass ich Feeds, die kein Datum ausliefern, wie zum Beispiel der von Fefe, nicht in den River aufnehmen kann. Gut, macht jetzt auch nichts, die eine oder andere Webseite kann man auch noch manuell aufrufen.
Ich hab ausserdem die Favicons der jeweiligen Quelle mit aufgenommen (sofern vorhanden) und die der Überschrift voran gestellt.
Schön langsam bin ich damit zufrieden. Interessant ist auch, dass ich Twitter-Feeds mit aufgenommen habe, sogar - eher experimentell, denn da kommt eine Menge Käse rein - einen Such-Feed. Funktioniert aber auch 1a.
Update 2012-09-25:
Ich habe eine MENGE Feeds hinzugefügt. Unter anderem habe ich herausgefunden, dass ich mit Feed43 auch Youtube-Channels extrahieren kann. Die haben zwar einen eigenen RSS Feed, aber ohne die Videos. Tja, nun hab ich die Videos direkt hier im River. Ich musste allerdings den Universal Feedreader dazu überreden, das auch anzuzeigen:import feedparser feedparser._HTMLSanitizer.acceptable_elements.add('iframe')Sehr fein. Neu dabei sind diverse wissenschaftliche Feeds und einige zum Thema Aquarium und Terrarium (nach denen man wirklich stark suchen muss). Inzwischen habe ich so viel Material in meinem River of News, dass ich im Grunde nie wieder im Netz "Surfen" muss.
Darüber hinaus sind die Feeds jetzt thematisch sortiert. Der direkte Link im Menü zeigt nur 1 Item pro Feed an und wenn man im River ist, wird aus dem Menü eine Dropdownliste. Dort kann man nun einen Full River auswählen (5 Items pro Feed, aus ALLEN Themen) oder aber nur die Items aus einem bestimmten Thema (auch die letzten 5).
Wenn ich die alle durcharbeite, bin ich locker 2 Stunden oder mehr beschäftigt. Bin ich infosüchtig? Unbedingt!
Update 2012-09-11:
Fefe hab ich auch drin, Feed43 sei Dank. Dadurch kriegen die Items einen Timestamp, der dort auch gecached wird. Das gleiche mache ich auch mit dem TCS Forum. Damit die Timestamps einigermaßen mit der Realität übereinstimmen, hole ich diese Fee43 Feeds per Cronjob regelmäßig ab.Update 2012-09-11:
Wie sich herausstellt, ist David Winer nicht wirklich der Erfinder des Konzepts, wie ich ursprünglich dachte. Es wurde von Jeff Waugh and Scott James Remnant erfunden, die 2006 eine Software namens Planet entwickelt hatten. Das ist auch in Python geschrieben, verwendet den gleichen RSS Parser, wie ich ihn auch benutze und läuft ebenfalls serverseitig. Allerdings schreibt es die Posts ins Filesystem und kopiert sie damit. Mein River im Gegensatz dazu ist live, das heisst, ich kopiere gar nichts. Wenn man ihn aufruft, werden die Feeds abgeholt und direkt ausgegeben. Dadurch ist er zwar langsamer aber damit kann ich leben. Es gibt auch einen Nachfolger davon namens Venus.Einige Beispiele solcher planets, wie Seiten die das nutzen genannt werden, wären Planet GNOME, für den die Software ursprünglich entwickelt wurde. Oder auch SciPy Blogs. Die Sourcen werden bei einem Planet üblicherweise "Subscriptions" genannt, das gleiche ist bei mir auf der rechten Seite zu sehen unter Feeds.
Ja und meine Idee, die jeweiligen Favicons der Seiten pro Posting anzuzeigen, so dass ich sehe, woher das kommt, ist auch nicht neu. Der Planet GNOME verwendet dafür sogenannte Hackergotchis.
Somit habe ich das Rad neu erfunden :) Aber ich kann mich zumindest damit trösten, dass mein River nicht allzuviel Code umfasst und als Django-App implementiert ist.
Update 2012-09-10:
den Twitter-Search-Feed für #fehmarn hab ich wieder rausgenommen. Da kommt ja nur Unfug. Schlimm.River, ein RSS Volltextfeed nur für mich
Ausgehend von Felix Schwenzels Posting über Nachrichtenströme habe ich mir jetzt in mein Django (der Blog läuft mit Django, der River nun auch und die restliche Seite mit PodWiki) einen Feedreader eingebaut: "River" genannt. Ich hab dafür das Pythonmodul feedparser verwendet. Der komplette River ist in wirklich wenigen Zeilen Code realisiert, dafür ist das Ergebnis umso fantastischer. Ich speichere in der DB nur den Namen und die URL des Feeds, sonst nichts. Abgeholt und geparst wird der jeweilige Feed dann live, wenn ich die Seite aufrufe. Das ist im Prinzip so ähnlich wie der River von David Winer, nur dass es serverseitig läuft und nicht diesen bizarren OPML Kram verwendet.
Find ich richtig cool. Vor allem kann ich das dann auch verwenden, um z.b. im Zug bequem die Sachen zu lesen. Ich hab zwar auf dem Handy einen Feedreader, aber ich muss sagen, der ist mir zu hakelig. Manchmal holt er die Feeds gar nicht ab, manchmal schneidet er was ab. Er stolpert regelmässig über sein eigenes Cachingfeature und wenn ich einem Link folgen will, macht er den Browser auf. Alles irgendwie anstrengend. Die Anzeige der Texte gefällt mir auch nicht. Klar, ich könnte einfach einen anderen Reader ausprobieren, aber ich hab schon einige getestet und bin es leid.
Nun hab ich den Kram in meinem River. Da ich Bootstrap verwende und das fluid feature eingeschaltet habe, wird die Seite sehr schön auch auf dem Handy angezeigt. Bingo.
PS: apropos Django und Blog. Die Django-App für den Blog habe ich übrigens über die Jahre selbst entwickelt und immer wieder erweitert. Das finde ich am besten, wenn man alles im Griff hat bis hin zur eingesetzten Software. Ich kann jederzeit irgendwelche Features einbauen oder was ändern, weil ich mich darin 100%-ig auskenne. Öffentlich ist die App nicht, aber ich werd sie mal irgendwann verpaketisieren. Wenn ich Zeit hab...
PPS: Die Füsse auf dem Bild sind übrigens Katy Perry's. Ich hatte in der Bing Bildersuche nach "rss feed" gesucht und das war das erste Suchergebnis. Warum auch immer. Aber wenn Bing meint, dass das passt, bau ich es als Illustration ein. Mir doch egal!