NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name Downloader.exe Remover
// @namespace remover.exe.Downloader
// @description Remove Downloader.exe from search results. For more information, read about "Torrent Poisoning"
// @author Schimon Jehudah, Adv.
// @copyright 2022, Schimon Jehudah (http://schimon.i2p)
// @license MIT; https://opensource.org/licenses/MIT
// @grant none
// @homepageURL https://openuserjs.org/scripts/sjehuda/Downloader.exe_Remover
// @supportURL https://openuserjs.org/scripts/sjehuda/Downloader.exe_Remover/issues
// @match *://bt4g.org/search/*
// @match *://*.bt4g.org/search/*
// @version 1.0.0
// @run-at document-end
// @icon data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48dGV4dCB5PSIuOWVtIiBmb250LXNpemU9IjkwIj7wn5eR77iPPC90ZXh0Pjwvc3ZnPgo=
// ==/UserScript==
// NOTE
// We can use
// count = 'count(' + query + ')';
// but I've chose otherwise for my students
//
// TODO
// Use a shorter query for count and
// place the query itself inside if
//
var count, element, query, total;
query = '//div[contains(h5/a/@title, "Downloader.exe") and span/b[@class="cpill blue-pill"]/text() = "782.95KB"]';
count = 'count(//div[contains(h5/a/@title, "Downloader.exe") and span/b[@class="cpill blue-pill"]/text() = "782.95KB"])';
count = document.evaluate(
count, document, null,
XPathResult.STRING_TYPE);
count = count.stringValue;
if (count > 0) {
total = 0;
for (let i = 0; i < count; i++) {
element = document.evaluate(
query, document, null,
XPathResult.FIRST_ORDERED_NODE_TYPE);
//element.singleNodeValue.style.display = 'none';
element = element.singleNodeValue;
element.remove();
total = total + 1;
}
alert(total + ' torrent poisoning results were removed.');
}