source/javascripts/twitter.js
5c736f5e
 //
 // The Octopress Twitter Feed is based on the following work:
 // Valerio's javascript framework Mootools: Mootools.net
 // David Walsh's Twitter Gitter plugin: http://davidwalsh.name/mootools-twitter-plugin
 // Aaron Newton’s JSONP plugin: http://clientcide.com/js
 //
 
 var username = 'imathis';
 var filter_mentions = true;
 var tweet_count = 5;
 var tweet_tag = 'p';
 var twitter_div = 'twitter_status';
 
 window.addEvent('domready',function() {
 	getTwitterStatus();
 });
 
 function showTweets(the_tweets, from_cookie){
   if(from_cookie){
     the_tweets = the_tweets.split('^!^!^!^!^');
   }
   $(twitter_div).set('html', '');
   the_tweets.each(function(tweet){
     new Element(tweet_tag,{
   		html: tweet
   	}).inject(twitter_div);
   });
 }
 
 function getTwitterStatus(){
   $(twitter_div).set('html', 'Fetching tweets...');
   if(!Cookie.read('the_tweets')) {
   	var myTwitterGitter = new TwitterGitter(username,{
   	  count: ((!filter_mentions) ? tweet_count : 15 + tweet_count),
   		onComplete: function(tweets,user) {
         the_tweets = Array();
   			tweets.each(function(tweet,i) {
   			  if((tweet.in_reply_to_status_id && !filter_mentions) || !tweet.in_reply_to_status_id){
   			    if(the_tweets.length == tweet_count) return;
     			  the_tweets.push(tweet.text);
   				}
   			});
   			Cookie.write('the_tweets',the_tweets.join('^!^!^!^!^'), { duration: 1 });
   			showTweets(the_tweets);
   		}
   	}).retrieve();
 	} else {
 	  showTweets(Cookie.read('the_tweets'),true);
 	}
 }
 
 //implement string.tweetify();
 String.implement({
 	tweetify: function() {
 		return this.replace(/(https?:\/\/\S+)/gi,'<a href="$1">$1</a>').replace(/(^|\s)@(\w+)/g,'$1<a href="http://twitter.com/$2">@$2</a>').replace(/(^|\s)#(\w+)/g,'$1<a href="http://search.twitter.com/search?q=%23$2">#$2</a>');
 	}
 });