jquery twitter
http://ralphwhitbeck.com/content/binary/twitter-json-jquery.html
1 <html> 2 <head> 3 <script type="text/javascript" src="http://code.jquery.com/jquery-latest.pack.js"></script> 4 <script> 5 $(document).ready( function() { 6 7 var url = "http://twitter.com/status/user_timeline/RedWolves.json?count=3&callback=?"; 8 $.getJSON(url, 9 function(data){ 10 $.each(data, function(i, item) { 11 $("img#profile").attr("src", item.user["profile_image_url"]); 12 $("#tweets ul").append("<li>" + item.text.linkify() + " <span class='created_at'>" + relative_time(item.created_at) + " via " + item.source + "</span></li>"); 13 }); 14 }); 15 }); 16 17 String.prototype.linkify = function() { 18 return this.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/, function(m) { 19 return m.link(m); 20 }); 21 }; 22 function relative_time(time_value) { 23 var values = time_value.split(" "); 24 time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3]; 25 var parsed_date = Date.parse(time_value); 26 var relative_to = (arguments.length > 1) ? arguments[1] : new Date(); 27 var delta = parseInt((relative_to.getTime() - parsed_date) / 1000); 28 delta = delta + (relative_to.getTimezoneOffset() * 60); 29 30 var r = ''; 31 if (delta < 60) { 32 r = 'a minute ago'; 33 } else if(delta < 120) { 34 r = 'couple of minutes ago'; 35 } else if(delta < (45*60)) { 36 r = (parseInt(delta / 60)).toString() + ' minutes ago'; 37 } else if(delta < (90*60)) { 38 r = 'an hour ago'; 39 } else if(delta < (24*60*60)) { 40 r = '' + (parseInt(delta / 3600)).toString() + ' hours ago'; 41 } else if(delta < (48*60*60)) { 42 r = '1 day ago'; 43 } else { 44 r = (parseInt(delta / 86400)).toString() + ' days ago'; 45 } 46 47 return r; 48 } 49 function twitter_callback () 50 { 51 return true; 52 } 53 54 </script> 55 </head> 56 <body> 57 <div id="tweets"> 58 <img id="profile"> 59 <ul></ul> 60 </div> 61 </body> 62 </html>