PythonからTweetを全削除する
公開するにあたって,非公開前提でつぶやいていた今までのTweetを全部削除したくなった.
3,700ぐらいあったのでいちいち消してらんない.
さくっとpythonで書くとする.
easy_installあたりで,python-twitterをインストール.
# -*- coding: utf-8 -*- #!/usr/bin/env python import time import twitter twitter_id = 'username' twitter_password = 'password' def main(): while True: api = twitter.Api(username=twitter_id, password=twitter_password) count = api.GetUser(twitter_id).statuses_count if count <= 0: break for id in [status.id for status in api.GetUserTimeline(twitter_id)]: print "Deleting... %s" % api.DestroyStatus(id).text time.sleep(24) if __name__ == '__main__': main()
Twitter APIが150req/hourで制限されていると聞いたので,消すたびに一応24秒ほど待つことにした.
3,700あったらほぼ一日仕事じゃないスか…
# 試してみると1時間で150以上消せたかと思えば,20ぐらいで止まることもあった.謎.
あまりにInternal Server Errorが多いときは,
count取ってくる直前で適当に例外キャッチして60秒ぐらいあけてからretryするようにした方が効率的.
