Advertisement
Guest User

Untitled

a guest
Jul 29th, 2014
199
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name        New Torrent flagging only
  3. // @namespace   nowhere.man
  4. // @include     http://torrents.empornium.me/torrents.php*
  5. // @version     1
  6. // @grant       none
  7. // ==/UserScript==
  8.  
  9. var new_img =
  10.     "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAEMSURBVDjL3ZLBSgJRFIYvtO0BfIPeI3qBNj2Cy1rWzlWbkcBNYhC0TletJKOFq1lIILhQJCywaDZOkINiGl/n3DNj6LaF4MDHGebc/5tz544D3H9w2yAI3LkQp7UgREJRSIS+0BJqwr6QTzkWulqdD09juD3Ah5PI7r8TiPvw0YJeDUq7cJ83NDzqwmUOFUyYT/ASfasGm6d4kQo1OB3JszN4fTDujuBrqP2hW4baVxbMBIuZTfAeQucGxm/w+WzB6AleGipo/Am06hTrEwQupLhjwkFdtlOFnzlc72n/cFWgQb3WJ8i22a7A44mtCfQQ7BSyL6617BtWZ+kphMKFlwSusrJmW/7ETQt+AQhq/TxibW0lAAAAAElFTkSuQmCC";
  11.  
  12. function init() {
  13.  
  14.     if (window.location.href.indexOf("?id=") === -1) {
  15.  
  16.         if (!localStorage.lastId) {
  17.             localStorage.lastId = 1;
  18.         }
  19.  
  20.         if (!localStorage.maxId) {
  21.             localStorage.maxId = 1;
  22.         }
  23.  
  24.         identifyNewTorrents(localStorage.lastId);
  25.         addClearNewButton();
  26.  
  27.         document.styleSheets[0].insertRule("div.tags{padding-left: 0px}", 0);
  28.         document.styleSheets[0].insertRule("#torrent_table tr {vertical-align: middle;}", 0);
  29.         document.styleSheets[0].insertRule(
  30.             ".icon_new{background: url(" + new_img + ") no-repeat scroll center}",
  31.             0);
  32.     }
  33.         else {  }
  34. }
  35. function identifyNewTorrents(lastId) {
  36.     var rows = document.evaluate(
  37.         "//tr[@class='torrent rowa' or @class='torrent rowb' or @class='torrent redbar']",
  38.         document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null
  39.     );
  40.     var maxId = localStorage.maxId;
  41.     var id_re = new RegExp('id=(\\d+)');
  42.  
  43.     for (var i = 0; i < rows.snapshotLength; i++) {
  44.         var row = rows.snapshotItem(i);
  45.         var torrentTitle = row.querySelector("td:nth-child(2) a");
  46.         var link = torrentTitle.getAttribute("href");
  47.         var regex = link.match(id_re);
  48.         if (regex) {
  49.             var id = parseInt(regex[1], 10);
  50.             if (id > maxId) {
  51.                 maxId = id;
  52.             }
  53.             var overlay = window["overlay" + id];
  54.             addNewTorrentSign(row, id, lastId);
  55.             moveTableCells(row);
  56.         }
  57.     }
  58.  
  59.     if (maxId > localStorage.maxId) {
  60.         localStorage.maxId = maxId;
  61.     }
  62. }
  63.  
  64. function addClearNewButton() {
  65.     var a = document.createElement('a');
  66.     a.setAttribute("href", "javascript:void(0)");
  67.     a.setAttribute("id", "clearNew");
  68.     a.setAttribute("style", "display: block; text-align: center; font-weight: normal;");
  69.     var img = document.createElement("img");
  70.     img.setAttribute("style", "vertical-align: middle;");
  71.     img.src = new_img;
  72.     var span = document.createElement("span");
  73.     span.innerHTML = " Clear New";
  74.    
  75.     a.appendChild(span);
  76.     a.addEventListener('click', function() {
  77.         localStorage.lastId = localStorage.maxId;
  78.         markAsOld(localStorage.maxId);
  79.         return false;
  80.     }, true);
  81.  
  82.     var cont = document.querySelector("table.torrent_table td.cats_col");
  83.     cont.appendChild(a);
  84. }
  85.  
  86. function moveTableCells(row) {
  87. }
  88.  
  89. function addNewTorrentSign(row, id, lastId) {
  90.     if (id > lastId) {
  91.         var img_element = document.createElement('span');
  92.         img_element.setAttribute("class", "icon icon_new");
  93.         img_element.setAttribute("tid", id);
  94.         img_element.setAttribute("title", "This torrent is new, click to mark as old");
  95.         img_element.setAttribute("style", "cursor: pointer;");
  96.         img_element.addEventListener("click", function handler(evt) {
  97.             markAsOld(this.getAttribute('tid'));
  98.         }, true);
  99.         row.getElementsByTagName("span")[0].appendChild(img_element);
  100.     }
  101. }
  102.  
  103. function markAsOld(id) {
  104.     localStorage.lastId = parseInt(id, 10);
  105.     var imgs = document.evaluate(
  106.         "//span[@class='icon icon_new' and @tid <= " + id + "]",
  107.         document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null
  108.     );
  109.     for (var i = 0; i < imgs.snapshotLength; i++) {
  110.         imgs.snapshotItem(i).setAttribute("style", "display:none");
  111.     }
  112. }
  113.  
  114. setTimeout(function() {
  115.     init();
  116. }, 250);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement