Nun denn: Es ist endlich so weit. Das deutlich erweiterte Twitter Plugin für Serendipity ist fertig und in Spartakus veröffentlicht. Ich habe einiges an dem Plugin geändert, es besteht nun aus dem alten (auch verbesserten) Seitenleistenplugin und einem neuen Eventplugin für Backend Funktionalität. Die meiste Zeit verging fast beim Testen, hier noch mal ein dickes Dankeschön an Robert und Matthias!
Was hat sich alles verändert oder ist neu?
Der TwitterTweeter, Twitter Client für das Backend
Als erstes das, was ich eigentlich als letztes eingebaut habe: Ich habe den Backend Client Code aus dem Twitter Tweeter Plugin als Vorlage genommen und diesen auf meine Twitter Routinen portiert und noch ein paar Kleinigkeiten ausgebessert. Hier noch einmal einen großen Dank an Silvio Kunze, von dem ich große Teile des Codes einfach übernehmen konnte. Ich habe diesen nun auf PHP4 und weg von libcurl portiert, und noch ein paar kleinere Fixes sowie zusätzliche Optionen erledigt.
Ein Hauptgrund für den Einbau seines Twitter Tweeter Codes war natürlich, dass -wie bisher üblich in Serendipity- möglichst nicht mehrere Plugins für ähnliche Aufgabenbereiche vorhanden sein sollten.
Ankündigungen über Twitter
Eine ähnliche Funktion hatte auch bereits das TwitterTweeter Plugin. Mein Code war allerdings schon fertig, als ich das TwitterTweeter Plugin sah, und bietet auch ein paar mehr Optionen. Hiermit kann man neu erstellte Artikel automatisch über seinen Twitter Zugang veröffentlichen. Man kann diese Ankündigungen gleich mit Twitter Such Tags versehen, es gibt mehrere Services zum Kürzen von URLs zur Auswahl usw.
Mit dieser Funktion kann man externe Services wie z.B. TwitterFeeds ersetzen. Man sollte seine TwitterFeeds sogar besser ausschalten, wenn man das Plugin benutzt, damit nicht doppelt angekündigt wird..
Tweetbacks
Dies ist eine der coolsten Funktionen und gleichzeitig auch eine, die die meiste Zeit und Gehirnschmalz gekostet hat. Tweetbacks sind etwas ähnliches wie Trackbacks, nur nicht auf externe Artikel bezogen, die auf das eigene Blog zeigen, sondern auf Twitter Tweeds, die einen Artikel im Blog erwähnen.
Diese zu ermitteln stellt sich als extrem kompliziert heraus. Es gibt einige Wordpress Plugins, die dies auch versuchen und das selbe Verfahren wie das S9Y Plugin benutzen, nur sind die Routinen im S9Y Plugin zusätzlich noch deutlich auf Performance optimiert, so weit ich das vergleichen konnte.
Problem dabei ist, dass Twitter keine Tweetbacks sendet (analog zu Trackbacks, die vom referenzierenden Blog gesendet werden). Sie müssen aktiv aus der Masse an Tweets heraus gesucht werden. Dazu durchsucht man alle Tweets auf Links, die auf das eigene Blog zeigen. In Twitter werden URLs in stark gekürzter Form abgegeben, sie werden mit URL Kürzern wie tinyUrl.com oder bit.ly gekürzt. Das Plugin muss also alle möglichen Versionen von Kurz URLs ermitteln und nach diesen suchen.
Probleme von Tweetbacks
Und hier ist das Problem: Leider liefern die meisten URL Kürzer beliebig viele Kurz URLs für ein und die selbe URL (tinyUrl.com ist hier eine der wenigen Ausnahmen). Somit sind diese nur sehr schwer bis gar nicht zu finden, außer sie wurden erstellt, ohne bei dem Service speziell eingeloggt zu sein, denn auf dem selben Weg erzeugt auch das Plugin seine Vergleiche.
Twitter ist (in dem Zusammenhang leider) vor kurzem eine Kooperation mit bit.ly eingegangen. Erstellt man einen tweet in Twitter, der eine lange URL enthält, so wird diese automatisch über bit.ly gekürzt und zwar mit einem speziellen eigenen Twitter Account. Diese URLs sind nicht zu finden, da das Plugin diesen Account nicht kennt.
Dazu gleich eine Anmerkung: Man könnte das Problem umgehen, indem man bei bit.ly direkt anfragen könnte, welche KurzURLs für eine bestimmte URL bereits bekannt sind. Diese Abfrage bietet keiner der mir bekannten Services, dies zu implementieren wäre jedoch ein leichtes für (z.B.) bit.ly. Bit.ly hat ein Forum, in dem man Wünsche äußern kann und für ihre Wichtigkeit abstimmen kann. 2 Einträge wären hier sehr interessant:
Wenn bit.ly einen dieser beiden Vorschläge umsetzen würde, könnte man auf einmal einen großen Teil der Tweetbacks (nämlich die direkt in Twitter erstellten) finden. Also bitte: Wenn ihr ein paar Sekunden Zeit habt, dann votet doch für diese beiden Einträge, man muss nicht eingeloggt sein (kann aber eingeloggt noch einmal voten..
)
Unter dem Strich bleibt also: Ein verdammt cooles Feature, nur leider mit wenig Chance, etwas zu finden. Mal schauen, ob etwas gefunden wird, wenn das Plugin in populäreren Blogs als meinem eingesetzt wird.
Twitter Timeline als Seitenleiste
Dies ist die bekannte Funktion aus dem alten S9Y Twitter Plugin. Hier habe ich in einer kleinen Session mit Yellowled den HTML Code verbessert. Außerdem habe ich die PHP Version des Plugins stark verbessert. Die Optik ist nun an die Optik der JavaScript Version angepasst, dafür muss die PHP Version aber kein JavaScript nachladen und kann viel cachen.
Das cachen geschieht inzwischen im Hintergrund. Das alte Plugin blockierte mir sofort das Blog, wenn Twitter (z.B. wegen Wartungsarbeiten) blockierte.
Das war's!
Dann wünsche ich viel Spaß mit dem neuen Plugin. Ich würde mich freuen, wenn ihr vor allem mal berichtet, wie und ob die Tweetbacks bei euch greifen. Vielleicht habt ihr ja noch eine schlaue Idee, wie man das noch intelligenter lösen kann. Die Kommentare bieten euch Platz dafür. 
Ich habe auch noch einige Ideen, was man noch in das Plugin einbauen kann. Garvin hat sich z.B. gewünscht, dass es Tweets eines bestimmten Zeitraums zusammenfassen und in einem Artikel posten können sollte. Nette Idee, gar nicht schwer. Vielleicht habe ich auch dafür bald Zeit.
Wer das Plugin nicht über Spartakus beziehen kann oder will, findet es auch in meinem Files Bereich.
Matthias Mees
Homepage
06/17/2009 01:50PM
Grischa
Homepage
06/17/2009 02:00PM
Matthias Mees
Homepage
06/17/2009 02:21PM
Achim
Homepage
06/17/2009 05:01PM
alwin
Homepage
06/17/2009 05:48PM
Grischa
Homepage
06/18/2009 02:54AM
Ben
Homepage
06/17/2009 06:56PM
Grischa
Homepage
06/18/2009 02:57AM
Ben
Homepage
06/18/2009 10:36AM
Ben
Homepage
06/18/2009 10:42AM
Grischa
Homepage
06/18/2009 03:40PM
Ben
Homepage
06/18/2009 03:57PM
Grischa
Homepage
06/18/2009 04:13PM
Ben
Homepage
06/18/2009 04:26PM
Grischa
Homepage
06/18/2009 04:40PM
Thorsten
Homepage
06/18/2009 09:57AM
Grischa
Homepage
06/18/2009 03:42PM
Thorsten
Homepage
06/18/2009 04:50PM
rowi
Homepage
06/18/2009 10:31AM
Grischa
Homepage
06/18/2009 03:44PM
taz
Homepage
06/18/2009 09:19PM
Grischa
Homepage
06/18/2009 09:24PM
taz
Homepage
06/18/2009 10:31PM
Grischa
Homepage
06/18/2009 10:34PM
taz
Homepage
06/18/2009 11:55PM
Grischa
Homepage
06/19/2009 12:44AM
taz
Homepage
06/19/2009 07:28AM
Grischa
Homepage
06/19/2009 02:21PM
taz
Homepage
06/19/2009 03:21PM
Grischa
Homepage
06/19/2009 03:30PM
taz
Homepage
06/19/2009 03:35PM
taz
Homepage
06/20/2009 12:26AM
Robert Lender
Homepage
06/20/2009 12:08PM
Grischa
Homepage
06/20/2009 02:03PM
taz
Homepage
06/20/2009 03:10PM
Grischa
Homepage
06/20/2009 03:46PM
taz
Homepage
06/20/2009 04:03PM
Dirk Deimeke
Homepage
06/23/2009 06:08AM
Grischa
Homepage
06/23/2009 12:26PM
taz
Homepage
06/24/2009 10:54AM
Grischa
Homepage
06/24/2009 12:39PM
taz
Homepage
06/24/2009 02:44PM
Andreas
08/30/2009 11:20AM
Dirk Deimeke
Homepage
08/30/2009 11:47AM
Andreas
08/30/2009 09:58PM
Grischa
Homepage
08/31/2009 11:56AM
Andreas
09/15/2009 07:44AM
Grischa
Homepage
09/16/2009 12:49AM
Andreas
09/16/2009 07:05PM
Grischa
Homepage
09/16/2009 11:51PM
cruiser
Homepage
05/20/2010 09:09PM