
$(document).ready(function() {
});
(function($){
$.fn.twitter = function(username, options) {
if (username){
var defaultSettings = {start: '0', count: '1'}
var settings = $.extend(defaultSettings, options);
var url = 'http://twitter.com/status/user_timeline/'+username+'.json?count='+settings.count+'&callback=?';
var holder = this;
$.getJSON(url, function(data) {
$.each(data.reverse(), function(i, item) {
var date = item.created_at.split(' ');
if ($(item.source).html() != null) {
var source = $(item.source).html();
}
else {
var source = item.source;
}
if (i >= settings.start) {
holder.prepend('<span>'+ date[2] + ' ' + date[1] + ' ' + date[5] + ', ' + date[3].substring(0,5) + ' from ' + source + '</span>');
holder.prepend('<strong>' + item.text.makeLinks() + '</strong>');
}
});
});
}
else {
var holder = this;
holder.append('<span>the jquery twitter plugin requires a username, please check your parameters!</span>');
}
String.prototype.makeLinks = function() {
return this.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/, function(url) {
if (url.length > 26) {
var name = url.substring(7, url.length);
name = name.substring(0, name.indexOf('/'));
}
else {
var name = url;
}
return '<a href="' + url + '" rel="external">' + name + '</a>';
});
};
return this;
};
})(jQuery);
