// ==UserScript== // @name GGn G/h calculator // @namespace http://tampermonkey.net/ // @version 1.0 // @description adds a gold/h calculator to torrents descriptions // @author birculomon // @match https://gazellegames.net/torrents.php?id=* // @grant none // @downloadURL none // ==/UserScript== (function() { 'use strict'; function updateGold(goldNode, percentage, updateNumber = true) { var updatedValue = (goldNode.originalValue * percentage).toString(); goldNode.innerHTML = updatedValue; if (updateNumber) { document.getElementById("script_gold_perc" + goldNode.originalValue).valueAsNumber = percentage * 100; } } var goldNodes = document.querySelectorAll("#gold_amt"); goldNodes.forEach(function(goldNode) { goldNode.originalValue = parseFloat(goldNode.innerHTML); var parent = goldNode.parentNode; var ref = goldNode.nextElementSibling.nextElementSibling.nextElementSibling.nextElementSibling; var button2 = document.createElement("input"); button2.setAttribute("type", "button"); button2.setAttribute("value", "2%"); var button5 = document.createElement("input"); button5.setAttribute("type", "button"); button5.setAttribute("value", "5%"); var button40 = document.createElement("input"); button40.setAttribute("type", "button"); button40.setAttribute("value", "40%"); var buttonR = document.createElement("input"); buttonR.setAttribute("type", "button"); buttonR.setAttribute("value", "reset"); var numberCustom = document.createElement("input"); numberCustom.setAttribute("type", "number"); numberCustom.setAttribute("value", "100"); numberCustom.setAttribute("id", "script_gold_perc" + goldNode.originalValue); numberCustom.setAttribute("min", "1"); numberCustom.setAttribute("max", "100"); button2.addEventListener("click", function(){updateGold(goldNode, 0.02);}); button5.addEventListener("click", function(){updateGold(goldNode, 0.05);}); button40.addEventListener("click", function(){updateGold(goldNode, 0.40);}); buttonR.addEventListener("click", function(){updateGold(goldNode, 1);}); numberCustom.addEventListener("change", function(){updateGold(goldNode, numberCustom.valueAsNumber / 100, false);}); parent.insertBefore(button2, ref); parent.insertBefore(button5, ref); parent.insertBefore(button40, ref); parent.insertBefore(buttonR, ref); parent.insertBefore(numberCustom, ref); }); } )();