2009年6月21日

twitterのユーザーリストを一気にフォローする


offに参加すると、その後フォロー祭りになったりするんだけど、かったるいのでバッチ処理した。
既にフォローしてるかどうかを判別するのは面倒なので、全部friendships.createを呼んでみた。
どうせ既にフォローしてるなら、403 Forbiddenになるので、問題ないだろう。



入力のファイルは、各行が、@[ユーザー名]となっている想定。



import sys
import httplib
import time

urltmpl = '/friendships/create/%s.xml'
user, password = sys.argv[1].split(':', 1)
basic_auth = (user + ':' + password).encode('base64')
print basic_auth
headers = {"Authorization": "Basic %s" % basic_auth}
print headers
f = open(sys.argv[2])
twitters = [t.strip().lstrip('@') for t in f if t.strip() != '']
f.close()

for t in twitters:
path = urltmpl % t
print t
conn = httplib.HTTPConnection("twitter.com")
conn.request("POST", path, '', headers)
res = conn.getresponse()
print res.status, res.reason
time.sleep(3)


考えてみたら、urlに埋め込む前にパーセントエンコーディングするべきだな。
ユーザー名にマルチバイトって使えるんだか知らないけど。