In den letzten zwei Tagen hab ich mit Hilfe der Twitter-Komponente und ein paar Cake Shell-Skripten die Seite 21tweets online gebracht. Die Idee dahinter war eine Möglichkeit zu bauen, mit der man via Twitter neue Gewohnheiten in 21 Tagen - daher 21tweets - erlernen kann.
Die Anwendung sammelt also Tweets auf Twitter ein, die an den Account @21T gehen und eine Gewohnheit mit einem Hashtag # markieren. Damit aber nicht jeder Tweet aufgenommen wird, muss zunächst die neue Gewohnheit bei 21tweets angemeldet werden. Ab dann kann gesammelt und angezeigt werden. Nur Tweets die an aufeinander folgenden Tagen getwittert werden, werden zur Statistik für die Gewohnheit gezählt. Falls man einen Tag auslässt, dann verfallen alle vorher gesammelten Tweets für die Zählung der 21-Tage-Statistik. Klar ?
Ein paar Problemchen und wie ich die umschifft habe, will ich hier kurz erklären:
- Ich wollte kein Login und keine Anmeldung
- Erkennung von neuen Anwendern durch die Prüfung, ob der Twitterati dem Account von 21tweets @21T folgt.
- Ausschließen von Twitter-Bots mit Hilfe eines Validate-Links, wie es bei normalen Accounts gemacht wird.
- Abfrage von direct-messages zur Erkennung der Gewohnheit, die in den nächsten 21 Tagen praktiziert werden soll. Einfach via #hashtag in der DirectMessage
Eines der Probleme war die Erkennung von neuen Twitterati, die dem Account folgen. Mittlerweile hatte aber Twitter zwei neue Funktionen, die ich in einem der letzten Posts schon beschrieben habe, bereitgestellt. Damit lassen sich die neuen Follower recht einfach ermitteln, indem man einfach einen array_diff() auf die beiden Listen anwendet.
Es laufen insgesamt drei Backgroundjobs, die über crontab angestossen werden und dafür verantwortlich sind:
- Die neuen Follower einzutragen und ebenfalls als Follower aufnehmen
- Neue Habits aus den Direct Messages zu filtern
- Neue Tweets aus den normalen Twitter-Meldungen zu filter, die an @21T gesendet werden und die praktizierte Gewohnheit mit einem Hashtag enthalten.
Jetzt fehlt eigentlich nur noch ein wenig Statistik und Auswertungen, damit das Ganze rund wird. Bis dahin
happy baking