// ==UserScript== // @name GGn Trump and Dupe Helper // @namespace none // @description Adds TP button on torrents for quick reporting // @version 4 // @author ZeDoCaixao, ingts // @match https://gazellegames.net/torrents.php?id=* // @downloadURL none // ==/UserScript== const default_comment = 'new version' const comment_presets = [ ["Goodies", "Updated goodies"], ["3 latest", "New version (3 latest builds)"], ["OST caps", "Properly capitalised tracks"], ] function handlePlClick(e) { e.preventDefault() e.currentTarget.classList.toggle("rp_good") e.currentTarget.style.removeProperty('color') document.querySelectorAll('.rp_good').forEach(link => { link.style.color = "red" }) let urls = "" document.querySelectorAll('.rp_good').forEach(link => { urls += " https://gazellegames.net/" + link.getAttribute("href") }) document.querySelector("#rp_helper #sitelink").value = urls } const allPermalinks = document.querySelectorAll('a[title="Permalink"]') document.querySelectorAll('a[title="Report"]').forEach(rp => { const torrent_id = /&id=([0-9]+)/.exec(rp.href)[1] rp.insertAdjacentHTML('afterend', ` | TP`) document.querySelector(`#rp_${torrent_id}`).addEventListener('click', e => { const rp_helper = document.getElementById('rp_helper') if (rp_helper) { rp_helper.remove() allPermalinks.forEach(pl => { pl.removeEventListener('click', handlePlClick) pl.classList.remove('rp_good') pl.style.removeProperty('color') }) } e.currentTarget.closest("tr").insertAdjacentHTML('afterend', //language=html ` ${comment_presets.length > 0 ? '
' : ''}
`) const textarea = document.getElementById('extra') textarea.value = default_comment const presetsContainer = document.getElementById('rp_helper_presets') comment_presets.forEach(preset => { let button = document.createElement('button') button.type = 'button' button.textContent = preset[0] button.onclick = () => textarea.value = preset[1] presetsContainer.append(button) }) allPermalinks.forEach(pl => { pl.addEventListener('click', handlePlClick) }) }) })