1. // ==UserScript==
  2. // @name Cheggit New Torrent Sign
  3. // @namespace watergirls
  4. // @description adds a NEW sign to new torrents
  5. // @include http://cheggit.net/browsetorrents.php
  6. // @include http://cheggit.net/browsetorrents.php?*
  7. // @include http://cheggit.net/users.php?userid=*
  8. // ==/UserScript==
  9.  
  10. img_new='data:image/png;base64,'+
  11. 'iVBORw0KGgoAAAANSUhEUgAAAB4AAAAPCAIAAAB82OjLAAAABGdBTUEAAK/INwWK6QAAABl0'+
  12. 'RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAD8SURBVHjatFTBDsIgDO2IUe/q'+
  13. 'D7Cjnpy/sF/ha+dJb4bFz1Av9YW6pWMQZ+KajnSlPB5tgWg2KfAx8/9xIQJ9FkNv2I29cJJX'+
  14. '8EeRR2YgL8ahSeGMs8ivMtk0ZeAmUomhV9ZWzBgBug720looDlh1illEHrzfOsdhe2Gw937j'+
  15. 'XAJaJxfLBF3LtSxRD+izbWkYvAt7jFNn9OnEe6trQdfQ8GjWuTJoO1HGV9uCI7Ai1j1fmlYJ'+
  16. '+jQfEfSCPDBjbJQtRi8yC314j9+7c70h/qa7KIO+/sJgmLeoSbTzNO7rKU3NE/p9UEb+8bIk'+
  17. 'w1hl+A9vSG6tMWa+h4/eAgwAVZ+ZGhrkLecAAAAASUVORK5CYII=';
  18.  
  19. if (typeof GM_log == 'undefined') {
  20. unsafeWindow = window;
  21.  
  22. function GM_getValue(name, defaultValue) {
  23. var value = localStorage.getItem(name);
  24. if (value == 'false')
  25. return false;
  26. return value || defaultValue;
  27. }
  28.  
  29.  
  30. function GM_setValue(name, value) {
  31. localStorage.setItem(name, value);
  32. }
  33. }
  34.  
  35. function insertBefore_IMG(element, img_data, style)
  36. {
  37. var img_element = document.createElement('img');
  38. img_element.setAttribute("src", img_data);
  39. img_element.setAttribute("style", style);
  40. element.parentNode.insertBefore(img_element, element);
  41. return img_element;
  42. }
  43.  
  44. function insertAfter_IMG(element, img_data, style)
  45. {
  46. return insertBefore_IMG(element.nextSibling, img_data, style);
  47. }
  48.  
  49. function newTagClosure(someNum)
  50. {
  51. // Local variables that end up within closure
  52. var num = someNum;
  53. return function(evt)
  54. {
  55. //alert("setting last_torrent_id = " + num);
  56. GM_setValue("last_torrent_id", num);
  57. location.reload();
  58. }
  59. }
  60.  
  61. function markNewTorrents()
  62. {
  63. var last_torrent_id = GM_getValue("last_torrent_id", 1);
  64. var tds = document.getElementsByTagName('td');
  65. for (var i=0; i<tds.length; i++)
  66. {
  67. var td = tds[i];
  68. var clazz = td.className;
  69. if (clazz == "tabletext")
  70. {
  71. var align = td.getAttribute("align");
  72. if(align == "left")
  73. {
  74. var linkz = td.getElementsByTagName('a');
  75. var firstlink = linkz[0];
  76. var firstlinkattr = firstlink.attributes;
  77. var firstlinkhref = firstlinkattr[0];
  78. if (firstlinkhref.nodeValue == '') firstlinkhref = firstlinkattr[1];
  79. var linktext = firstlinkhref.nodeValue;
  80. var torrentid = linktext.substr(linktext.lastIndexOf("=")+1, linktext.length)*1;
  81. if(torrentid > last_torrent_id)
  82. {
  83. var img = insertBefore_IMG(firstlink, img_new, "padding-right: 6px;");
  84. img.addEventListener('click', newTagClosure(torrentid), true);
  85. }
  86. }
  87. }
  88. }
  89. }
  90.  
  91. markNewTorrents();