FFFlash

Projekt
FFFlash ist ein Projekt um sein FreifunkAPI File automatisch aktuell zu halten.
Hintergrund
Die FreifunkAPI besteht aus JSON Files, die jede Community veröffentlicht.
Diese beinhalten Treffpunkte, Termine, Kontaktmöglichkeiten, wie viele Router online sind, etc..
Die Adresssen darauf werden an zentraler Stelle gesammelt.
Auf Basis dessen entstanden schon einige hilfreiche Anwendungen:
Das FreifunkAPI File wird initial mit dem API Generator erstellt.
Und dort liegt meines Erachtens nach das Problem:
☞︎ Jede Community erstellt sich irgendwann im Laufe ihres bestehens ein API File.
Wenn man Glück hat, findet sich jemand, der regelmäßig die Informationen aktuell hält.
Trotz Generator ist dies eine Menge Aufwand, und der Mensch ist faul...
☞︎ Updates geschehen selten bis gar nicht.
☞︎ Die Informationen sind in der Regel veraltet!
☞︎ Anwendungen die auf dieser Datenbasis aufbauen verlieren an Qualität.
Hatte damals mit dem Entwickler darüber gesprochen, er konnte oder wollte dies nicht so recht einsehen...
Ziel
Ständig frickelt man an den Maschinen im Netz rum, an denen die aktuellen Statistiken anfallen.
JSON lässt sich doch kinderleicht mit einem Script generieren..
Kann man beides nicht irgendwie kombinieren?!? Klar! Doofe Frage...
Umsetzung
Anfangs wurde mit viel Gaffa, Liebe und Heißkleber etwas funktionales gezimmert.
Es entstand eine simple Klasse, die bestehende Werte in einem API File ersetzen konnte.
Dazu noch ein Script um die Anzahl der Nodes aus der damaligen Karte zu ermitteln.
Eine gewisse Zeit lang war sogar noch ein Twitter-Modul mit rangeflanscht.
Die monotonen Meldungen waren aber irgendwann zu viel...
Status: online: 42 (23 Router, 19 Teilnehmer) 23:42 17.08.2014
Irgendwann hatten wir mehrere Communities auf den selben Servern.
Und damit auch mehrere API Files.
Das Script ließ sich nicht elegant auf mehrere Communities erweitern.
Falsche Annahmen, fest einprogrammierter Text, Spaghetti-Code...
Also zurück ans Reißbrett, der Rewrite wird geplant:
Features
Genau wie der Vorgänger kann FFFlash nur bestehende Felder ändern.
Es existiert keinerlei Konfiguration. Alles wird beim Start auf der Kommandozeile mitgegeben.
Läuft sowieso in der Crontab, oder man schreibt sich ein Shell-Script passend zu seinem Setup.
Dazu lassen sich noch sogenannte ☞︎ Sidecars mit einflechten.
Dies sind kleine JSON oder YAML Files, die die Werte in der Ausgabe ersetzen.
Sie enthalten entweder nur einen einzigen Wert, oder größere Strukturen bis hoch zum kompleten API File.
Infos zu den Nodes kommen diesmal direkt aus dem Backend und nicht mehr von der Karte.
Zugriff entweder direkt auf die Datei, oder per HTTP.
Man ist sowieso am Zahlen auswerten, warum nicht noch einen Highscore vergeben? ☞︎ Rankfile.
Auf Basis dessen könnte man mal ™ weitere lustige Anwendungen entwickeln.
Lange dabei sein, hohe Uptime, und viele Clients bringt gut Punkte.
Links
Repository
ffflash.git
Sogar Tests existieren, auf Travis-CI kann man nachsehen, ob noch alles passt.
Es wurde an nichts gespart, sogar eine Dokumentation ist am Start.
Es gibt immer noch Communities die FFFlash einsetzen..
Obwohl ich schon länger nicht mehr Freifunke.. Cool ☃︎
FreifunkAPI Files aktuell halten.
Erstellt
30.04.2014 - 13:24:39
Editiert
19.10.2015 - 18:36:52
Tags
Freifunk
Projekt
Python