山寨货也是要更新的
我的说的就是它->http://code.google.com/p/javatweet/
当初开始写的时候就是个山寨货,不过后来在几位参与者(@gythialy @sospartan @gowers)的帮助下,折腾的也算像点样子,用户也曾到过好几千,公开的GAE应用巅峰状态时候天天over quota。我自己的blog都没能有这么多的点击量,这个山寨货居然能如此受欢迎,真是灰常惊喜,真的,当时特别高兴。
后来一段时间,一直都在坚持消灭bug,想方设法添加新功能。比如那个匹配各种用户名,tag,链接,锻链接,图床的正则表达式就改了不知道多少遍,但是一直不完善,最后用的这个也就是比较靠谱而已;在客户端上直接修改头像,这个在我用过的客户端里,当时还没有;还有TwitpicProxy,就在直接发送图片的功能,这个是费了老大的劲,手工分析玩http报文后才搞定的。有那么几个月时间吧,一直在折腾这个东西,但是因为有用户,还是觉得很开心的。
然后就开学了。。。学习任务还是比较重的,实验室也有事情,因为程序也比较稳定了,所以就被搁置了。这一搁就是快一年了=。=||
今年暑假本来打算回来学车的,结果该死的宿舍搬家卡在一个前不前,后不后的位置,回来晚了,就考了个科目一,后面根本没法安排上车了。
Twitter早就宣布要取消BasicAuth了,程序也确实不得不进行修改了。虽然之前已经有@gythialy同学在原有基础上添加了OAuth功能,但是原来写程序的时候,为了方便,直接修改了Twitter4J库的代码,无法通过更新新版本的库添加新功能,所以很麻烦。。。
下了狠心,干脆重构。这次没有修改库的任何文件,方便以后升级库。
埋头闷了几天,在java,javascript,html,css直接来回折腾,搞的头那个大啊。。。
埋头敲代码的不良反映就是消化不良,脸上长痘。。。
好吧,下面是更新的功能:
- 使用了目前最新版的Twitter4J库,并且保持了库的完整性,未做修改;
- 支持了官方RT;
- 全面支持OAuth,去除了对Basic OAuth的支持;
- 闪动标题和声音提醒在设置中均可以单独设置;
- 实现了在OAuth环境下更换头像的功能;
- 添加了边栏个人资料的自动刷新和手工刷新;
- 添加自动删除服务器端过期session的cron任务,避免造成GAE存储空间浪费;
- 去掉了在OAuth环境下无法工作的功能,以及缩略图预览功能。
这里面其实大部分还是山寨的成分,但是可以更换头像的特色还是在努力和两天实现了。
其实更换头像实现起来还是比较容易的,特别是在php环境下其实特别容易,但是在java环境下还是需要灵活变通一下的。
java下分析上传文件时的http post的内容比较扯淡,其实根本不用分析,将修改头像的表单独立出来,并将该input元素的name属性设置成api需要的,然后直接转交报文载荷就行了,然后添加上OAuth的Header,就ok了。
HTTPRequest httpreq = new HTTPRequest(new URL("http://api.twitter.com/1/account/update_profile_image.json"), HTTPMethod.POST);
httpreq.addHeader(new HTTPHeader("Connection", "Keep-Alive"));
httpreq.addHeader(new HTTPHeader("Content-Type", req.getContentType()));
httpreq.addHeader(new HTTPHeader("Authorization", generateAuthorizationHeader()));byte[] buf = new byte[req.getContentLength()];
req.getInputStream().read(buf);httpreq.setPayload(buf);
HTTPResponse httpresp = urlFetch.fetch(httpreq);
今晚往SVN服务器上上传了新版代码。
好吧,下面发两个图来纪念下这一个多礼拜敲的6000多行代码。






最新评论