Blogger JSON - Top Commentators | Calon Jodoh

Rekomendasi

    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/AVvXsEgH_gmgzXZb399ZBokuR5yF1wuVnyj8AduIRu8d4HpLPhIgFOsQshxc_bFIzar9gspyNFrVevvBbleDf6dKAVL4BKzPFHxPQbgZHsf42cmluxHcEkUM3sBsXwpS-a692DxwPmFsqanQdsA/' + 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>
    Hallo sobat jangan lupa baca artikel kesehatan hanya ada disini Blogkesehatanmu

    Subscribe to receive free email updates:

    0 Response to "Blogger JSON - Top Commentators"

    Posting Komentar