Twitter小栏目代码问题及博客的一些变更


昨天把『少女進行時』里面的栏目整合了一下,主要是把几个不可能再扩充内容进去的子栏目根据属性并成了两个子栏目,其他视频之类的归类到视频类子栏目下。这样『少女進行時』这个大栏目就有种“清爽啦”的感觉了。另外,今天为了适应日益增多的推特应用,把原来饭否的右边侧栏改造成了Twitter的实时更新。为了这个更新,今天忙了足足一个下午,先是架设Twip 3.0的时候,发现不管怎么引用都没有用。然后换回Twip 2.1后,又是一阵设置,设置完了还是没办法显示推特的消息。这时候我才想到排查一下代码是否有问题,嘿,还真是代码出问题了。大概是写代码的时候没注意“‘和"'的区别,导致大部分该是"'的地方都写成了“‘,怪不得系统总是显示无法载入JavaScript。改完之后,再修修补补一下一些小的疏漏和版面编排问题,终于让这个原来因为饭否而隐藏掉的栏目复活啦!

  1. <div id="twitter_div" style="margin-left:-25px;">
  2.  <h2 style="display: none;" >Twitter Updates</h2>
  3.  <ul id="twitter_update_list"></ul>
  4.  <a href="http://twitter.com/您的TwitterID" id="twitter-link" style="display:block;text-align:right;">来推我呀!</a>
  5.  </div>
  6.  <script type="text/javascript" src="http://API程序地址/twitter.js"></script>
  7.  <script type="text/javascript" src="http://API程序地址/statuses/user_timeline/您的TwitterID.json?callback=twitterCallback2&count=8"></script>


然后还要自己写一段JS码,保存为twitter.js,存放到API程序地址的路径下,这样就可以引用了。另外,API程序地址这里要填写您自己的,如果您没用Twip自己建立一个的话,可以去网上找找有没有别的您可以用的API程序。我架设的Twip服务,因为考虑到一些安全因素和空间环境,不对外开放,引用了也没有用。我已经限制只有我自己的推特账号才能使用。所以,翻源代码的同学就不要窃喜了。

附上JS代码:

  1. function twitterCallback2(twitters) {
  2.    var statusHTML = [];
  3.    for (var i=0; i<twitters.length; i++){
  4.      var username = twitters[i].user.screen_name;
  5.      var status = twitters[i].text.replace(/((https?|s?ftp|ssh)\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g, function(url) {
  6.        return '<a href="'+url+'">'+url+'</a>';
  7.      }).replace(/\B@([_a-z0-9]+)/ig, function(reply) {
  8.        return  reply.charAt(0)+'<a href="http://API程序地址/'+reply.substring(1)+'">'+reply.substring(1)+'</a>';
  9.      });
  10.      statusHTML.push('<li><span>'+status+'</span> <a style="font-size:85%" href="http://API程序地址/'+username+'/statuses/'+twitters[i].id+'">'+relative_time(twitters[i].created_at)+'</a></li>');
  11.    }
  12.    document.getElementById('twitter_update_list').innerHTML = statusHTML.join('');
  13.  }
  14.  
  15. function relative_time(time_value) {
  16.    var values = time_value.split(" ");
  17.    time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3];
  18.    var parsed_date = Date.parse(time_value);
  19.    var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
  20.    var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
  21.    delta = delta + (relative_to.getTimezoneOffset() * 60);
  22.  
  23.   if (delta < 60) {
  24.      return 'less than a minute ago';
  25.    } else if(delta < 120) {
  26.      return 'about a minute ago';
  27.    } else if(delta < (60*60)) {
  28.      return (parseInt(delta / 60)).toString() + ' minutes ago';
  29.    } else if(delta < (120*60)) {
  30.      return 'about an hour ago';
  31.    } else if(delta < (24*60*60)) {
  32.      return 'about ' + (parseInt(delta / 3600)).toString() + ' hours ago';
  33.    } else if(delta < (48*60*60)) {
  34.      return '1 day ago';
  35.    } else {
  36.      return (parseInt(delta / 86400)).toString() + ' days ago';
  37.    }
  38. }


把代码复制黏贴一下就行了,这代码虽然也是参考别人的,但是搞懂这个花去了整整一个下午,累死人了。不过搞懂之后也是有好处的,理解了Twip的作用后,就能用一些基于API的桌面客户端了。我现在用的是Twhirl,简单照着网上的教程设置API接口之后,使用起来完全没有问题,速度也很流畅,也算是对今天一下午付出的一个小小的回报吧!

页面风格符合我的喜好,速度也快:


attachments/201003/2466551997.jpg

另外还有一个收获,就是在整个折腾Twitter服务过程中,架设的一个PHP代理程序。不过,依然出于安全的考虑,这里不会给出具体的链接地址,只供我私人使用。但是呢,我修改之后的界面和风格,我自己还是非常喜欢的,贴出来给大家看一下吧!

attachments/201003/3941075539.jpg

copyright应该没错吧,我记得是2008年的剧场……

我突然发现,到目前为止,基本上所有能折腾想折腾的程序我都折腾过一遍了,⊙﹏⊙b汗!接下来就不折腾了,该是好好建设网站的时期了。不过,等等,好像忘记什么了。对了,对了,回光文学社还没折腾完,再⊙﹏⊙b汗!保存日志,再启动!

引用通告地址: http://www.pineapple12.info/trackback.php?tbID=416&extra=0bcec4
标签: F2Blog 代码修改 疑难杂症 Twitter
评论: 1 | 引用: 0 | 阅读: 522
  • 1 
小明猪 [ 2010-03-06 10:09 网址 | 回复 | 编辑/删除 ]
惊现S1娘,进博客后再惊奇地发掘,进错门了,还以为是M酱的博客
  • 1 
发表评论
昵 称(*): 密 码:
网 址: 邮 箱:
选 项:    
头 像:
内 容(*):