Archive of articles classified as' "开发"

Back home

PyFetion 0.2发布

13/12/2009

PyFetion新版本发布,协议根据移动09.11.04的飞信版本:Fetion2008 3.5.2(安全加强版)

更新内容包含:

  1. 增加查看飞信好友是否隐身功能
  2. 增加登录时状态的选择[隐身 在线 忙碌 离开]
  3. 日志改用Python的logging模块
  4. 增加对好友状态改变的处理( 如上线等)
  5. 重写TCP方式中的底层通信函数
  6. 使用对列保存接收到的多余消息( 例如发短信时本来应该返回200 OK 却先来了个BN通知消息,以前这样会出错,现在底层会把BN消息放在队列中,返回200 OK)
  7. 修改了一些异常处理方式
  8. 增加登出,删除好友函数
  9. 改写get_contactlist函数,使用一个dict保存当前的好友列表
  10. 增加一个receive函数 做客户端的时候可以在一个线程中主调用该函数,所有的消息都会yield出来(请参考fetion.py)
  11. 修正向PC发送消息的命令,飞信新增加了一个CatMsg的命令
  12. 增加接收从最新版本PC端发送的消息功能;这个比较麻烦新版本飞信对每一个新会话使用fork出一个线程的方式;
    John先给服务器说我要开个新会话,服务应答一个消息说,你去这个IP吧,带着这个密钥 于是John就连到了这个IP,并使用这个密钥登录,接着发一个包含Bob的uri的邀请命令; 服务器把这个通知(包含IP 密钥和邀请者John的uri)给Bob,Bob收到服务器的通知后也用同样的密钥登录该IP 这时John收到Bob进入会话的消息,他就开始正式发消息了

  13. 许多清理了修正
  14. 调整类的结构
  15. 改用MIT License
  16. 增加了一个CLI的飞信客户端 跨平台支持
  17. Fedora8 Python2.5。1测试;Windowx XP Python2.6.4测试;Win7 Python2.6.2测试
  18. 我忘记在这里列出来的

fetion.py一个CLI的飞信客户端

  1. 多线程支持,同时收发消息
  2. 添加,删除,好友,判断好友是否隐身功能
  3. 占用资源少,我正写这博客的时候官方的飞信占我96.8M的内存
  4. 跨平台支持
  5. 扩展性好,加两行代码就可以实现从手机发命令关机等功能
  6. 其它我没发现的
  • Share/Bookmark
No Comments

web服务器文件下载的奇怪问题

8/12/2009

不知道标题用什么好,用iis建立一个网站和apache建立一个网站,同时指向同一个文件夹,下载文件,在iis下完全下载完毕,但在apache就出现了奇怪的问题,文件中一部分不见了,然后把前面一部分复制到了后面,像下图那样:
未标题-3
在网上也找不到解决方法,唯一在这里找到相似的个案,试过重装apache ,但是还是不能解决。

  • Share/Bookmark
No Comments

利用YQL做代理显示Twitter记录

28/10/2009

YQL也就是雅虎查询语言,因为服务器在国外,所以可以翻墙查询Twitter数据,刚看到Zola《在墙内网页上显示推特记录的三种方法》,自己用YQL试了一下,过程很简单:
进入YQL console(需要登录),然后选择json,输入callback函数名,然后查询

select * from rss where url=’https://twitter.com/statuses/user_timeline/sarices.rss’ limit 10

之后在右边就得到一个地址,此地址就是生成的脚本地址:

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20rss%20where%20url%3D’https%3A%2F%2Ftwitter.com%2Fstatuses%2Fuser_timeline%2Fsarices.rss’%20limit%2010&format=json&callback=showitems

写了一个示例网页大家可以去看看:http://sarices.googlecode.com/svn/trunk/src/twitter.html

  • Share/Bookmark
1 Comment

QQ中转站无限次下载

25/04/2009

看到很多下载的链接都是用这个方法,所以自己也做了一个,直接保存别人的源代码,修改,写个帮助然后就上线了,不到半小时,遗憾的是只支持IE,地址:http://jobpo.com/qq/

测试下载链接(请用IE打开):凶鬼恶灵.supernatural.s04e19.hdtv.xvid-fqm.avi

链接:提取页面 帮助

Technorati 标签: ,,,,
  • Share/Bookmark
No Comments

NetBeans字体设置的解决方案

12/01/2009

通过修改JRE的字体配置文件,可以改变所有Swing应用程序的字体显示。

NetBeans被许多我们中国java开发者指摘的地方就是它的字体难看。细分析一下原因不难找出:netbeans代码编辑器和输出窗口使用 monospaced字体来显示,而monospaced代表着等宽字体,应该是显示程序源代码的合理选择。monospaced是种逻辑字体,它在不同语言和操作系统上映射为不同的物理字体。一般英文操作系统将monospaced字体映射为Courier New。这种字体非常美观,适宜于显示源代码,在Eclipse和Microsoft Visual Studio等IDE中是显示源代码的缺省字体,它也是许多技术网站、博客或者论坛显示源代码的缺省字体。

问题就出在这儿。一般中文操作系统上,monospaced字体是被映射到宋体上的,虽然宋体显示中文非常好看,但它的英文显示非常糟糕。由于 monospaced被映射成宋体,所以netbeans在刚装上后没做任何配置之前,其编辑器和输出窗口里的字体都是宋体,其英文显示也就比较难看。

今天看的这个文档指出JRE的字体映射是可以配置的。简单来说就是在jre/lib下用户可以创建一个fongconfig.properties,配置自定义的字体映射关系。当然不需要从头创建一个字体配置文件,只需拷贝一份字体配置模板文件,然后稍做改动就可以了。具体操作步骤如下:

1.将JDK_HOME/jre/lib目录下的fontconfig.properties.src复制一份文件fontconfig.properties,并放在该目录下。

2.编辑文件fontconfig.properties,查找到下面一行:

sequence.monospaced.GBK=chinese-ms936, alphabetic,dingbats,symbol

可以发现由于中文monospaced字体缺省查找顺序是先使用chinese-ms936,结果造成了英文被宋体来显示。纠正非常简单,只需将chinese-ms936和alphabetic调换顺序就可以了:

sequence.monospaced.GBK=alphabetic,chinese-ms936,dingbats,symbol

3.保存该文件后启动netbeans,这时就会发现netbeans编辑器和输出窗口的字体都变成了Courier New,很好看。如果你已经改了缺省字体设置,不妨再把它改回到缺省的monospaced,再看看结果是不是如你所愿。

注意上面的方法不是只针对netbeans英文版,中文版的netbeans也是这样。对于任何swing应用程序都起作用。

中文NetBeans6.5菜单字体默认为11px,可以通过修改conf文件更改字体大小,打开安装目录下的etc文件夹,修改netbeans.conf文件找到netbeans_default_options属性,增加”–fontsize 12px”,效果如下:

netbeans_default_options="-J-client -J-Xverify:none -J-Xss2m -J-Xms32m -J-XX:PermSize=32m -J-XX:MaxPermSize=200m -J-Dapple.laf.useScreenMenuBar=true -J-Dsun.java2d.noddraw=true –fontsize 12"

经过上面的修改应该可以了。

  • Share/Bookmark
No Comments

Taotao2Rss 为滔滔生成一个RSS

22/12/2008

腾讯的Taotao不是很开放,没有Rss,没有API,之前一直想用QQ更新Twitter,所以之前写了一个Taotao2Twitter,不过因为服务器的关系,一直找不到方法自行更新,所以放弃了。

今天看到原来可以用FriendFeed更新Twitter,所以就为滔滔写了一个Rss输出,然后导入到FriendFeed就可以了,在QQ签名写了东西,经过Taotao2Rss生成RSS,然后FriendFeed读取后更新到Twitter。

如果你也想用QQ签名更新Twitter可以到以下地址生成一个RSS:

http://t2r.bubutang.com/?q=您的QQ

要用QQ签名更新Twitter你需要激活Taotao服务,然后用Taotao2RSs生成RSS,导入到FriendFeed(Feedlr也行,不过没FriendFeed快),最后设置FriendFeed更新Twitter,因为FriendFeed获取RSS不是实时所以不能立即更新Twitter。

p.s:用了公司服务器,因为BLOG服务器不支持simplexml_load_string,有时间把域名解释过来。除了这个方法之外,你还可以用其他另类的方法

updated 20081223 解析域名过去了

  • Share/Bookmark
2 Comments

Taotao2Twitter同步QQ签名到Twitter

1/12/2008

一直以来都想把QQ签名(Taotao)同步更新到Twitter,昨天花了一个小时把基本的功能实现了,程序使用php写的,现在还没有做到在服务器不断执行,只是靠些小工具在本地触发。

基本思路是这样的:

读取Taotao生成的XML文件->检查是否有新数据,把新数据存进数据库,并更新到Twitter

Taotao 的XML地址是:http://www.taotao.com/cgi-bin/msgMgr?type=3&num=数量&qq=QQ号码,最多只有20条产生,但num和qq都是必须的。保存到数据库实现查询是否有相同的数据,如果没有则把新数据存到数据库,把新数据同步到Twitter,然后把数据库中没有同步到Twitter的消息同步到Twitter。Twitter提供了详细的API接口,里面有更新方法

之前也用过一个叫Feedlr,国内的饭否有同步QQ签名到饭否的服务,利用饭否生成的RSS,就可以利用Feedlr同步消息到Twitter,不过我觉的时间太长了,所以就想自己写,现在好需要解决的是怎样把隔段时间自动运行程序一次,不知道FriendFeed是怎样实现的,它同步Twitter消息很快。

  • Share/Bookmark
2 Comments

网站api接口认证方法

27/11/2008

很久没写过技术性的文章了,其实也谈不上技术,只是一些些心得。

最近在写一个网站的接口,为了给聘博网做外呼用,做成接口是因为可能不止聘博网会用,计划做成一种服务,至于做什么就不详细说了。很多Web2.0网站都提供了Api接口,有些是每一次操作都是发送帐号和密码到服务器验证,有些是第一次是到服务器验证,得到一串字符串,根据这串字符串进行验证。

我的方法是采用第二种,首先分配一个api key和api id给网站A,api key是一串md5加密的字符串,api id是数字是用来查找api key的,每个网站都不相同,每次发送请求时先签名,签名的方法和支付宝得差不多,如:

要发送的参数是a=1&c=3&b=2 签名使用升序进行排序,排序后是a=1&b=1&c=1然后用api key进行md5加密生成md5加密字符串如a79fa25b63a27ef459bf7c1f72b7ac32,然后用作为一个参数请求最后生成下面的URL http://www.xx.com/?a=1&b=1&c=1&api_id=1&sign=a79fa25b63a27ef459bf7c1f72b7ac32

上面就是签名的生成方法,用户登录时得到第一次得到的md5验证字符串,我叫它token,还有token的id,都把它存到用户的数据库中,以后每次请求需要认证时,每次签名都用token在加密一次生成签名,发送请求时加上token id 即http://www.xx.com/?a=1&b=1&c=1&&api_id=1&token_id=1&sign=90045d980fcc48a35c3aab0e042dfa77,服务器端根据token_id查找token,根据api_id查找对应的api_key,然后再用同样的方法md5加密得到签名和发送过来的签名对比就知道数据有没有被改动,因为在认证过程中apikey和token不会被公开所以地址不会被伪造。如果要更安全,网站A可以做一个验证地址,服务器到客户端验证一次是否数据在网站A发送,就可以知道是否通过请求。

接口服务器可以保存token可以用xml,数据库等存放起来,而网站A则把第一次认证得到的token信息保存到用户表中。

Technorati 标签: ,,,
  • Share/Bookmark
No Comments