2012-06-24 57 views
0

我有一個網站http://www.urbanvision.org.uk/,我們在右側有一個推文。這Twitter的飼料是爲大多數的網站。顯示來自用戶的最新推文(最近20條左右)

我們遇到了一個問題,即當我們在最近三天內沒有發送推文時,沒有推文被顯示。雖然我們計劃推動越來越多,我們可以通過改變下面的代碼來顯示最近的20條推文。

我知道Twitter有它自己的限制,但如果我真誠誠實地發現這一切有點太難以理解。

當前JS代碼:

var tweetUsers = ['urbanvision_uk']; 
var buildString = ""; 

    $(document).ready(function(){ 

     $('#twitter-ticker').slideDown('slow'); 

     for(var i=0;i<tweetUsers.length;i++) 
     { 
      if(i!=0) buildString+='+OR+'; 
      buildString+='from:'+tweetUsers[i]; 
     } 

     var fileref = document.createElement('script'); 

     fileref.setAttribute("type","text/javascript"); 
     fileref.setAttribute("src", "http://search.twitter.com/search.json?q="+buildString+"&callback=TweetTick&rpp=50"); 

     document.getElementsByTagName("head")[0].appendChild(fileref); 

    }); 

    function TweetTick(ob) 
    { 
     var container=$('#tweet-container'); 
     container.html(''); 

     $(ob.results).each(function(el){ 

      var str = ' <div class="tweet">\ 
         <div class="avatar"><a href="http://twitter.com/'+this.from_user+'" target="_blank"><img src="'+this.profile_image_url+'" alt="'+this.from_user+'" /></a></div>\ 
         <div class="user"><a href="http://twitter.com/'+this.from_user+'" target="_blank">'+this.from_user+'</a></div>\ 
         <div class="time">'+relativeTime(this.created_at)+'</div>\ 
         <div class="txt">'+formatTwitString(this.text)+'</div>\ 
         </div>'; 

      container.append(str); 

     }); 

     container.jScrollPane(); 
    } 

    function formatTwitString(str) 
    { 
     str=' '+str; 
     str = str.replace(/((ftp|https?):\/\/([-\w\.]+)+(:\d+)?(\/([\w/_\.]*(\?\S+)?)?)?)/gm,'<a href="$1" target="_blank">$1</a>'); 
     str = str.replace(/([^\w])\@([\w\-]+)/gm,'[email protected]<a href="http://twitter.com/$2" target="_blank">$2</a>'); 
     str = str.replace(/([^\w])\#([\w\-]+)/gm,'$1<a href="http://twitter.com/search?q=%23$2" target="_blank">#$2</a>'); 
     return str; 
    } 

    function relativeTime(pastTime) 
    { 
     var origStamp = Date.parse(pastTime); 
     var curDate = new Date(); 
     var currentStamp = curDate.getTime(); 

     var difference = parseInt((currentStamp - origStamp)/1000); 

     if(difference < 0) return false; 

     if(difference <= 5)    return "Just now"; 
     if(difference <= 20)   return "Seconds ago"; 
     if(difference <= 60)   return "A minute ago"; 
     if(difference < 3600)   return parseInt(difference/60)+" minutes ago"; 
     if(difference <= 1.5*3600)  return "One hour ago"; 
     if(difference < 23.5*3600)  return Math.round(difference/3600)+" hours ago"; 
     if(difference < 1.5*24*3600) return "One day ago"; 
     if(difference < 1.5*48*3600) return "Two days ago"; 
     if(difference < 1.5*720*3600) return "Over a month ago"; 

     var dateArr = pastTime.split(' '); 
     return dateArr[4].replace(/\:\d+$/,'')+' '+dateArr[2]+' '+dateArr[1]+(dateArr[3]!=curDate.getFullYear()?' '+dateArr[3]:''); 
    } 

這也將是冷靜,如果我們能引進銳推和提及過。

一如既往,任何幫助將不勝感激。

+0

你好本,你想檢索最後20條推文嗎? – iNan

+0

@iNan是的,如果可以的話,更多,但如果我們不能像其他幾週一樣定期發佈幾周,那麼20就是一個好的數字。隨着最近的第一等。 – Ben

回答