!7 cmodule PollTwitterSearch > DynPrintLogAndEnabled { S query = "#javascript"; transient new Set seen; transient AsyncTwitter asyncTwitter; start-thread { if (!enabled) ret; vm_cleanPrints(); Twitter twitter = twitter4j_init(); asyncTwitter = new AsyncTwitterFactory().getInstance(twitter); asyncTwitter.addListener(new TwitterAdapter { public void searched(QueryResult qr) enter { pcall { L tweets = qr.getTweets(); //print("Have Tweets: " + l(tweets)); new Set seen2; bool first = true; for (Status t : tweets) { long id = t.getId(); seen2.add(id); continue if seen.contains(id); if (first) { first = false; printWithMS("NEW TWEETS"); } User usr = t.getUser(); print(" " + localDateWithMilliseconds(t.getCreatedAt()) + " " + id + " " + (usr == null ? "none" : "@" + usr.getScreenName() + " // " + usr.getName()) + ": " + escapeNewLines(t.getText())); } setField(seen := seen2); } } }); print("Looping"); repeat with sleep 5 { if (enabled) { //print("Searching"); asyncTwitter.search(new Query(query)); } } } }