Skip to content

Instantly share code, notes, and snippets.

@kentbrew
Created September 28, 2011 21:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kentbrew/1249300 to your computer and use it in GitHub Desktop.
Save kentbrew/1249300 to your computer and use it in GitHub Desktop.
Get your last few Twitter favorites.
// twitter favorites
(function (w, d, a) {
var $ = w[a.el] = {};
$.w = w;
$.d = d;
$.a = a;
$.f = (function () {
return {
listen : function (el, ev, fn) {
if(typeof $.w.addEventListener !== 'undefined') {
el.addEventListener(ev, fn, false);
} else if(typeof $.w.attachEvent !== 'undefined') {
el.attachEvent('on' + ev, fn);
}
},
pong: function (r) {
$.s.innerHTML = '';
var utfPattern = "&#$1;";
var linkPattern = "<a href=\"http://$1\" target=\"_twitter_link\">http://$1</a>";
var userPattern = '<a href="http://twitter.com/$1" target=\"_twitter_user\">@$1</a>';
var searchPattern = '<a href=\"http://twitter.com/search/$1\" target=\"_twitter_search\">#$1</a>';
var ul = $.d.createElement('UL');
for (var i = 0, n = r.length; i < n; i = i + 1) {
var li = $.d.createElement('LI');
var avatar = $.d.createElement('A');
avatar.href = 'http://twitter.com/' + r[i].user.screen_name;
avatar.target = '_twitter_user';
var img = $.d.createElement('IMG');
img.src = r[i].user.profile_image_url;
avatar.appendChild(img);
li.appendChild(avatar);
var tweet = $.d.createElement('SPAN');
var raw = r[i].text;
var cooked = raw.replace(/\/u([^ ]+)/gi, utfPattern).replace(/http:\/\/([^ ]+)/g, linkPattern).replace(/@([\w*]+)/g, userPattern).replace(/#([\w*]+)/g, searchPattern);
tweet.innerHTML = cooked;
li.appendChild(tweet);
var cite = $.d.createElement('CITE');
var user = $.d.createElement('A');
user.href = 'http://twitter.com/' + r[i].user.screen_name;
user.target = '_twitter_user';
user.innerHTML = r[i].user.name;
cite.appendChild(user);
var date = $.d.createElement('A');
date.href = 'http://twitter.com/' + r[i].user.screen_name + '/status/' + r[i].id_str;
date.target = '_twitter_status';
var poop = r[i].created_at.split(' ');
cite.appendChild($.d.createTextNode(', '));
var nam = poop[0];
var mon = poop[1];
var day = poop[2];
if (day[0] === '0') {
day = day[1];
}
date.innerHTML = nam + ' ' + mon + ' ' + day;
cite.appendChild(date);
li.appendChild(cite);
ul.appendChild(li);
}
$.s.appendChild(ul);
$.d.getElementById('twitter_favorites').className = 'module';
},
ping: function () {
var s = $.d.createElement('SCRIPT');
s.type = 'text/javascript';
s.src = 'http://api.twitter.com/1/favorites.json?id=' + $.a.id + '&count=' + $.a.count + '&callback=' + $.a.el + '.f.pong';
$.d.b.appendChild(s);
},
init : function () {
$.d.b = $.d.getElementsByTagName('BODY')[0];
$.s = $.d.getElementById($.a.el);
if ($.s && $.s.tagName) {
$.f.ping();
}
}
};
}());
$.f.listen($.w, 'load', $.f.init);
}(window, document, {'el': 'twitter_favorites_container', 'id': 'kentbrew', 'count': 3}));
@kentbrew
Copy link
Author

CSS, of course, is left as an exercise for the student. :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment