[]ついったん(@twittan)のように受信したDMをTweetするPythonスクリプト
追記2
gistに最新のコードがあります。http://gist.github.com/534705
WordPressでソースコードを表示させる
はてなダイアリーからWordPressに移転させて、はてダで最も重宝していたスーパーPre記法の代わりを探す必要が出てきた。とりあえずCodeColorerというPluginがよさそうだったのでインストール。
フォントが見づらかったので、cssを編集してフォントを「Monaco」から「Courier」にした。
[cc line_numbers="off"] /wp-content/plugins/codecolorer/codecolorer.css [/cc]
CodeColorerのテスト
ついでに最近コードを書いていなかったので、任意のアカウントで受信したDMをそのままTweetするPythonスクリプトを作ってみた。もし利用することがあれば、当然DMを送った人はそれをTweetされるとは思っていないので、普段利用しているアカウントでは実行してはいけない。
ついったん(@twittan)のように専用のアカウントを作ってbioに明示するか、認証したユーザーからのDMのみTweetするといいかも。
tweetDM.py
python-twitterモジュール使用[cc lang="python"]
import time
import re
import twitter
class tweetDM:
def __init__(self, account, password, id_file, user_file):
self.api = twitter.Api(account, password)
self.id_file = id_file
self.user_file = user_file
def readFile(self):
idfile = open(self.id_file, 'r')
latest_id = int(idfile.readline())
idfile.close()
return latest_id
def writeFile(self, status_id):
idfile = open(self.id_file, 'w')
idfile.write(str(status_id))
idfile.close()
def getDM(self):
latest_id = self.readFile()
dms = self.api.GetDirectMessages(since_id = latest_id)
messages = []
if dms:
status_id = dms[0].id
self.writeFile(status_id)
usrfile = open(self.user_file, 'r').readlines()
user_list = [user[:-1] for user in usrfile]
for s in dms:
if s.sender_screen_name in user_list:
messages.append(s.text)
return messages
def main(self):
messages = self.getDM()
if messages:
for s in messages:
self.api.PostUpdates(s)
time.sleep(15)
if __name__ == '__main__':
account = 'your_twitter_screen_name'
password = 'your_twitter_password'
id_file = 'latest_id.txt' #最後に取得したDMのstatus_id
user_file = 'user_list.txt' #許可するユーザー(screen_name)
obj = tweetDM(account, password, id_file, user_file)
obj.main()
[/cc]