#!/usr/bin/env python import base64 import simplejson as json import os import sys import urllib import urllib2 global twitter_username global digu_username global digu_password twitter_username = 'username' digu_username = 'username' digu_password = 'password' def post_to_digu(msg): url = 'http://api.minicloud.com.cn/statuses/update.json' data = urllib.urlencode(msg) req = urllib2.Request(url, data) req.add_header("Authorization", "Basic %s" % base64.encodestring('%s:%s' % (digu_username, digu_password))[:-1]) handle = urllib2.urlopen(req) def main(): path = sys.path[0] if (sys.platform[:3] == 'win'): path += '\\' else: path += '/' id_file = path + 'last_id' last_id = 0 if os.path.exists(id_file): f = open(id_file, 'r') last_id = int(f.read()) f.close() else: f = open(id_file, 'w') f.write('0') f.close() url = 'http://twitter.com/statuses/user_timeline/' + twitter_username + '.json?last_id=' updates = json.load(urllib.urlopen(url+str(last_id))) new_last_id = None n = 0 for update in updates: text = update['text'] id = update['id'] if (text[0] != '@') and (id > last_id): if (new_last_id < id): new_last_id = id text = urllib.quote(text.encode('utf-8')) msg = {'content': text} stack.append(msg) while (stack) post_to_digu(stack.pop()) if (new_last_id != None): f = open(id_file, 'w') f.write(str(new_last_id)) if __name__ == "__main__": main()
Syncing twitter to digu using python / 用python同步twitter到嘀咕
2 Replies