Seit heute werden meine zuletzt gelesenen Bücher in der Sidebar des Blogs angezeigt. Das war schon seit langem ein Wunsch von mir. Da ich zu jedem gelesenen Buch eine Twitter-Kurzrezension schreibe, hat es sich angeboten, diese Rezensionen aus meinem Twitter-Einträgen automatisiert rauszusuchen und weiterzuverwenden. Zum Glück habe ich mich von Beginn an streng daran gehalten alle Kurzrezensions-Tweets mit dem Text “Letztes Buch” beginnen zu lassen.
Ich nutze in meinem Blog seit langem das Original Twitter-Badge für Blogger. Die Funktion filterCallback aus dem Original-Script von Twitter habe ich schon vor einiger Zeit ersetzt durch eine Variante, die alle direkten @Replies herausfiltert:
var result = [];
for(var index in twitter_json) {
if(twitter_json[index].in_reply_to_user_id == null) {
result[result.length] = twitter_json[index];
}
if( result.length==10 ) break; // Edit this to change the maximum tweets shown
}
twitterCallback2(result); // Pass tweets onto the original callback. Don’t change it!
}
Das Original Twitter-Badge für Blogger ruft die Funktion twitterCallback2 auf. Stattdessen ruft man nun die obige filterCallback auf, die wiederum am Ende die twitterCallback2 verwendet. Die obige Funktion kommt aus den Weiten des Internet. Details zur Einbindung beschreibt “Lock Farm” aus England in seinem Blog.
Heute habe ich mich nun erstmalig ernsthafter mit JavaScript beschäftigt und die filterCallback
umgeschrieben und zu einer neuen Funktion filterBooks gemacht:
var result = [];
for(var index in twitter_json) {
var Twext = twitter_json[index].text;
if(Twext.substr(0, 12) == “Letztes Buch” ) {
twitter_json[index].text = Twext.substring(14);
result[result.length] = twitter_json[index];
}
if( result.length==10 ) break; // Edit this to change the maximum tweets shown
}
twitterCallback2(result); // Pass tweets onto the original callback. Don’t change it!
}
Die neue filterBooks sucht in den vorhandenen Tweets nach Einträgen, die mit “Letztes Buch” beginnen und verwirft alle anderen Tweets. Zusätzlich wird der Beginn der jeweiligen Tweets gekürzt, damit nicht jeder Eintrag mit dem gleichen String “Letztes Buch” beginnt. Entsprechend muss diese Funktion auch später anstelle der twitterCallback2 bzw. der filterCallback aufgerufen werden.
blogger.js in meine Blogger-Vorlage zu kopieren, war erfolgreich. Hierzu habe ich die twitterCallback2 in eine twitterCallback3 umbenannt und die ID im Bücherteil auf
twitter_update_list2 geändert. Damit das entsprechende DIV-Tag auch weiterhin seinen Style behält, wurde dieser im Kopf der Vorlage noch formatiert.