Post count

HL post count script

  1. // ==UserScript==
  2. // @name Post count
  3. // @namespace HLN
  4. // @description HL post count script
  5. // @include http://www.harrylatino.org/*
  6. // @version 2
  7. // @grant none
  8. // @Author Nox
  9. // ==/UserScript==
  10.  
  11. function occurrences(string, subString, allowOverlapping) {
  12.  
  13. string += "";
  14. subString += "";
  15. if (subString.length <= 0) return (string.length + 1);
  16.  
  17. var n = 0,
  18. iPos = [],
  19. pos = 0,
  20. step = allowOverlapping ? 1 : subString.length;
  21.  
  22. while (true) {
  23. pos = string.indexOf(subString, pos);
  24. if (pos >= 0) {
  25. ++n;
  26. pos += step;
  27. iPos.push(pos);
  28. } else break;
  29. }
  30. return iPos;
  31. }
  32.  
  33. function foo(arr) {
  34. var a = [], b = [], prev;
  35.  
  36. arr.sort();
  37. for ( var i = 0; i < arr.length; i++ ) {
  38. if ( arr[i] !== prev ) {
  39. a.push(arr[i]);
  40. b.push(1);
  41. } else {
  42. b[b.length-1]++;
  43. }
  44. prev = arr[i];
  45. }
  46.  
  47. return [a, b];
  48. }
  49.  
  50. var Data = '<span itemprop="creator name" class="author vcard">';
  51. var iDom = document.getElementById("content");
  52. var Nicks = [];
  53.  
  54.  
  55.  
  56.  
  57. iDom = iDom.innerHTML;
  58.  
  59. var Posiciones = occurrences(iDom, Data);
  60.  
  61. for (i = 0; i < Posiciones.length; i++) {
  62. var temp = "";
  63. var pos = 0;
  64. temp = iDom.substr(Posiciones[i], 300);
  65. pos = temp.indexOf('<span itemprop="name">');
  66. temp = temp.substr(pos+22,300);
  67. pos = temp.indexOf('<');
  68. temp = temp.substr(0, pos);
  69. Nicks.push(temp);
  70. }
  71.  
  72. var Col = foo(Nicks);
  73. var Salida = "";
  74. for (i = 0; i< Col[0].length; i++){
  75. Salida += Col[0][i] + " <span style='float:right;'>" + Col[1][i] + " Post.</span><br>";
  76. }
  77. navbar = document.getElementById('branding');
  78. if (navbar) {
  79. newElement = document.createElement('div');
  80. newElement.innerHTML = '<div style="color:white; position:absolute; right: 0; margin-top:-150px;width: 200px;height: 200px; font-family:tahoma,helvetica,arial,sans-serif; padding:5px;">'+ Salida +'</div>';
  81. navbar.parentNode.insertBefore(newElement, navbar.nextSibling);
  82. }