Home > Tech > Twitter > Twitter-Feed的一些改进

Twitter-Feed的一些改进

Add a comment March 7th, 2010 http://s.ibron.co/kp8BRM

月光写的基于gae的Twitter同步程序Twitter-feed是个很不错的程序,能将twitter上的信息同步发布到各大围脖上,通过follow5和hellotxt,甚至可以支持所有的围脖。在使用过程中,我遇到了一些小问题,最近也不算太忙,遂动手修改了一些Twitter-feed的代码。自封Twitter-feed++,嘿嘿~~

让转义字符可以同步

如果Twitter上的信息包含html元素,比如”<”等,在同步到其他围脖后,将变成转义字符,例如之前的”<”将变成”&amp; lt;”等等。仔细看了一下twitter.py,发现有个unescape函数,用来将转义字符转换为对应的符号。既然发送到其他围脖的信息还包含转义字符,很简单,再unescape一下不就好了?以R26版为例,打开twitter.py文件,在parseTwitter函数中找到text=x[1]这一行(第263行),将其改为text=unescape(x[1]),保存并update,搞定~

ps一句,我查看了一下unescape这个函数原作者的网页,发现其版本跟月光的不一样,估计月光进行了一定的修改。只是在下实在愚钝,楞没看出来为什么要那样修改。呃…… :shock:

异步进行数据发送

在parseTwitter函数中,各围脖是顺序进行同步的,同时各同步程序中没有异常处理。这样的话如果某个围脖出了问题,处于此围脖同步语句下面的其他围脖将无法进行同步。为此,可以为同步函数加上异常处理,使用”try:…except:”的语句块。另外,为了提高同步效率,可以将同步改为异步方式,参考Google的文档,将”urlfetch.fetch”更改为”urlfetch.make_fetch_call”。此时有一点需要注意,不是所有的”urlfetch.fetch”都需要修改的,有些过程是需要顺序执行的,比如同步sina的函数”send_sina_msgs”中的第一个fetch,这个fetch是进行登录并获取Cookie的,改成异步的话此函数需要进行较大的修改,且完全没有必要。具体的修改可参见最后我给出的修改版本。

重复发送的问题

最近月光对twitter-feed进行了修改,以修正TwitterID升为11位后老信息重复获取的问题。但是我更新之后发现新版的twitter-feed仍然会重复发送老数据。月光曾在Twitter里说需要清空一下Datastore。会不会是这个问题呢?事到如今,也只能试一试了。

进入gae的控制台,点击左边的”Datastore Viewer”,在窗体右边将列出存储于数据库中的数据,勾一下列表标题”ID/Name”前面的选择框选中全部记录,点击”Delete”删除。如此这般将所有数据删除后,同步正常了~~~内牛满面哪…… :cry:

后来仔细查看了一下log,似乎是digu的API出了问题,直接通过地址访问会弹出验证对话框,输入用户名和密码之后发现对话框总是不停地弹出来……在加上异步处理和异常处理后,各同步之间保持相对独立,可能这也是我的sina同步恢复正常的原因之一吧~~

附上我的修改版~猛击这里下载. 我只测试了sina和嘀咕,其他的未进行测试,如有问题,欢迎与我联系。 :cool:

  1. March 7th, 2010 at 23:07 | #1
    Reply Quote

    嘿嘿,先拿下沙发,再看看 ~ O(∩_∩)O ~

  2. March 7th, 2010 at 23:09 | #2
    Reply Quote

    嘀咕出了问题以后真是囧啊,前面的新浪与网易就不停地刷消息

  3. March 7th, 2010 at 23:09 | #3
    Reply Quote

    不用围脖,飘过

  4. ysjdx
    March 7th, 2010 at 23:19 | #4
    Reply Quote

    在LZ作品的基础上,我做了一个同步到QQ心情的,伪装手机发表心情,缺点是第一次同步需要抓包得到一个POST的地址,目前正在测试抓包得到的地址可以用多久。不知道LZ有兴趣没。
    欢迎fo @prelongs

  5. March 7th, 2010 at 23:26 | #5
    Reply Quote

    @小邪
    这里沙发没人抢啊~ :cry:

    @Ray Chow
    这个确实比较郁闷,似乎嘀咕对API开始限制了?客服也木有回应,静观其变吧~

    @bolo
    用围脖记录生活还是挺有意思的。 ;-)

    @ysjdx
    你是说用Twitter-Feed同步到QQ心情?似乎不错哦~不过我都不怎么用的 :razz:

  6. March 7th, 2010 at 23:27 | #6
    Reply Quote

    @Bronco
    只是个人喜欢推特

  7. March 7th, 2010 at 23:38 | #7
    Reply Quote

    @bolo
    哦~~原来你说围脖指的是sina的啊~我以为是microblog… :!:

  8. March 8th, 2010 at 02:12 | #8
    Reply Quote

    昨天刚晚上Twitter

  9. March 13th, 2010 at 04:59 | #9
    Reply Quote

    博主你好 做个链接吧!

  10. March 13th, 2010 at 16:34 | #10
    Reply Quote

    不想同步…继续推特

  11. March 14th, 2010 at 21:29 | #11
    Reply Quote

    @小宇
    谢谢关注哈~~暂时不考虑交换友链,再说我这PR很低的 :razz:

  12. March 17th, 2010 at 08:52 | #12
    Reply Quote

    话说最近有空否

  13. March 20th, 2010 at 21:16 | #13
    Reply Quote

    @Showfom
    没到四脚朝天,但也头晕眼花… :cry:

  14. April 20th, 2010 at 19:04 | #14
    Reply Quote

    我想知道这个能不能把官方RT也同步过去呢

  15. April 20th, 2010 at 21:03 | #15
    Reply Quote

    @azuis
    似乎获取不到官方RT的消息,没有仔细研究。

  16. April 20th, 2010 at 21:24 | #16
    Reply Quote

    貌似是把所有带@ 的丢弃了..读到的数据中官方RT在RSS是以RT @XXX 显示的..

  17. April 20th, 2010 at 21:41 | #17
    Reply Quote

    @azuis
    官方RT跟普通RT数据是一样的?这样就很好办啊,不过滤包含’@'的消息就好了啊。

  18. darky
    June 7th, 2010 at 05:18 | #18
    Reply Quote

    现在用这方法sina已经无法同步了。你那是不是?

  19. June 7th, 2010 at 20:08 | #19
    Reply Quote

    @darky
    sina早就把gae的ip给ban掉了。

  1. April 22nd, 2010 at 02:23 | #1

    [...] 下载改进版的Twitter-Feed(详情见Bronco的http://heybronco.net/tech/twitter/some-improvement-of-twitter-feed/) [...]

  2. August 18th, 2011 at 20:18 | #2

    [...] address of this article is http://heybronco.net/tech/twitter/some-improvement-of-twitter-feed/.When you got this here have 20 comments, Welcome to join [...]

Comments feed