diff --git a/.local/share/qutebrowser/greasemonkey/emuparadise.download.user.js b/.local/share/qutebrowser/greasemonkey/emuparadise.download.user.js new file mode 100644 index 0000000..fd9adfd --- /dev/null +++ b/.local/share/qutebrowser/greasemonkey/emuparadise.download.user.js @@ -0,0 +1,71 @@ +// ==UserScript== +// @name EmuParadise Download Workaround +// @version 1.2.1 +// @description Replaces the download button link with a working one +// @author infval (Eptun) +// @match https://www.emuparadise.me/*/*/* +// @grant none +// ==/UserScript== + +// https://www.reddit.com/r/Piracy/comments/968sm6/a_script_for_easy_downloading_of_emuparadise_roms/ +(function() { + 'use strict'; + + // Others: 50.7.189.186 + const ipDownload = "50.7.92.186"; + const urlFirstPart = "http://" + ipDownload + "/happyxhJ1ACmlTrxJQpol71nBc/"; + + var platform = document.URL.split("/")[3]; + + if (platform == "Sega_Dreamcast_ISOs") { + let downs = document.querySelectorAll("p > a[title^=Download]"); + for (let i = 0; i < downs.length; i++) { + let findex = 9; // "Download X" + let lindex = downs[i].title.lastIndexOf(" ISO"); + downs[i].href = urlFirstPart + "/Dreamcast/" + downs[i].title.slice(findex, lindex); + } + } + // match https://www.emuparadise.me/magazine-comic-guide-scans/%NAME%/%ID% + else if (platform == "magazine-comic-guide-scans") { + const webArchiveURL = "https://web.archive.org/web/2016/"; + + let down = document.querySelectorAll("#content > p")[0]; + down.innerHTML = "Getting Download URL..."; + + let req = new XMLHttpRequest(); + req.open('GET', webArchiveURL + document.URL, false); + req.send(null); + if (req.status == 200) { + let lindex = req.responseText.indexOf("Size: "); + let findex = req.responseText.lastIndexOf("http://", lindex); + let urlLastPart = req.responseText.slice(findex, lindex).match(/\d+\.\d+\.\d+\.\d+\/(.*)"/)[1]; + urlLastPart = urlLastPart.replace(/ /g, "%20"); // encodeURI() changes #, e.g. Sonic - The Comic Issue No. 001 Scan + down.innerHTML = "Download"; + } + else { + let info = document.querySelectorAll("#content > div[align=center]")[0]; + let filename = info.children[0].textContent.slice(0, -5); // "X Scan" + let cat = { + "Gaming Comics @ Emuparadise": "may/Comics/", + "Gaming Magazines @ Emuparadise": "may/Mags/" + }[info.children[1].textContent] || ""; + // URLs with # except The Adventures Of GamePro Issue + down.innerHTML = "Error when getting URL: " + webArchiveURL + document.URL + + "
"; + } + } + else { + let id = document.URL.split("/")[5]; + + let downloadLink = document.getElementsByClassName("download-link")[0]; + let div = document.createElement("div"); + div.innerHTML = `Download using the workaround script\ + (Middle-click or Right-click -> New tab/window)`; + downloadLink.insertBefore(div, downloadLink.firstChild); + } + +})();