Advertisement
LatesttipsandTricks

Top Commenters HTML Code

Nov 19th, 2014
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.04 KB | None | 0 0
  1. <script type="text/javascript">
  2. var maxTopCommenters = 8;
  3. var minComments = 1;
  4. var numDays = 0;
  5. var excludeMe = true;
  6. var excludeUsers = ["Anonymous", "someotherusertoexclude"];
  7. var maxUserNameLength = 42;
  8. //
  9. var txtTopLine = '<b>[#].</b> [image] [user] ([count])';
  10. var txtNoTopCommenters = 'No Recent commentators at this time.';
  11. var txtAnonymous = '';
  12. //
  13. var sizeAvatar = 33;
  14. var cropAvatar = true;
  15. //
  16. var urlNoAvatar = "http://2.bp.blogspot.com/-pWdg8wLsedo/UmVWQxLdwrI/AAAAAAAAEVk/-z7YgKykkuU/s1600/avatar_blue_m_96.png" + sizeAvatar;
  17. var urlAnoAvatar = 'http://1.bp.blogspot.com/-6B6DXCp8dek/UmVPm7D2mOI/AAAAAAAAEVU/Xz-3z2nRpUk/s1600/avatar1.png' + sizeAvatar;
  18. var urlMyProfile = '';
  19. var urlMyAvatar = '';
  20. if(!Array.indexOf) {
  21. Array.prototype.indexOf=function(obj) {
  22. for(var i=0;i<this.length;i++) if(this[i]==obj) return i;
  23. return -1;
  24. }}
  25. function replaceTopCmtVars(text, item, position)
  26. {
  27. if(!item || !item.author) return text;
  28. var author = item.author;
  29. var authorUri = "";
  30. if(author.uri && author.uri.$t != "")
  31. authorUri = author.uri.$t;
  32. var avaimg = urlAnoAvatar;
  33. var bloggerprofile = "http://www.blogger.com/profile/";
  34. if(author.gd$image && author.gd$image.src && authorUri.substr(0,bloggerprofile.length) == bloggerprofile)
  35. avaimg = author.gd$image.src;
  36. else {
  37. var parseurl = document.createElement('a');
  38. if(authorUri != "") {
  39. parseurl.href = authorUri;
  40. avaimg = 'http://www.google.com/s2/favicons?domain=' + parseurl.hostname;
  41. }
  42. }
  43. if(urlMyProfile != "" && authorUri == urlMyProfile && urlMyAvatar != "")
  44. avaimg = urlMyAvatar;
  45. if(avaimg == "http://img2.blogblog.com/img/b16-rounded.gif" && urlNoAvatar != "")
  46. avaimg = urlNoAvatar;
  47. var newsize="s"+sizeAvatar;
  48. avaimg = avaimg.replace(/\/s\d\d+-c\//, "/"+newsize+"-c/");
  49. if(cropAvatar) newsize+="-c";
  50. avaimg = avaimg.replace(/\/s\d\d+(-c){0,1}\//, "/"+newsize+"/");
  51. var authorName = author.name.$t;
  52. if(authorName == 'Anonymous' && txtAnonymous != '' && avaimg == urlAnoAvatar)
  53. authorName = txtAnonymous;
  54. var imgcode = '<img class="avatar-top-commentators" height="'+sizeAvatar+'" width="'+sizeAvatar+'" title="'+authorName+'" src="'+avaimg+'" />';
  55. if(authorUri!="") imgcode = '<a href="'+authorUri+'">'+imgcode+'</a>';
  56. if(maxUserNameLength > 3 && authorName.length > maxUserNameLength)
  57. authorName = authorName.substr(0, maxUserNameLength-3) + "...";
  58. var authorcode = authorName;
  59. if(authorUri!="") authorcode = '<a class="commenter-link-name" href="'+authorUri+'">'+authorcode+'</a>';
  60. text = text.replace('[user]', authorcode);
  61. text = text.replace('[image]', imgcode);
  62. text = text.replace('[#]', position);
  63. text = text.replace('[count]', item.count);
  64. return text;
  65. }
  66. var topcommenters = {};
  67. var ndxbase = 1;
  68. function showTopCommenters(json) {
  69. var one_day=1000*60*60*24;
  70. var today = new Date();
  71. if(urlMyProfile == "") {
  72. var elements = document.getElementsByTagName("*");
  73. var expr = /(^| )profile-link( |$)/;
  74. for(var i=0 ; i<elements.length ; i++)
  75. if(expr.test(elements[i].className)) {
  76. urlMyProfile = elements[i].href;
  77. break;
  78. }
  79. }
  80. if(json && json.feed && json.feed.entry && json.feed.entry.length) for(var i = 0 ; i < json.feed.entry.length ; i++ ) {
  81. var entry = json.feed.entry[i];
  82. if(numDays > 0) {
  83. var datePart = entry.published.$t.match(/\d+/g);
  84. var cmtDate = new Date(datePart[0],datePart[1]-1,datePart[2],datePart[3],datePart[4],datePart[5]);
  85. var days = Math.ceil((today.getTime()-cmtDate.getTime())/(one_day));
  86. if(days > numDays) break;
  87. }
  88. var authorUri = "";
  89. if(entry.author[0].uri && entry.author[0].uri.$t != "")
  90. authorUri = entry.author[0].uri.$t;
  91. if(excludeMe && authorUri != "" && authorUri == urlMyProfile)
  92. continue;
  93. var authorName = entry.author[0].name.$t;
  94. if(excludeUsers.indexOf(authorName) != -1)
  95. continue;
  96. var hash=entry.author[0].name.$t + "-" + authorUri;
  97. if(topcommenters[hash])
  98. topcommenters[hash].count++;
  99. else {
  100. var commenter = new Object();
  101. commenter.author = entry.author[0];
  102. commenter.count = 1;
  103. topcommenters[hash] = commenter;
  104. }
  105. }
  106. if(json && json.feed && json.feed.entry && json.feed.entry.length && json.feed.entry.length == 200) {
  107. ndxbase += 200;
  108. document.write('<script type="text/javascript" src="http://'+window.location.hostname+'/feeds/comments/default?redirect=false&max-results=200&start-index='+ndxbase+'&alt=json-in-script&callback=showTopCommenters"></'+'script>');
  109. return;
  110. }
  111. // convert object to array of tuples
  112. var tuplear = [];
  113. for(var key in topcommenters) tuplear.push([key, topcommenters[key]]);
  114. tuplear.sort(function(a, b) {
  115. if(b[1].count-a[1].count)
  116. return b[1].count-a[1].count;
  117. return (a[1].author.name.$t.toLowerCase() < b[1].author.name.$t.toLowerCase()) ? -1 : 1;
  118. });
  119. var realcount = 0;
  120. for(var i = 0; i < maxTopCommenters && i < tuplear.length ; i++) {
  121. var item = tuplear[i][1];
  122. if(item.count < minComments)
  123. break;
  124. document.write('<di'+'v class="top-commentators">');
  125. document.write(replaceTopCmtVars(txtTopLine, item, realcount+1));
  126. document.write('</d'+'iv>');
  127. realcount++;
  128. }
  129. if(!realcount)
  130. document.write(txtNoTopCommenters);
  131. }
  132. document.write('<script type="text/javascript" src="http://'+window.location.hostname+'/feeds/comments/default?redirect=false&max-results=200&alt=json-in-script&callback=showTopCommenters"></'+'script>');
  133. </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement