Finding Twitter references to you
Twitter is a bit frustrating when you try to have conversations there. You say something, then an hour later, someone replies to you (by making a tweet that includes your Twitter @handle). If you're away from your computer, or don't happen to be watching it with an eagle eye right then -- that's it, you'll never see it again. Some Twitter programs alert you to @ references even if they're old, but many programs don't.
Wouldn't it be nice if you could be notified regularly if anyone replied to your tweets, or mentioned you?
Happily, you can. The Twitter API is fairly simple; I wrote a Python function a while back to do searches in my Twitter app "twit", based on a code snippet I originally cribbed from Gwibber. But if you take out all the user interface code from twit and use just the simple JSON code, you get a nice short app. The full script is here: twitref, but the essence of it is this:
import sys, simplejson, urllib, urllib2 def get_search_data(query): s = simplejson.loads(urllib2.urlopen( urllib2.Request("", urllib.urlencode({"q": query}))).read()) return s def json_search(query): for data in get_search_data(query)["results"]: yield data if __name__ == "__main__" : for searchterm in sys.argv[1:] : print "**** Tweets containing", searchterm statuses = json_search(searchterm) for st in statuses : print st['created_at'] print "<%s> %s" % (st['from_user'], st['text']) print ""
You can run
twitref @yourname from the commandline
now and then. You can even call it as a cron job and mail
yourself the output, if you want to make sure you see replies.
Of course, you can use it to search for other patterns too,
like
twitref #vss or
twitref #scale9x.
You'll need the simplejson Python library, which most distros offer as a package; on Ubuntu, install python-simplejson.
It's unclear how long any of this will continue to be supported, since Twitter recently announced that they disapprove of third-party apps using their API. Oh, well ... if Twitter stops allowing outside apps, I'm not sure how interested I'll be in continuing to use it.
On the other hand, their original announcement on Google Groups seems to have been removed -- I was going to link to it here and discovered it was no longer there. So maybe Twitter is listening to the outcry and re-thinking their position.
[ 10:53 Mar 18, 2011 More programming | permalink to this entry | comments ]