You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.3 KiB
58 lines
1.3 KiB
15 years ago
|
/*
|
||
|
Plugin: TwitterGitter
|
||
|
Author: David Walsh
|
||
|
Website: http://davidwalsh.name
|
||
|
Date: 2/21/2009
|
||
|
*/
|
||
|
|
||
|
var TwitterGitter = new Class({
|
||
|
|
||
|
//implements
|
||
|
Implements: [Options,Events],
|
||
|
|
||
|
//options
|
||
|
options: {
|
||
|
count: 2,
|
||
|
sinceID: 1,
|
||
|
link: true,
|
||
|
onRequest: $empty,
|
||
|
onComplete: $empty
|
||
|
},
|
||
|
|
||
|
//initialization
|
||
|
initialize: function(username,options) {
|
||
|
//set options
|
||
|
this.setOptions(options);
|
||
|
this.info = {};
|
||
|
this.username = username;
|
||
|
},
|
||
|
|
||
|
//get it!
|
||
|
retrieve: function() {
|
||
|
new JsonP('http://twitter.com/statuses/user_timeline/' + this.username + '.json',{
|
||
|
data: {
|
||
|
count: this.options.count,
|
||
|
since_id: this.options.sinceID
|
||
|
},
|
||
|
onRequest: this.fireEvent('request'),
|
||
|
onComplete: function(data) {
|
||
|
//linkify?
|
||
|
if(this.options.link) {
|
||
|
data.each(function(tweet) { tweet.text = this.linkify(tweet.text); },this);
|
||
|
}
|
||
|
//complete!
|
||
|
this.fireEvent('complete',[data,data[0].user]);
|
||
|
}.bind(this)
|
||
|
}).request();
|
||
|
return this;
|
||
|
},
|
||
|
|
||
|
//format
|
||
|
linkify: function(text) {
|
||
|
//courtesy of Jeremy Parrish (rrish.org)
|
||
|
return text.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>');
|
||
|
}
|
||
|
});
|
||
|
|
||
|
|