您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds torrent links next to every season and episode in calendar, unwatched and season overview sections on episodecalendar.com with various options (RARBG, Torrentz2, ThePirateBay, TorrentProject2, 1337X, Snahp)
// ==UserScript== // @name Torrent links to Episodecalendar // @description Adds torrent links next to every season and episode in calendar, unwatched and season overview sections on episodecalendar.com with various options (RARBG, Torrentz2, ThePirateBay, TorrentProject2, 1337X, Snahp) // @namespace NotNeo // @author NotNeo // @license unlicense // @icon https://i.imgur.com/hf3pTZJ.png // @icon64 https://i.imgur.com/hf3pTZJ.png // @match https://episodecalendar.com/* // @version 4.0.1 // @grant GM_getValue // @grant GM_setValue // ==/UserScript== //URLS var url_TP = "https://torrentproject.cc"; var url_RARBG = "https://rarbg.to"; var url_TPB = "https://thepiratebay.org"; var url_Torz2 = "https://torrentz2.nz"; var url_1337X = "https://1337x.st"; //Load settings var usingRARBG = GM_getValue("usingRARBG", true); var usingTP = GM_getValue("usingTP", false); var usingTPB = GM_getValue("usingTPB", false); var usingTorz2 = GM_getValue("usingTorz2", false); var using1337x = GM_getValue("using1337x", false); var usingSnahp = GM_getValue("usingSnahp", false); var orderBySeeds = GM_getValue("orderBySeeds", true); var SearchRes = GM_getValue("SearchRes", ""); var url_Snahp = GM_getValue("url_Snahp", ""); //asked from the user and stored locally //(if all settings are set to false, usingRARBG is set to true) if(!usingTP && !usingRARBG && !usingTPB && !usingTorz2 && !using1337x && !usingSnahp) { usingRARBG = true; } main(); setInterval(main, 200); function main() { var vURL = window.location.href; //Settings section ------------------ if ( vURL.indexOf("episodecalendar.com/users/edit") >= 0 ) { //if the custom options aren't already there... if(!document.getElementById("newSetDiv")) { let settingsDiv = document.getElementById("settings"); if(!settingsDiv || settingsDiv.length == 0) return let newSetTit = document.createElement("h2"); //Creating Settings title ----- let newSetTitAt = document.createAttribute("class"); //Creating the attribute "class" for title newSetTitAt.value = "big margin_bottom"; //setting the attribute value newSetTit.setAttributeNode(newSetTitAt); //Giving the attribute to the settings title let newSetTitTe = document.createTextNode("Torrent Link Settings"); // Creating a text node for the settings title node newSetTit.appendChild(newSetTitTe); //Inserting title text node into the title node let newSetDiv = document.createElement("div"); //Creating Settings div ----- let newSetDivAt = document.createAttribute("class"); //Creating the attribute "class" for div let newSetDivAt2 = document.createAttribute("id"); newSetDivAt2.value = "newSetDiv"; newSetDivAt.value = "epic-card -no-margin pad margin_bottom_big"; //setting the attribute value newSetDiv.setAttributeNode(newSetDivAt); //Giving the attribute to the settings div newSetDiv.setAttributeNode(newSetDivAt2); settingsDiv.insertBefore(newSetTit, settingsDiv.firstElementChild.nextElementSibling); settingsDiv.insertBefore(newSetDiv, settingsDiv.firstElementChild.nextElementSibling.nextElementSibling); let innerHTMLForNewSet = '<div class="checkbox-wrapper"><input name="RARBGCheck" type="hidden" value="0"><input type="checkbox" value="1" name="RARBGCheck2" id="RARBGCheckbox"> <label for="RARBGCheckbox">Use RARBG</label></div><br><br>' + '<div class="checkbox-wrapper"><input name="TPCheck" type="hidden" value="0"><input type="checkbox" value="1" name="TPCheck2" id="TPCheckbox"> <label for="TPCheckbox">Use TorrentProject2</label></div><br><br>' + '<div class="checkbox-wrapper"><input name="TPBCheck" type="hidden" value="0"><input type="checkbox" value="1" name="TPBCheck2" id="TPBCheckbox"> <label for="TPBCheckbox">Use The Pirate Bay</label></div><br><br>' + '<div class="checkbox-wrapper"><input name="Torz2Check" type="hidden" value="0"><input type="checkbox" value="1" name="Torz2Check2" id="Torz2Checkbox"> <label for="Torz2Checkbox">Use Torrentz2</label></div><br><br>' + '<div class="checkbox-wrapper"><input name="Check1337x" type="hidden" value="0"><input type="checkbox" value="1" name="Check21337x" id="Checkbox1337x"> <label for="Checkbox1337x">Use 1337x</label></div><br><br>' + '<div class="checkbox-wrapper"><input name="CheckSnahp" type="hidden" value="0"><input type="checkbox" value="1" name="Check2Snahp" id="CheckboxSnahp"> <label for="CheckboxSnahp">Use Snahp forums</label></div><br><br>' + '<select style="width: auto;" name="SearchResSel" id="SearchResSelect"><option value="">Any</option><option value="720p">720p</option><option value="1080p">1080p</option><option value="2160p">2160p</option></select><label for="SearchResSelect"> Searched resolution</label><br><br>' + '<div class="checkbox-wrapper"><input name="CheckOrderBySeeds" type="hidden" value="0"><input type="checkbox" value="1" name="Check2OrderBySeeds" id="CheckboxOrderBySeeds"> <label for="CheckboxOrderBySeeds">Order torrents by seeds</label></div>'; document.getElementById("newSetDiv").innerHTML = innerHTMLForNewSet; document.getElementById("RARBGCheckbox").checked = usingRARBG; //setting checkbox values to the saved values or if none are saved, to the default values document.getElementById("TPCheckbox").checked = usingTP; document.getElementById("TPBCheckbox").checked = usingTPB; document.getElementById("Torz2Checkbox").checked = usingTorz2; document.getElementById("Checkbox1337x").checked = using1337x; document.getElementById("CheckboxOrderBySeeds").checked = orderBySeeds; document.getElementById("SearchResSelect").value = SearchRes; document.getElementById("CheckboxSnahp").checked = usingSnahp; document.getElementById("RARBGCheckbox").onchange = UpdateSettings; document.getElementById("TPCheckbox").onchange = UpdateSettings; document.getElementById("TPBCheckbox").onchange = UpdateSettings; document.getElementById("Torz2Checkbox").onchange = UpdateSettings; document.getElementById("Checkbox1337x").onchange = UpdateSettings; document.getElementById("CheckboxOrderBySeeds").onchange = UpdateSettings; document.getElementById("SearchResSelect").onchange = UpdateSettings; document.getElementById("CheckboxSnahp").onchange = UpdateSettings; } } //Calendar section ---------------- else if ( vURL.indexOf("episodecalendar.com/en/calendar") >= 0 ) { let selected = document.querySelectorAll("span.episode:not(.tlte_added):not([hidden])"); //get all untouched episode nodes for(let i = 0; i < selected.length; i++) { //Loop through the nodes and do the following to all targets let showName = selected[i].previousElementSibling.firstChild.textContent; //Getting showname if(!showName || showName.length == 0) return; showName = CleanSomeSymbols(showName); let epNumTemp = selected[i].textContent; //Getting the episode number epNumTemp = epNumTemp.substring(epNumTemp.length - 7, epNumTemp.length -1); epNumTemp = epNumTemp.split("(")[1]; let epNumTemp1 = epNumTemp.split("x")[0]; //changing the episode number format to: s01e01 if (epNumTemp1.length < 2) { epNumTemp1 = "0" + epNumTemp1; } //adding prefix 0 if needed let epNumTemp2 = epNumTemp.split("x")[1]; //changing the episode number format to: s01e01 if (epNumTemp2.length < 2) { epNumTemp2 = "0" + epNumTemp2; } //adding prefix 0 if needed let epNum = "S" + epNumTemp1 + "E" + epNumTemp2; //changing the episode number format to: s01e01 //append torrent button if(usingTP) { selected[i].innerHTML += " <span> <a class='dllink2' href='" + url_TP + "/?t=" + showName + "+" + epNum + "+" + SearchRes + (orderBySeeds ? "&orderby=seeders" : "") + "'> <img alt='TorrentProject DL Link' src='https://i.imgur.com/bOql47X.png'> </a> </span>"; } if(usingRARBG) { selected[i].innerHTML += " <span> <a class='dllink' href='" + url_RARBG + "/torrents.php?search=" + showName + "+" + epNum + "+" + SearchRes + (orderBySeeds ? "&order=seeders&by=DESC" : "") + "'> <img alt='RARBG DL Link' src='" + url_RARBG + "/favicon.ico'> </a> </span>"; } if(usingTPB) { selected[i].innerHTML += " <span> <a class='dllink3' href='" + url_TPB + "/search/" + showName + " " + epNum + " " + SearchRes + "/0/99/0" + "'> <img alt='TPB DL Link' src='" + url_TPB + "/favicon.ico' width='16' height='16'> </a> </span>"; } if(usingTorz2) { selected[i].innerHTML += " <span> <a class='dllink4' href='" + url_Torz2 + "/search?f=" + showName + "+" + epNum + "+" + SearchRes + "'> <img alt='Torrentz2 DL Link' src='" + url_Torz2 + "/torrentz.ico' width='14' height='14'> </a> </span>"; } if(using1337x) { selected[i].innerHTML += " <span> <a class='dllink5' href='" + url_1337X + "/" + (orderBySeeds ? "sort-" : "") + "search/" + showName + "+" + epNum + "+" + SearchRes + (orderBySeeds ? "/seeders/desc" : "") + "/1/'> <img alt='1337x DL Link' src='" + url_1337X + "/favicon.ico' width='14' height='14'> </a> </span>"; } if(usingSnahp) { selected[i].innerHTML += " <span> <a class='dllink6' href='" + url_Snahp + "/search.php?keywords=" + showName + "+" + epNum + "+" + SearchRes + "'&sf=titleonly> <img alt='Snahp DL Link' src='https://i.imgur.com/116lSLX.png' width='14' height='14'> </a> </span>"; } selected[i].classList.add("tlte_added"); } } //Unwatched section -------------- else if ( vURL.indexOf("episodecalendar.com/en/unwatched") >= 0 ) { let showName; let season = document.querySelectorAll("div.options:not(.tlte_added):not([hidden])"); //get all untouched season nodes(the node before the season node) (working with target -> nextNode ) for(let i = 0; i < season.length; i++) { //Loop through the nodes and do the following to all targets console.log("unwatched - newly found season"); let nameAndSeason = season[i].nextElementSibling.firstChild; //getting show name and season if(!nameAndSeason) return nameAndSeason = nameAndSeason.innerHTML; if(!nameAndSeason || nameAndSeason.length == 0) return; showName = CleanSomeSymbols(nameAndSeason.split(" - ")[0]); //splitting off show name let seasonT = nameAndSeason.split(" - ")[1]; //splitting off season let shortformSeason = seasonT.split(" ")[1]; if (shortformSeason.length < 2) { shortformSeason = "S0" + shortformSeason; } else { shortformSeason = "S" + shortformSeason; } //append torrent button for full season if(usingTP) { season[i].nextElementSibling.innerHTML = " <span> <a class='dllink2' href='" + url_TP + "/?t=" + showName + "+" + seasonT + "+" + SearchRes + (orderBySeeds ? "&orderby=seeders" : "") + "'> <img alt='TorrentProject DL Link' src='https://i.imgur.com/bOql47X.png'> </a> </span>" + season[i].nextElementSibling.innerHTML; } if(usingRARBG) { season[i].nextElementSibling.innerHTML = " <span> <a class='dllink' href='" + url_RARBG + "/torrents.php?search=" + showName + "+" + shortformSeason + "+" + SearchRes + (orderBySeeds ? "&order=seeders&by=DESC" : "") + "'> <img alt='RARBG DL Link' src='" + url_RARBG + "/favicon.ico'> </a> </span>" + season[i].nextElementSibling.innerHTML; } if(usingTPB) { season[i].nextElementSibling.innerHTML = " <span> <a class='dllink3' href='" + url_TPB + "/search/" + showName + " " + seasonT + " " + SearchRes + "/0/99/0" + "'> <img alt='TPB DL Link' src='" + url_TPB + "/favicon.ico' width='16' height='16'> </a> </span>" + season[i].nextElementSibling.innerHTML; } if(usingTorz2) { season[i].nextElementSibling.innerHTML = " <span> <a class='dllink4' href='" + url_Torz2 + "/search?f=" + showName + "+" + seasonT + "+" + SearchRes + "'> <img alt='Torrentz2 DL Link' src='" + url_Torz2 + "/torrentz.ico' width='14' height='14'> </a> </span>" + season[i].nextElementSibling.innerHTML; } if(using1337x) { season[i].nextElementSibling.innerHTML = " <span> <a class='dllink5' href='" + url_1337X + "/" + (orderBySeeds ? "sort-" : "") + "search/" + showName + "+" + seasonT + "+" + SearchRes + (orderBySeeds ? "/seeders/desc" : "") + "/1/'> <img alt='1337x DL Link' src='" + url_1337X + "/favicon.ico' width='14' height='14'> </a> </span>" + season[i].nextElementSibling.innerHTML; } if(usingSnahp) { season[i].nextElementSibling.innerHTML = " <span> <a class='dllink6' href='" + url_Snahp + "/search.php?keywords=" + showName + "+" + seasonT + "+" + SearchRes + "&sf=titleonly'> <img alt='Snahp DL Link' src='https://i.imgur.com/116lSLX.png' width='14' height='14'> </a> </span>" + season[i].nextElementSibling.innerHTML; } season[i].classList.add("tlte_added"); } let selected = document.querySelectorAll("div.epic-list-episode:not(.tlte_added):not([hidden])"); //get all untouched episode nodes for(let i = 0; i < selected.length; i++) { //Loop through the nodes and do the following to all targets let epNumTemp = selected[i].textContent; //Getting episode number. For some reason going any deeper nets no results???? if(!epNumTemp || epNumTemp.length == 0) return; let epNumTemp1 = epNumTemp.split("x")[0]; //Cleaning up episode number string let epNumTemp2 = epNumTemp.split("x")[1]; //Cleaning up episode number string epNumTemp1 = epNumTemp1.replace(/[^0-9.]/g, ""); //Cleaning up episode number string if (epNumTemp1.length < 2) { epNumTemp1 = "0" + epNumTemp1; } //adding prefix 0 if needed epNumTemp2 = epNumTemp2.substring(0, 2); //Cleaning up episode number string epNumTemp2 = epNumTemp2.replace(/[^0-9.]/g, ""); //Cleaning up episode number string if (epNumTemp2.length < 2) { epNumTemp2 = "0" + epNumTemp2; } //adding prefix 0 if needed let epNum = "S" + epNumTemp1 + "E" + epNumTemp2; //changing the episode number format to: s01e01 //append torrent button (again, can't traverse any deeper!?) if(usingTP) { selected[i].innerHTML = " <span> <a class='dllink2' href='" + url_TP + "/?t=" + showName + "+" + epNum + "+" + SearchRes + (orderBySeeds ? "&orderby=seeders" : "") + "'> <img alt='TorrentProject DL Link' src='https://i.imgur.com/bOql47X.png'> </a> </span>" + selected[i].innerHTML; } if(usingRARBG) { selected[i].innerHTML = " <span> <a class='dllink' href='" + url_RARBG + "/torrents.php?search=" + showName + "+" + epNum + "+" + SearchRes + (orderBySeeds ? "&order=seeders&by=DESC" : "") + "'> <img alt='RARBG DL Link' src='" + url_RARBG + "/favicon.ico'> </a> </span>" + selected[i].innerHTML; } if(usingTPB) { selected[i].innerHTML = " <span> <a class='dllink3' href='" + url_TPB + "/search/" + showName + " " + epNum + " " + SearchRes + "/0/99/0" + "'> <img alt='TPB DL Link' src='" + url_TPB + "/favicon.ico' width='16' height='16'> </a> </span>" + selected[i].innerHTML; } if(usingTorz2) { selected[i].innerHTML = " <span> <a class='dllink4' href='" + url_Torz2 + "/search?f=" + showName + "+" + epNum + "+" + SearchRes + "'> <img alt='Torrentz2 DL Link' src='" + url_Torz2 + "/torrentz.ico' width='14' height='14'> </a> </span>" + selected[i].innerHTML; } if(using1337x) { selected[i].innerHTML = " <span> <a class='dllink5' href='" + url_1337X + "/" + (orderBySeeds ? "sort-" : "") + "search/" + showName + "+" + epNum + "+" + SearchRes + (orderBySeeds ? "/seeders/desc" : "") + "/1/'> <img alt='1337x DL Link' src='" + url_1337X + "/favicon.ico' width='14' height='14'> </a> </span>" + selected[i].innerHTML; } if(usingSnahp) { selected[i].innerHTML = " <span> <a class='dllink6' href='" + url_Snahp + "/search.php?keywords=" + showName + "+" + epNum + "+" + SearchRes + "'&sf=titleonly> <img alt='Snahp DL Link' src='https://i.imgur.com/116lSLX.png' width='14' height='14'> </a> </span>" + selected[i].innerHTML; } selected[i].classList.add("tlte_added"); } } //Show section ----------------------- else if ( vURL.indexOf("episodecalendar.com/en/show/") >= 0 ) { //page has showname if(document.querySelectorAll(".show_banner > h1").length > 0) { let showName = CleanSomeSymbols(document.querySelectorAll(".show_banner > h1")[0].textContent); //Getting the show name showName = showName.replace("'", "%27"); let season = document.querySelectorAll("span.h2:not(.tlte_added):not([hidden])"); //getting the untouched season nodes for (let i = 0; i < season.length; i++) { //Loop through the nodes and do the following to all targets let seasonT = season[i]; //get the season if(!seasonT) return; seasonT = seasonT.innerHTML; if(seasonT.length == 0) return; let shortformSeason = seasonT.split(" ")[1]; if (shortformSeason.length < 2) { shortformSeason = "S0" + shortformSeason; } else { shortformSeason = "S" + shortformSeason; } //append torrent button for full season if(usingTP) { season[i].insertAdjacentHTML("beforebegin", " <span> <a class='dllink2' href='" + url_TP + "/?t=" + showName + "+" + seasonT + "+" + SearchRes + (orderBySeeds ? "&orderby=seeders" : "") + "'> <img alt='TorrentProject DL Link' src='https://i.imgur.com/bOql47X.png'> </a> </span>"); } if(usingRARBG) { season[i].insertAdjacentHTML("beforebegin", " <span> <a class='dllink' href='" + url_RARBG + "/torrents.php?search=" + showName + "+" + shortformSeason + "+" + SearchRes + (orderBySeeds ? "&order=seeders&by=DESC" : "") + "'> <img alt='RARBG DL Link' src='" + url_RARBG + "/favicon.ico'> </a> </span>"); } if(usingTPB) { season[i].insertAdjacentHTML("beforebegin", " <span> <a class='dllink3' href='" + url_TPB + "/search/" + showName + " " + seasonT + " " + SearchRes + "/0/99/0" + "'> <img alt='TPB DL Link' src='" + url_TPB + "/favicon.ico' width='16' height='16'> </a> </span>"); } if(usingTorz2) { season[i].insertAdjacentHTML("beforebegin", " <span> <a class='dllink4' href='" + url_Torz2 + "/search?f=" + showName + "+" + seasonT + "+" + SearchRes + "'> <img alt='Torrentz2 DL Link' src='" + url_Torz2 + "/torrentz.ico' width='14' height='14'> </a> </span>"); } if(using1337x) { season[i].insertAdjacentHTML("beforebegin", " <span> <a class='dllink5' href='" + url_1337X + "/" + (orderBySeeds ? "sort-" : "") + "search/" + showName + "+" + seasonT + "+" + SearchRes + (orderBySeeds ? "/seeders/desc" : "") + "/1/'> <img alt='1337x DL Link' src='" + url_1337X + "/favicon.ico' width='14' height='14'> </a> </span>"); } if(usingSnahp) { season[i].insertAdjacentHTML("beforebegin", " <span> <a class='dllink6' href='" + url_Snahp + "/search.php?keywords=" + showName + "+" + seasonT + "+" + SearchRes + "&sf=titleonly'> <img alt='Snahp DL Link' src='https://i.imgur.com/116lSLX.png' width='14' height='14'> </a> </span>"); } season[i].classList.add("tlte_added"); } let selected = document.querySelectorAll("div.epic-list-episode:not(.tlte_added):not([hidden])"); //get all untouched episode nodes for(let i = 0; i < selected.length; i++) { //Loop through the nodes and do the following to all targets let epNumTemp = selected[i].textContent; if(epNumTemp.length == 0) return; let epNumTemp1 = epNumTemp.split("x")[0]; //Cleaning up episode number string let epNumTemp2 = epNumTemp.split("x")[1]; //Cleaning up episode number string epNumTemp1 = epNumTemp1.replace(/[^0-9.]/g, ""); //Cleaning up episode number string if (epNumTemp1.length < 2) { epNumTemp1 = "0" + epNumTemp1; } //adding prefix 0 if needed epNumTemp2 = epNumTemp2.substring(0, 2); //Cleaning up episode number string epNumTemp2 = epNumTemp2.replace(/[^0-9.]/g, ""); //Cleaning up episode number string if (epNumTemp2.length < 2) { epNumTemp2 = "0" + epNumTemp2; } //adding prefix 0 if needed let epNum = "S" + epNumTemp1 + "E" + epNumTemp2; //changing the episode number format to: s01e01 //append torrent button (again, can't traverse any deeper!?) if(usingTP) { selected[i].innerHTML = " <span> <a class='dllink2' href='" + url_TP + "/?t=" + showName + "+" + epNum + "+" + SearchRes + (orderBySeeds ? "&orderby=seeders" : "") + "'> <img alt='TorrentProject DL Link' src='https://i.imgur.com/bOql47X.png'> </a> </span>" + selected[i].innerHTML; } if(usingRARBG) { selected[i].innerHTML = " <span> <a class='dllink' href='" + url_RARBG + "/torrents.php?search=" + showName + "+" + epNum + "+" + SearchRes + (orderBySeeds ? "&order=seeders&by=DESC" : "") + "'> <img alt='RARBG DL Link' src='" + url_RARBG + "/favicon.ico'> </a> </span>" + selected[i].innerHTML; } if(usingTPB) { selected[i].innerHTML = " <span> <a class='dllink3' href='" + url_TPB + "/search/" + showName + " " + epNum + " " + SearchRes + "/0/99/0" + "'> <img alt='TPB DL Link' src='" + url_TPB + "/favicon.ico' width='16' height='16'> </a> </span>" + selected[i].innerHTML; } if(usingTorz2) { selected[i].innerHTML = " <span> <a class='dllink4' href='" + url_Torz2 + "/search?f=" + showName + "+" + epNum + "+" + SearchRes + "'> <img alt='Torrentz2 DL Link' src='" + url_Torz2 + "/torrentz.ico' width='14' height='14'> </a> </span>" + selected[i].innerHTML; } if(using1337x) { selected[i].innerHTML = " <span> <a class='dllink5' href='" + url_1337X + "/" + (orderBySeeds ? "sort-" : "") + "search/" + showName + "+" + epNum + "+" + SearchRes + (orderBySeeds ? "/seeders/desc" : "") + "/1/'> <img alt='1337x DL Link' src='" + url_1337X + "/favicon.ico' width='14' height='14'> </a> </span>" + selected[i].innerHTML; } if(usingSnahp) { selected[i].innerHTML = " <span> <a class='dllink6' href='" + url_Snahp + "/search.php?keywords=" + showName + "+" + epNum + "+" + SearchRes + "'&sf=titleonly> <img alt='Snahp DL Link' src='https://i.imgur.com/116lSLX.png' width='14' height='14'> </a> </span>" + selected[i].innerHTML; } selected[i].classList.add("tlte_added"); } } } } function UpdateSettings() { usingRARBG = document.getElementById("RARBGCheckbox").checked; //saving the changes to runtime variable usingTP = document.getElementById("TPCheckbox").checked; usingTPB = document.getElementById("TPBCheckbox").checked; usingTorz2 = document.getElementById("Torz2Checkbox").checked; using1337x = document.getElementById("Checkbox1337x").checked; orderBySeeds = document.getElementById("CheckboxOrderBySeeds").checked; SearchRes = document.getElementById("SearchResSelect").value; usingSnahp = document.getElementById("CheckboxSnahp").checked; if(usingSnahp && !url_Snahp.length) { url_Snahp = prompt("It appears you enabled Snahp links. As per the rules of the forums, the url should not be shared publically, so you will have to povide it yourself. You will only need to give the url once. It is then stored locally.\nGive url in this format: [https://*.*.*] (without brackets)", ""); GM_setValue("url_Snahp", url_Snahp); } GM_setValue("usingRARBG", usingRARBG); //storing the new values to local storage GM_setValue("usingTP", usingTP); GM_setValue("usingTPB", usingTPB); GM_setValue("usingTorz2", usingTorz2); GM_setValue("using1337x", using1337x); GM_setValue("orderBySeeds", orderBySeeds); GM_setValue("SearchRes", SearchRes); GM_setValue("usingSnahp", usingSnahp); } function CleanSomeSymbols(string) { string = string.replace(/&/g, "and"); string = string.replace("'", "%27"); return string; }