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')
}
|