Twitterアイコンをリプライ画像に変更するPythonスクリプト
今までTwitterのアイコンには手書きの絵を使っていたのですが、どうも気に入らない人がいたようです。
アイコン今すぐ変えて
— ねこ (@kivantium) 2015年5月2日
目障り — こんなのもあったのか。アイコンが目障りならブロックしとけばよいだけでは…… http://t.co/pr3sC7IApF
アイコン変えろ! — ずいぶん私のアイコンが嫌いらしいのでしばらくの間リプライされた画像にアイコンを変更するソフトを稼働させておきます。可愛いアイコンにしてくれよな! http://t.co/e7N25nTpTx
— ねこ (@kivantium) 2015年5月2日
というわけで質問者さんの気に入る素敵なアイコンを募集しようと思って画像リプされたらアイコンを変更するプログラムを書きました。
Tweepyというライブラリを使っています。(参考: 過去記事)
(2020年4月15日追記)User Streams APIが廃止されたためこのコードは現在動きません。**
#!/usr/bin/env python #-*- coding:utf-8 -*- # アイコンをリプライされてきた画像に変更する from tweepy import * import urllib import sys import datetime from PIL import Image #Authorization f = open('config.txt') data = f.read() f.close() lines = data.split('\n') #エンコード設定 reload(sys) sys.setdefaultencoding('utf-8') def get_oauth(): consumer_key = lines[0] consumer_secret = lines[1] access_key = lines[2] access_secret = lines[3] auth = OAuthHandler(consumer_key, consumer_secret) auth.set_access_token(access_key, access_secret) return auth class StreamListener(StreamListener): def on_status(self, status): if status.in_reply_to_screen_name=='kivantium': print status.author.screen_name if status.entities.has_key('media') : medias = status.entities['media'] m = medias[0] media_url = m['media_url'] try: urllib.urlretrieve(media_url, 'icon.jpg') except IOError: print "保存に失敗しました" now = datetime.datetime.now() time = now.strftime("%H:%M:%S") message = '@'+status.author.screen_name+' アイコンを変更しました('+time+')' message = message.decode("utf-8") try: api.update_profile_image('icon.jpg') api.update_status(status=message, in_reply_to_status_id=status.id) except TweepError, e: print "error response code: " + str(e.response.status) print "error message: " + str(e.response.reason) auth = get_oauth() api = API(auth) stream = Stream(auth, StreamListener(), secure=True) print "Start Streaming!" stream.userstream()
みんなの力で素敵なアイコンになることを期待しています。