rss2twitter.py
Click here to get the file
Size
1.6 kB
-
File type
text/python-source
File contents
#!/usr/local/bin/python2.5
# coding=utf-8
import shelve
from feedparser import parse
from twitter import Api
import socket
socket.setdefaulttimeout(20)
def rss2twitter(settingid, rssurl,
twitteruserid='', twitterpassword='', template='',
testmode=False):
saved_keys = shelve.open(settingid+'.dat')
feeddata = parse(rssurl)
for feed in feeddata['entries']:
# 新着エントリかどうかを調べる
if str(feed['link']) not in saved_keys:
# 新着エントリだったのでtwitterにポストする
api = Api()
message = ''
if template:
try:
message = template % feed
except:
pass
if not message:
message = feed['link']
message = (message+' ').encode('utf-8', 'ingore')
if not testmode:
api.PostUpdate(twitteruserid, twitterpassword, message)
saved_keys[str(feed['link'])] = 0
else:
print message
saved_keys.close()
if __name__ == '__main__':
rssurl = 'RSSのURL'
twitteruserid = 'twitterのユーザ名'
twitterpassword = 'twitterのパスーワード'
rss2twitter('lastfm', rssurl, twitteruserid, twitterpassword,
'Now playing ... %(title)s')
"""
username = raw_input('username: ')
password = raw_input('password: ')
rssurl = raw_input('URL of RSS: ')
tmpl = '%(title)s ... %(url)s'
rss2twitter('tmp', rssurl, username, password, tmpl, testmode=True)
"""