Twitter 和饭否同步
Twitter 和饭否上看到 Zhaonc, aka Nelson 同学一直在折腾同步,我闲得无聊,也开始折腾这事。他的研究结果是,饭否发的消息最后能自动跑到 Twitter 上,并写得此文 Twitter与饭否同步。于是我非要逆向行驶,目标是搞个 Twitter 发的消息自动跑去饭否的方法,方法现在找到了,于是我开始写本文……
啰嗦完毕,说正事。那些国外的第三方工具啊,大都是不认识饭否的,认识饭否的又竟然不认识中文。Ping.fm 倒是支持 Custom URL ,我尝试写个脚本让他支持饭否,可是又发现速度奇慢,还老丢东西。最后一怒之下自己写了个脚本,用最笨的办法吧,却是最靠谱的。放到 Dreamhost 上 cron 了10分钟一次,效果奇佳。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | from xml.dom.minidom import parseString import urllib import urllib2 import sys def post_to_fanfou(msg): url = 'http://api.fanfou.com/statuses/update.xml' data = urllib.urlencode({'status':msg}) req = urllib2.Request(url,data) username = 'raptium' password = 'password' passman = urllib2.HTTPPasswordMgrWithDefaultRealm() passman.add_password(None, url, username, password) authhandler = urllib2.HTTPBasicAuthHandler(passman) opener = urllib2.build_opener(authhandler) urllib2.install_opener(opener) response = urllib2.urlopen(req) def main(): f = open('last.txt','r') maxid = int(f.read()) f.close() if maxid < 1166717326: print 'error' sys.exit(-1) params = urllib.urlencode({'since_id':maxid}) f = urllib.urlopen("http://twitter.com/statuses/user_timeline/raptium.xml?%s" % params) xmltext = f.read() dom = parseString(xmltext) statuses = dom.childNodes[0] messages = [] s = 0 for node in statuses.childNodes: if node.nodeName == 'status': status = node for snode in status.childNodes: if snode.nodeName == 'id': n = int(snode.childNodes[0].nodeValue) if n > maxid: maxid = n elif snode.nodeName == 'text': messages.append(snode.childNodes[0].nodeValue.encode('utf-8')) while len(messages) > 0: post_to_fanfou(messages.pop()) s = s + 1 f = open('last.txt','w') f.write(str(maxid)) f.close() print 'Post %d status to Fanfou.' % s if __name__ == "__main__": main() |
Pingback: 同步 twitter 到 飯否 | phill84.org
Pingback: 同步twitter到饭否 - jimey - jimey’s Life jimey’s World
Pingback: Twitter开启消息保护模式后认证同步饭否 - jimey - jimey’s Life jimey’s World
Pingback: python版的饭否到twitter的同步代码。 | As Time Goes By