resources/js/feeds.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
function format_date(d){ return $.timeago(Date.parse(d)); } function get_json_data(uri, max, element){ $.getJSON(uri, function(data){ var list = $("<ul></ul>"); for (var i=0; i<max; i++){ switch(element){ case "#backtype": var item = backtype_entry(data.comments[i]) break; case "#delicious": var item = delicious_entry(data[i]) break; case "#twitter": var item = twitter_entry(data[i]) break; } item.appendTo(list); } list.appendTo(element).fadeIn(1000); }); } function backtype_entry(comment){ var c = $("<li></li>").addClass('feed-item'); var dt = $("<span></span>").addClass('feed-item-date').html(format_date(comment.comment.date)+":"); var tx = $("<span>» </span>").addClass('feed-item-text').append($('<a></a>').attr('href', comment.comment.url).html(comment.post.title)); c.append(dt); c.append(tx); return c } function twitter_entry(tweet){ var it = $("<li></li>").addClass('feed-item'); var content = tweet.text .replace(/^h3rald:/, '') .replace(/((http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?)/g, '<a href="$1">$1</a>') .replace(/@([a-zA-Z1-9_]*)/g, '<a href="http://www.twitter.com/$1">@$1</a>') .replace(/#([a-zA-Z1-9_]*)/g, '<a href="http://www.twitter.com/search?q=%23$1">#$1</a>') var dt = $("<span></span>").addClass('feed-item-date').html(format_date(tweet.created_at)+":"); var tx = $("<span>» </span>").addClass('feed-item-text').html(content); it.append(dt); it.append(tx); return it } function delicious_entry(bookmark){ var it = $("<li></li>").addClass('feed-item'); var content = "<a href='"+bookmark.u+"'>"+bookmark.d+"</a>"; content += "<br />tags: "; var categories = Array(); for (i=0; i<bookmark.t.length; i++) { categories[i] = "<a href='http://delicious.com/h3rald/"+bookmark.t[i]+"'>"+bookmark.t[i]+"</a> "; } content += categories.join(', ').replace(/ $/, ''); dt = $("<span></span>").addClass('feed-item-date').html(format_date(bookmark.dt)+":"); tx = $("<span>» </span>").addClass('feed-item-text').html(content); it.append(dt); it.append(tx); return it } // http://api.backtype.com/user/h3rald/comments.json?key=47bf0031e3a18a598b85&html=1 function display_opinions(max){ get_json_data("/data/opinions.json", max, '#backtype') } // http://twitter.com/status/user_timeline/h3rald.json function display_tweets(max){ get_json_data("/data/tweets.json", max, '#twitter') } // http://feeds.delicious.com/v2/json/h3rald function display_bookmarks(max){ get_json_data("/data/bookmarks.json", max, '#delicious') } |