Groningen Chat op Twitter
donderdag, december 17th, 2009Vanmorgen kwam ik ineens op het idee dat het wel grappig zou zijn om nieuwe topics van ons Groninger chat kanaal direct op twitter neer te gooien, zodat mensen dit in de gaten kunnen houden. Zeker voor de komende dagen bij Serious Request verwacht ik regelmatig het topic te kunnen veranderen en dat levert dan een geinig feed op. Dit moet natuurlijk wel automatisch gebeuren, want ik ben veel te lui om dat zelf bij te gaan houden. Ik heb dus even een scriptje (in tcl) geschreven voor ons botje (eggdrop) die dit allemaal voor mij doet. Uiteindelijk bleek het nog redelijk eenvoudig om dit te doen. Hieronder het resultaat (op hyves ziet dit er verrot uit, moet je maar even op mn site lezen) :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | catch {package require base64} set twitter(auth) [::base64::encode "twittergebruikersnaam:twitterwachtwoord"] bind topc - "#Groningen *" twitter:groningen proc twitter:groningen { n u h c a } { global twitter # Check if topic is longer then 140 chars (twitter's limit of an update) # Otherwise only use 137 chars for the update if {[string length $a] <140} { set twitter(upd) $a } else { set twitter(upd) "[string range $a 0 137]..." } # Check if there is a timer running for an update and kill it when found foreach timer [utimers] { if {[lindex $timer 1] == "twitter:upd"} { killutimer [lindex $timer 2] } } utimer 120 twitter:upd } proc twitter:upd {} { global twitter set twitter(headers) [list "Authorization" "Basic $twitter(auth)"] catch {::http::geturl "http://twitter.com/statuses/update.xml" -query "status=$twitter(upd)" -timeout 40000 -headers $twitter(headers)} debug } |
Waarschijnlijk moet ik dit nog wel verder uitbouwen met wat checks en fatsoenlijke url encoding, maar het begin is er en de eerste tweets staan al online. Volg het allemaal op http://twitter.com/groningenchat.