TwitterのつぶやきをSkypeのムードメッセージにするGroovyスクリプトを書いてみた

Skype4Javaをダウンロードして、skype/release/skype_[linux|osx|win32].jar をクラスパスに通すか、~/.groovy/lib にコピーする。で、末尾のソースを twitod.groovy とか適当なファイルにコピーして、

groovy twitod.groovy [twitterのuserid]

で実行。最初だけ、Skype側で確認メッセージが出るので許可する必要有り。

import groovy.util.XmlSlurper
import com.skype.Skype

if (args.length < 1) {
    println "usage: groovy twitod.groovy userId"
    System.exit(1)
}

def mood = Skype.getProfile().getMoodMessage()
if (mood == null) mood = ""

def url = "http://twitter.com/statuses/user_timeline/${args[0]}.rss"
def xml = url.toURL().text

def rss = new XmlSlurper().parseText(xml)
def m = (rss.channel.item[0].title =~ /^${args[0]}:\s+/)
def tweet = m.replaceAll("")

if (!mood.equals(tweet)) {
    Skype.getProfile().setMoodMessage(tweet)
}