Jumat, 15 Februari 2013

Blogger JSON - Top Commentators

<!DOCTYPE html> <html> <head> <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/> <title>Top Commentators</title> <style type="text/css"> .top-commenter-line { margin:3px 0px; } .top-commenter-avatar { display:inline-block; vertical-align:middle; } </style> </head> <body> <script type="text/javascript"> // Top Commentators gadget with avatars, by MS-potilas 2012. // Gets a list of top commentators from all comments, or specified number of days in the past. // See http://yabtb.blogspot.com/2012/05/top-commenters-gadget-with-avatars.html // CONFIG: var homepage = 'http://latitudu.blogspot.com', // Homepage maxTopCommenters = 17, // How much? minComments = 1, // How many comments must top commentator have at least numDays = 0, // From how many days (ex. 30), or 0 from "all the time" excludeMe = true, // true: exclude my own comments excludeUsers = ["Anonymous", "Another Name"], // Exclude these usernames maxUserNameLength = 42, // 0: don't cut, >4: cut usernames txtTopLine = '<b>[#].</b> [image] [user] ([count])', // List number txtNoTopCommenters = 'No top commentators at this time.', txtAnonymous = '', // Empty, or Anonymous user name localized if you want to localize sizeAvatar = 16, // Avatar size cropAvatar = true, urlNoAvatar = 'https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXd95P-guc1HW9he_6ZWQ4UvRsnOzcliaHi9dODxARF_mDXUbaZ1Ba-IQsj6MRsGjqDQDZ3HaaTZkZHzA_y_1LvqO829kJCTEmTrUWqeAeUNKD3hzUj2Yo14-cp98ZoF4b11SC80SWy9E/' + sizeAvatar + '/avatar_blue_m_96.png', // http://www.blogger.com/img/avatar_blue_m_96.png resizeable urlAnoAvatar = 'http://www.gravatar.com/avatar/00000000000000000000000000000000?d=mm&s=' + sizeAvatar, urlMyProfile = '', // Set if you have no profile gadget on page urlMyAvatar = ''; // Can be empty (then it is fetched) or url to image // END CONFIG // for old IEs & IE modes: if (!Array.indexOf) { Array.prototype.indexOf = function(obj) { for (var i = 0; i < this.length; i++) if (this[i] == obj) return i; return -1; }; } function replaceTopCmtVars(text, item, position) { if (!item || !item.author) return text; var author = item.author; var authorUri = ""; if (author.uri && author.uri.$t !== "") authorUri = author.uri.$t; var avaimg = urlAnoAvatar; var bloggerprofile = "http://www.blogger.com/profile/"; if (author.gd$image && author.gd$image.src && authorUri.substr(0, bloggerprofile.length) == bloggerprofile) { avaimg = author.gd$image.src; } else { var parseurl = document.createElement('a'); if (authorUri !== "") { parseurl.href = authorUri; avaimg = 'http://www.google.com/s2/favicons?domain=' + parseurl.hostname; } } if (urlMyProfile !== "" && authorUri == urlMyProfile && urlMyAvatar !== "") avaimg = urlMyAvatar; if (avaimg == "http://img2.blogblog.com/img/b16-rounded.gif" && urlNoAvatar !== "") avaimg = urlNoAvatar; var newsize = "s" + sizeAvatar; avaimg = avaimg.replace(/\/s\d\d+-c\//, "/" + newsize + "-c/"); if (cropAvatar) newsize += "-c"; avaimg = avaimg.replace(/\/s\d\d+(-c){0,1}\//, "/" + newsize + "/"); var authorName = author.name.$t; if (authorName == 'Anonymous' && txtAnonymous !== "" && avaimg == urlAnoAvatar) authorName = txtAnonymous; var imgcode = '<img class="top-commenter-avatar" height="' + sizeAvatar + '" width="' + sizeAvatar + '" title="' + authorName + '" src="' + avaimg + '" />'; if (authorUri !== "") imgcode = '<a href="' + authorUri + '">' + imgcode + '</a>'; if (maxUserNameLength > 3 && authorName.length > maxUserNameLength) authorName = authorName.substr(0, maxUserNameLength - 3) + "..."; var authorcode = authorName; if (authorUri !== "") authorcode = '<a class="profile-name-link" href="' + authorUri + '">' + authorcode + '</a>'; text = text.replace('[user]', authorcode); text = text.replace('[image]', imgcode); text = text.replace('[#]', position); text = text.replace('[count]', item.count); return text; } var topcommenters = {}; var ndxbase = 1; function showTopCommenters(json) { var one_day = 1000 * 60 * 60 * 24; var today = new Date(); if (urlMyProfile === "") { var elements = document.getElementsByTagName("*"); var expr = /(^| )profile-link( |$)/; for (var i = 0; i < elements.length; i++) { if (expr.test(elements[i].className)) urlMyProfile = elements[i].href; break; } } for (var j = 0; j < json.feed.entry.length; j++) { var entry = json.feed.entry[j]; if (numDays > 0) { var datePart = entry.published.$t.match(/\d+/g); // Assume ISO 8601 var cmtDate = new Date(datePart[0], datePart[1] - 1, datePart[2], datePart[3], datePart[4], datePart[5]); // Calculate difference btw the two dates, and convert to days var days = Math.ceil((today.getTime() - cmtDate.getTime()) / (one_day)); if (days > numDays) break; } var authorUri = ""; if (entry.author[0].uri && entry.author[0].uri.$t !== "") authorUri = entry.author[0].uri.$t; if (excludeMe && authorUri !== "" && authorUri == urlMyProfile) continue; var authorName = entry.author[0].name.$t; if (excludeUsers.indexOf(authorName) != -1) continue; var hash = entry.author[0].name.$t + "-" + authorUri; if (topcommenters[hash]) topcommenters[hash].count++; else { var commenter = {}; commenter.author = entry.author[0]; commenter.count = 1; topcommenters[hash] = commenter; } } if (json.feed.entry.length == 200) { ndxbase += 200; document.write('<scr' + 'ipt type="text/javascript" src="' + homepage + '/feeds/comments/default?redirect=false&max-results=200&start-index=' + ndxbase + '&alt=json-in-script&callback=showTopCommenters"></' + 'script>'); return; } // Convert object to array of tuples var tuplear = []; for (var key in topcommenters) tuplear.push([key, topcommenters[key]]); tuplear.sort(function(a, b) { if (b[1].count - a[1].count) return b[1].count - a[1].count; return (a[1].author.name.$t.toLowerCase() < b[1].author.name.$t.toLowerCase()) ? -1 : 1; }); // List top commenters: var realcount = 0; for (var k = 0; k < maxTopCommenters && k < tuplear.length; k++) { var item = tuplear[k][1]; if (item.count < minComments) break; document.write('<di' + 'v class="top-commenter-line">'); document.write(replaceTopCmtVars(txtTopLine, item, realcount + 1)); document.write('</d' + 'iv>'); realcount++; } if (!realcount) document.write(txtNoTopCommenters); } document.write('<scr' + 'ipt type="text/javascript" src="' + homepage + '/feeds/comments/default?redirect=false&max-results=200&alt=json-in-script&callback=showTopCommenters"></' + 'script>'); </script> </body> </html>

Sumber: http://www.dte.web.id/2012/05/top-commentators.html#.UR5eIB2ouSo

 

Copyright © 2009 Study In Today . Blog Designed by Study In Today & AdhiTj.