diff options
Diffstat (limited to '')
-rw-r--r-- | source/javascripts/twitter_gitter.js | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/source/javascripts/twitter_gitter.js b/source/javascripts/twitter_gitter.js new file mode 100644 index 00000000..788883f2 --- /dev/null +++ b/source/javascripts/twitter_gitter.js @@ -0,0 +1,57 @@ +/*
+ 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>');
+ }
+});
+ + |