2009年7月23日星期四

[GFW Blog] 进一步突破GFW,恢复你Twitter的另一大半功力方法

作者:Ray 来源:http://rayche.blogbus.com/logs/42805708.html

twitter其实是可以作为单独的服务来用的,不过对于很多bloger而言,他们更希望自己的twitter能被浏览自己blog的XD看到,于是widget就出现了,它用来加在页面中显示twitter内容。

twitter被GFW墙掉之后,出现了很多翻越GFW更新twitter的办法,最方便的当然还是修改host+https法,使用之后,各种第三方软件又可以使用了,当然itweetDabrTwitzapTweetreetwitter Gmail Widget之类的第三方网站也是不错的选择。

但是Twitter的另一半--嵌入widget还是被废掉了,昨天在feishuang小大盆友的建议下,Ray搞了点研究工作,由于科研选择方向比较正确,所以很快就成功了,可以实现显示Twitter纯文字widget内容了~

原理:很简单,将嵌入Twitter的widget代码中的网址替换为修改host法中Twitter.com的IP即可。

行动:Twitter嵌入文字widget的代码如下(根据自己选择的设置不同,可能会略微有些不同):


Twitter Updates



    follow me on Twitter


    以下部分插入在
    --~--~---------~--~----~------------~-------~--~----~
    1、请点击www.chinagfw.org访问我们,订阅地址:http://feeds2.feedburner.com/chinagfwblog。2、需要Psiphon2注册邀请的朋友,请向english@sesawe.net发送电子邮件请求,说明 "can I have psiphon2 access" 并告诉您所在的国家。也可以使用Twitter Direct Messages或登陆Psiphon网站直接向Psiphon索取使用邀请。3、GFW Blog现提供最新翻墙工具下载(地址一、二、三),翻墙(突破网络封锁)方法介绍请见本站anti-censorship部分。4、本站热烈欢迎各位朋友投稿或推荐文章,请发邮件至chinagfwblog[at]gmail.com。5、敬请关注、支持、参与Sesawe和黑箱监管集体诉讼。
    To unsubscribe from this group, send email to
    gfw-blog+unsubscribe@googlegroups.com
    For more options, visit this group at
    http://groups.google.com/group/gfw-blog?hl=zh-CN
    -~----------~----~----~----~------~----~------~--~---
    之前:



    要做的事情很简单,把所有的"http://twitter.com"改为"http://128.121.146.228"。(共有三处)

    这 样修改完之后,修改过host的人就可以看到你的Twitter了,但是没有修改过的还是不行。所以要进一步进行修改。办法是修改 http://twitter.com/javascripts/blogger.js(这个由于GFW是无法访问的)也就是http: //128.121.146.228/javascripts/blogger.js这个文件,把以上网址输入浏览器地址栏,或者会提醒你下载这个 blogger.js文件(那就下载),或者会直接打开这个文件(那就另存为),总之,想办法把它的内容以.js格式的文件保存下来。其中的内容大概是这 样的。

    function twitterCallback2(twitters) {
    var statusHTML = [];
    for (var i=0; i var username = twitters[i].user.screen_name;
    var status = twitters[i].text.replace(/((https?|s?ftp|ssh)\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g, function(url) {
    return ''+url+'';
    }).replace(/\B@([_a-z0-9]+)/ig, function(reply) {
    return reply.charAt(0)+''+reply.substring(1)+'';
    });
    statusHTML.push('
  • '+status+' href="http://twitter.com/'+username+'/statuses/'+twitters[i].id+'">'+relative_time(twitters[i].created_at)+'
  • ');
    }
    document.getElementById('twitter_update_list').innerHTML = statusHTML.join('');
    }

    function relative_time(time_value) {
    var values = time_value.split(" ");
    time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3];
    var parsed_date = Date.parse(time_value);
    var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
    var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
    delta = delta + (relative_to.getTimezoneOffset() * 60);

    if (delta < 60) {
    return 'less than a minute ago';
    } else if(delta < 120) {
    return 'about a minute ago';
    } else if(delta < (60*60)) {
    return (parseInt(delta / 60)).toString() + ' minutes ago';
    } else if(delta < (120*60)) {
    return 'about an hour ago';
    } else if(delta < (24*60*60)) {
    return 'about ' + (parseInt(delta / 3600)).toString() + ' hours ago';
    } else if(delta < (48*60*60)) {
    return '1 day ago';
    } else {
    return (parseInt(delta / 86400)).toString() + ' days ago';
    }
    }


    将第八和第十行里的http://twitter.com/改成http://128.121.146.228/然后保存,把那个js文件上传到某个可以
    外链访问的空间里吧,有blog的人应该都会有的吧~
    接下来修改widget的代码,把

    这句中的src=""中引号内的地址替换成那个js的网址~
    Ray修改后的js网络地址是http://rayche.blogbus.com/files/12482765440.js,不清楚是否可以匿名外链,大家如
    果找不到网络空间上传的话可以试试~
    经过这一系列的动作之后,就OK了。接下来就测试测试吧~
    看似复杂其实很简单的,人,不要怕麻烦。
    至于flash版的widget Ray并没有做测试,推测将static.twitter.com替换成168.143.162.101估计也是有可能的有效
    的,有钻研精神的盆友帮忙测试一下吧!
    PS:关于如何插入widget之类的问题就不要问啦,自己找找教程…
    PS2:另外很多第三方的widget不太清楚是否好用,如果可以的话说不定更加方便~
    PS3:欢迎转载,请注明出处。
    PS4:欢迎大家跟我交流其他的方法。
    PS5:进一步分析了widget的代码,现在Ray的边栏Twitter显示清晰多了~(耗时三个小时囧…)



    --
    Posted By GFW Blog to GFW Blog at 7/23/2009 05:56:00 PM

    没有评论:

    发表评论