57 lines
1.7 KiB
JavaScript
57 lines
1.7 KiB
JavaScript
//
|
||
// 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>');
|
||
}
|
||
}); |