NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name Empornium New Tag // @namespace http://localhost // @include http://*.empornium.me/torrents.php* // @version 1 // @grant none // ==/UserScript== var new_img = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3wEWDSse4wl28AAAAW5JREFUOMvtkrsvQwEUxn/36q1qG4nBK5GIkDCYEIxiwOYPMLoibKZOJpFUymLpwEJDbEYiZhElDOIVaVW0lNaj9F09ltum5g4WJzk5X84r53znKCJCOaJSpvx9A9PC8cQ8MAW4gYyBPYYNAR/AnRFvM+osxRqnV3+NZ2OyeeUSp1d/iqVfZfPKJalcXCLJRwl++uQieiRLJ9Oy41+THf+aOL365UsiKMunM6ICFpOiMdo6CWA3V1TSaGsh851m9Xw2vHWzSHN1B111g7TXdBe0w6xWksh9PpiAvJDn+u2EvoYRW2E3i8mK3jlXn8x+cft+RlftAFnJoikavfXDRFKPAJdFEvcCG/HehqEiOalcgtXz2fDG9cLhbsBDlWbnPfVMMO6jztrE/v0WgPvXFY6e9tBUy68Jxtod/SKSFBE+MlFCXz5UpYK3dBhHz8q24vTqrpIr2ErwOBAAosCB4V8H8oUcR8/KtPL/yuU3+AE5xKIM0Abf2AAAAABJRU5ErkJggg=="; function init() { if (window.location.href.indexOf("?id=") === -1) { if (!localStorage.lastId) { localStorage.lastId = 1; } if (!localStorage.maxId) { localStorage.maxId = 1; } identifyNewTorrents(localStorage.lastId); addClearNewButton(); document.styleSheets[0].insertRule( ".icon_new{background: url(" + new_img + ") no-repeat scroll center}",0); } } function identifyNewTorrents(lastId) { var rows = document.evaluate( "//tr[@class='torrent rowa' or @class='torrent rowb' or @class='torrent redbar']", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null ); var maxId = localStorage.maxId; var id_re = new RegExp('id=(\\d+)'); for (var i = 0; i < rows.snapshotLength; i++) { var row = rows.snapshotItem(i); var torrentTitle = row.querySelector("td:nth-child(2) a"); var link = torrentTitle.getAttribute("href"); var regex = link.match(id_re); if (regex) { var id = parseInt(regex[1], 10); if (id > maxId) { maxId = id; } var overlay = window["overlay" + id]; addNewTorrentSign(row, id, lastId); } } if (maxId > localStorage.maxId) { localStorage.maxId = maxId; } } function addClearNewButton() { var a = document.createElement('a'); a.setAttribute("href", "javascript:void(0)"); a.setAttribute("id", "clearNew"); a.setAttribute("style", "display: block; text-align: center"); var img = document.createElement("img"); img.setAttribute("style", "vertical-align: middle;"); img.setAttribute("title", "Click to mark all torrents as old"); img.src = new_img; a.appendChild(img); a.addEventListener('click', function() { localStorage.lastId = localStorage.maxId; markAsOld(localStorage.maxId); return false; }, true); var cont = document.querySelector("table.torrent_table td.cats_col"); cont.appendChild(a); } function addNewTorrentSign(row, id, lastId) { if (id > lastId) { var img_element = document.createElement('span'); img_element.setAttribute("class", "icon icon_new"); img_element.setAttribute("tid", id); img_element.setAttribute("title", "This torrent is new, click to mark as old from here"); img_element.setAttribute("style", "cursor: pointer;"); img_element.addEventListener("click", function handler(evt) { markAsOld(this.getAttribute('tid')); }, true); row.getElementsByTagName("span")[0].appendChild(img_element); } } function markAsOld(id) { localStorage.lastId = parseInt(id, 10); var imgs = document.evaluate( "//span[@class='icon icon_new' and @tid <= " + id + "]", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null ); for (var i = 0; i < imgs.snapshotLength; i++) { imgs.snapshotItem(i).setAttribute("style", "display:none"); } } setTimeout(function() { init(); }, 250);