Skip to content

Instantly share code, notes, and snippets.

@kimukou
Forked from ksky/twitterstream.groovy
Last active September 30, 2015 18:28
Show Gist options
  • Save kimukou/1843271 to your computer and use it in GitHub Desktop.
Save kimukou/1843271 to your computer and use it in GitHub Desktop.
Twitter4J+GroovyでストリーミングAPI
// see http://d.hatena.ne.jp/ksky/20110906/p1
// http://isann.blog2.fc2.com/blog-entry-254.html
//
// location twitter4j.properties $HOME/.groovy
// edit $GROOVY_HOME/bin_groovyConsole
// export CP=$CP:$HOME/.groovy
@GrabResolver(name='twitter4j', root='http://twitter4j.org/maven2')
@Grab('org.twitter4j:twitter4j:[3.0,)')
@Grab('org.twitter4j:twitter4j-stream:[3.0,)')
import twitter4j.*
def stream = new TwitterStreamFactory().instance
//[☆]aadd need note https://groups.google.com/forum/?fromgroups#!topic/twitter4j/tiWx6SdiZv0
stream.getAuthorization();
//一度実行している状態を止める
stream.shutdown()
//[☆]add need note https://groups.google.com/forum/?fromgroups#!topic/twitter4j/tiWx6SdiZv0
stream.cleanUp()
def listener = [
onStatus: { st -> println "$st.user.screenName: $st.text" },
onException: { ex -> ex.printStackTrace() },
] as UserStreamAdapter
//] as StatusListener
stream.addListener(listener)
// http://d.hatena.ne.jp/fumokmm/20090420/1240202410
IntRange.metaClass.define {
// 範囲内でランダム
random {
int from = delegate.isReverse() ? to : from
int to = delegate.isReverse() ? from : to
int size = to - from + 1
(Math.floor(Math.random() * size) + from) as int
}
}
def rnd = (0..4).random()
println "rnd=$rnd"
switch(rnd){
case 0:
//[1]user id stream search
long[] list = [1L];
FilterQuery query = new FilterQuery(list)
query.follow(list)
break
case 1://[2]word stream search
String[] track = ["android"]
FilterQuery query = new FilterQuery()
query.track(track)
stream.filter(query)
break
case 2://[3]user stream
stream.user()
break
case 3://[4]rundom stream
stream.sample()
break
case 4://[5]multi query
String[] track = ["#nyaruko","#jjug","#jggug"]
FilterQuery query = new FilterQuery()
query.track(track)
stream.filter(query)
break
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment