NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name Yahs GM Linkchecker // @namespace yahs.gmlinkchecker // @description yahs GM Link Checker // @include http://yahavatar.com/* // @include http://*thecavernforum.com/* // @grant GM_addStyle // @grant GM_getValue // @grant GM_xmlhttpRequest // @downloadURL https://openuserjs.org/install/yahavatar/Yahs_GM_Linkchecker.user.js // @updateURL https://openuserjs.org/install/yahavatar/Yahs_GM_Linkchecker.user.js // @version 0.2.5 // ==/UserScript== if (window.top != window.self){ return; } //don't run on frames or iframes console.log("yah's Link Checker - Version 0.2.5"); // 2014.01.11 - 0.1.3 - Zippyfile live_file match string needed changed. // 2017.01.16 - 0.2.0 - Made a bunch of changes. Cleaned up some code. For Cavern per Brian. // 2017.01.17 - 0.2.1 - Change filescdn.com rule per Brian. // 2017.01.17 - 0.2.3 - Change filefactory.com rule per Brian. Showing every link green! // 2016.01.24 - 0.2.4 - mod to facilitate yellow maybe condition for filefactory.com Server Load Too high + addition file hosts added. // 2016.01.25 - 0.2.5 - added hosts 1ficher and share108, revised solidfiles yellow to green, rg yellow to pink, unlimitedzone yellow to pink, bigfile yellow to pink // Hosts // [0] name to categorize links // [1] search string to hit on // [2] file_is_alive search string // [3] file_is_dead search string -- Sometimes it's easier to match on these // [4] file_is_maybe search string -- Represents different statuses [converting, folder, etc] var hosts = new Array(); hosts.push(["rapidgator.net", "https?:\/\/(www\.)*rapidgator\.net", "Downloading:","",""]); hosts.push(["rarefile.net", "https?:\/\/(www\.)*rarefile\.net", "Download File","",""]); hosts.push(["rapidfileshare.net", "https?:\/\/(www\.)*rapidfileshare\.net", "Download File","",""]); hosts.push(["unlimitzone.com", "https?:\/\/(www\.)*unlimitzone\.com", "Filename.","File Not Found",""]); hosts.push(["tusfiles.net", "https?:\/\/(www\.)*tusfiles\.net", "btn_download","",""]); hosts.push(["uploaded.net", "https?:\/\/(www\.)*(uploaded\.net|ul\.to)", "Download file:","Error: 404",""]); hosts.push(["uploaded.to", "https?:\/\/(www\.)*uploaded\.to", "Download file:","",""]); hosts.push(["uploadable.ch", "https?:\/\/(www\.)*uploadable\.ch", "","no longer available",""]); hosts.push(["zippyshare.com", "https?:\/\/(www[\\d]*\.)*zippyshare\.com", "You have requested the file:","does not exist","Try Again"]); hosts.push(["workupload.com", "https?:\/\/(www\.)*(workupload\.com)", "btn", "File Not Found",""]); hosts.push(["nitroflare.com", "https?:\/\/(www\.)*(nitroflare\.com)", "Report this file", "File doesn't exist",""]); hosts.push(["mediafire.com", "https?:\/\/(www\.)*(mediafire\.com)", "", "Invalid or Deleted File",""]); hosts.push(["filescdn.com", "https?:\/\/(filescdn\.com)", "btn_download",""]); hosts.push(["solidfiles.com", "https?:\/\/(www\.)*(solidfiles\.com)", "Download", "The page you were looking for appears to no longer be there",""]); hosts.push(["userscloud.com", "https?:\/\/(userscloud\.com)", "Download at", "",""]); hosts.push(["rg.to", "https?:\/\/(rg\.to)", "Downloading:", "File not found</",""]); hosts.push(["alfafile.net", "https?:\/\/alfafile\.net", "", "this page does not exist",""]); hosts.push(["bigfile.to", "https:\/\/(www\.)*bigfile\.to", "file_name","This file is no longer available.","",]); hosts.push(["mega.co.nz", "https:\/\/(mega\.co\.nz)", "download-button","","",]); hosts.push(["mega.nz", "https:\/\/(mega\.nz)", "download","","",]); hosts.push(["turbobit.net", "https?:\/\/(www\.)*(turbobit\.net)", "Download file", "Searching for the file",""]); hosts.push(["cloudshares.net", "https?:\/\/cloudshares\.net", "", "File Not Found",""]); hosts.push(["rockfile.eu", "https?:\/\/rockfile\.eu", "", "File Not Found",""]); hosts.push(["depositfiles.com", "https?:\/\/depositfiles\.com", "", "This file does not exist",""]); hosts.push(["uploadrocket.net", "https?:\/\/uploadrocket\.net", "", "The file was removed by administrator",""]); hosts.push(["datafile.com", "https?:\/\/(www\.)*(datafile\.com)", "", "error-msg",""]); hosts.push(["unibytes.com", "https?:\/\/(www\.)*(unibytes\.com)", "", "File not found",""]); hosts.push(["hugefiles.net", "https?:\/\/hugefiles\.net", "btn", "",""]); hosts.push(["1fichier.com", "https?:\/\/(www\.)*1fichier\.com", "Access to Download", "File Not Found",""]); hosts.push(["share108.com", "https?:\/\/(www\.)*share108\.com", "File:", "", ""]); //console.log("Hosts added"); //Build a concatenated string of all hosts var allHostsMatch = ""; for (var i = 0; i < hosts.length; i++){ //console.log(i); allHostsMatch = allHostsMatch + hosts[i][1]; if (i < hosts.length - 1){allHostsMatch = allHostsMatch + "|";} } //console.log(allHostsMatch); allHostsMatch = new RegExp(allHostsMatch, "gi"); //Turn the concatenated string into a RegExp //console.log("Here!"); //console.log("AllHostsMatch: " + allHostsMatch); //////////////////////////////////////////////////////////////////////////////////////////////////////// // Read Preferences //////////////////////////////////////////////////////////////////////////////////////////////////////// var pref_link_color_dead = GM_getValue("link_color_dead", "lightPink"); if(pref_link_color_dead == ""){pref_link_color_dead = "lightPink"}; var pref_link_color_live = GM_getValue("link_color_alive", "paleGreen"); if(pref_link_color_live == ""){pref_link_color_live = "paleGreen"}; var pref_link_color_maybe = GM_getValue("link_color_maybe", "yellow"); if(pref_link_color_maybe == ""){pref_link_color_maybe = "yellow"}; var pref_linkify = GM_getValue("linkify", true); //Old Prefs var pref2 = GM_getValue("highlight_full_link", true); var pref5 = GM_getValue("flag_bad_image_hosts", true); var pref6 = GM_getValue("flag_redirectors", true); var pref8 = GM_getValue("flag_mouseover_mode", false); //////////////////////////////////////////////////////////////////////////////////////////////////////// // Inline Images + GM Styles //////////////////////////////////////////////////////////////////////////////////////////////////////// var png_dead = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAYAAABy6+R8AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH2AMJCQkjdGXwDAAAAcpJREFUeNptkj9PFHEQhp/ZBcIhxyKHYgNCYUxogE0OpdDGxsQCY6e5ggS1Mn4Ce621u7MCYqOdX4DkSLTBqwyNiQmJBiJiDjmWP/ub1+IAMXGqmTx5M5nJY5wpwRiQHPfoL2rG8PVksDOBlKRYZWgwxcwkIQlc0o+fDe3sPu6E1dOQIGWg/yUT4zOUBiLtHYAHFBy6YvRrW+Hzl4/e/P2kAJ8iwRhJscrE+AzDwxG3Z2E/oO9bKMvhzj104aLZ1dFr9PZUWzDWASQMDaYqDZjdvAWzd2HkMlpcJKpUsMlJdHiI3i1Ffr4v9d29pEMnt7UyfOkNNjKKTU8Tl8tghq+sEGqvUZwjZA5EAiShPIetLXxhASSIY3An1Gr4xkabq70iar9OkOeoWCSqVMAM8hzMiObnIUnQ0RFyR0DkgNylzhh7cB+bmsLrdQ7n5gj1OlG5TPxoHro7kUsC4mdQUB5u0NdziW/r5q2M/PkLfG2NsLwMkRHevyVkWQib26t+FJYMIIOUvt5XdmXkunXEke/sQchRCNDdRfAQ8vXND97af1qCxqkRLUj9XKFq/cUUMMmRQHKFZquh7OBhCRr/aATQ/I97foxKZ9z7A9QA5voyr3dtAAAAAElFTkSuQmCC'; var png_live = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAYAAABy6+R8AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH2AMJCQY36Sc4vgAAAlRJREFUeNpV0r9PE3EABfD3veu1lJYr15ZCoBHBqJBAMEbjL0hYFAkyOAmJMUYd/Q+cXF1wYPQPILppYkKIRARiMDGoaAKimBaKHMWDXnu93venE0Tf9Ib3tg/BP7m3NGgwxtKcM4vyIKSk4BBqnwux9/LGKjvckcNy9/1Akgk2ZJHMWNyw+qWUMSGZ51R2FzbdX1NSyOnZWznn6HRn8UqSCv6gLdz58GSsL2voURJIirAWhh+U1fLO4tbKztdJIvHsw/1NR7/97pJBOR9tDXc+6rMGsg4vkd3AhkMdVJgLounkdKLHdL1S13ZpdyMzbK5pnNF0I0mNn4r3Ze3AJrZvo0zL8KkPyil6rTOgipFzrRezLXVt4zWKtBbwWjIeTgyEQlHiUhepcBpNkSaYehxX20Yw2HYd3VYP6iNRYhrpAeojGfJqvs7rRIyKGpSUGOm4iYgWwX7wB72ps/hWXMZCbgaNkUYQrseUr3SNB0JQRj0DBnSlYWN/DcfNEzifuYzVvS94vf4cVeoiBB2ScY8IiBBnytk7KM5XG8qj9SRClrbnUKNVZKLNWMjPwKkWkYk146BSUbZrz0PC0ZuHzaBYLokq9S90p3pMJRnJl35gtfgZQnAko0lY4WY1+2lu63s+N0EE+agXXrkydc3czjtF7noHXccSx82mWIY0hBpgRVMIalK9WX67tfJzfZJo5EVuouAdieh4kk3KQA21J1rGmuoy/UToMSG5t+vaC5u/7Smikenc04LzHyMAaH+cNcBVGgyWClSIgHAA+2DYy00Wjuz9Bce5MucW9xnuAAAAAElFTkSuQmCC'; var png_maybe = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAYAAABy6+R8AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAOxJREFUeNqMkk8OwVAQxr+276kdCfuegGOIBTfgBhYsxAlIRMQJxAXEQl2EG5QLdFlSHTO0/raYZPLevPl+ne+lzwBgxEmyHsPcGW9hq5PNS8S9kPem4sKKDyIRuGvCxgU87wY0mgD3jk9wqGLg/nUBKlWg1QZ8HxgNCYc9MJ4YV5jBnOgsLigrlytNSql7LQNN8YkfUSg+9qwPzG9iudegT+h0jNdGlq3pTFOprKjb0x+9TEjuMV/o1N5Xe46Tfi5mNdMn/Bnyr8z4JXxEvUbYbVO5SKAz0+rPKVqg5N0lE8VqkCLOizjJiwADACqhr7BunfI1AAAAAElFTkSuQmCC'; var png_redirector = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAAMCAIAAACx5EmIAAAABGdBTUEAALGPC%2FxhBQAAAuNJREFUSEvVVFtIk2EY%2FldeOCTzQiqzwIWoFEFCqRUJ00Kdu%2BgijA6yqKAbO1xUlumkolBc%2B5da6cwxxSAtcTLxkBSIJ9B1QM3S7EKzYAkeMCoievrfb9%2FcdFsLusmPn5%2F39Dzv87%2Ff938yAMKyW5JoTA2hUIfSUnoMejT0UdDPmoJWi09Aby3yjf6K%2Fy3%2FtAa6GncKgZz%2BYmnai56rzf762Ki%2B9QusBVCd81fsNW%2BH5uJfAQ%2Buh7DOQ%2FQrIyl44YxHCQhM4k7HI5jN6HjrwrRVwyR99zhBnsxhahhtbGdqqzD5AZUV6Bkh1xP4vIWoWlibuQnEyCAo0NzFmaVUlRkjM9xdYBuZw4loBCT6EF3Zhd5ODL6GXMDmk1SkPwRhJRITSd8NNvvsJLLj4qFYS4bUMW8nH4Njr6I3wTKJsmNLgeJhyiYk0FvfiaGHbGMDsENDtBGSvQrxWyloHqDIAlvjOG6mIPyAD9ELJyQuFmNSzQwhT9%2FH7Cxy06iBg%2BtMLRkv73LRBSkQYnhKkcmo570DzzdQUsxEaDIZ6mAEq8m4d4TqHStrO6l3NOJsUsFRxGb5EF33Bg9yqPpWO6voIzs0DCGrEbkFkVGYnaCI1c6yY15Ea8r%2BBKx2O2NSXbIcQfuoPmMDVii5Jmsu%2FwCpEWcDHp%2BFMt%2BH6GEWP7WNYLZvfNKlbLPqtVBfAb5TKruRIgPlXkQfr2AUdkp5AnPZAbNcw8Z4pjUcgUx00X7XpC%2FshhDEJ83ZgAkbmhZdaG63R7%2FzY%2BicrCEnR0l06en0vlTPIuxMp6YiIoSMZz%2Bh3QUhjLfJKOYUlz2A1xmJSkXvzBIqy2NUe9m%2BhwiQhSFtD0UaPi5lS5NDkHtMenoUoohpZ%2FxdD8QijM6T32qCwYBWNm%2FHqi%2BGTo9fwG0Rn4HBdpRbKG4U0T3qKvMEdtURVZ3zusAP3ClBoYlDpJRBxPuv3HVn67bAyFo4l%2FMPcI%2F99%2FayFP0b9B9I5enpru8AAAAASUVORK5CYII%3D'; var png_img_ok = 'data:image/png;base64,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' var png_img_bad = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAF4AAAAOCAIAAAApPjzOAAAABGdBTUEAALGPC/xhBQAABCNJREFUWEftln9M1GUcx7/MbDaEln+0asmyzVuycKNW1vrBghULSPyjyMFa12kc3lEehkyYuXYtfxzxY3CDOrQQ22zgwoZoP0VHoWs2TJuFJWWNYbQif6VJ3avn89z3PL9w4MEf/sWzZ8f7+3k+v573836eEQcY0yMqA4qa6RGVAWOal/EYmKZmXG2EqdndQOFG8Sos5NszfPEeq+umLqi9zdbwM+Tl0fPr1BPGEtnXhdPJuVhcx/fZWU9ZfWg5TI1sphHOqjeZbSfxpmHcOvUiqxdZw88J44cGp54wlsj2NdL8UCyuY3wCz9CsT27p7Zc7D1PT08br2+Bvyd46gC8LY76ZILBGTiPwWSRftRvHci5ewuWkTx9T7w6cLtxuev+Qz1fTI+HyfYGyMvE82kFxHYP7KSyiuVtW7A5erolkVoVWFuOunqhW8CchWs2gdYe7XpPm/wSng+IrckpvRTjLI95dmylyS7e6WTz3SeATBfQHeWE+s9KtqpFzTtIyslKTfwszk/H7mWmQtUkc0gzx2bCBeA06z3K8TkB9A57FAi6AN8NKzaDYt/azdZmApDTyHxGgZmWF/ObpyzvbwJZN0ztS615PlFodw/CD+Jf4KckWoAyXR4iaRBvr1wtYVCor63QhZUlJEKBGi0PAWw08epsAxW/5YyY1fZeoyiVpqZUaOedkKzV3oyqr4FwXlZXkP6hT6xsXOCKeI92Cd2kF723C5zJ3ewLeeNxKzZAsbf+F7W6zP/ojeR4ymFeguxnB58M2Q5YWFqHuxqhaX8LKVIybqK2kxi+rzwVGU6NUo0b+XK7PgP/Ex6flGTr10g6q9PmVB/C9bdrPd4mlSx0pbHZwf8lVqUmBkxJT8Aqlq/DVUbOR030ROkLb6w7yprp9SkdtBPcJ+HkCalaEqTksoOkbaSLjBmzLzNbveYqL8LBB8gr4cXStA/DiAuLm4V1LaQWNjbTtG03N79pgtxGfZWb4KMQWzDDI9Apo8TNHa1bNo0oAnQI6deSeCnJ8V6XmLrPd3FoBmSpRqml5oEyA90nJeBCy402NrNPKHIiZmsBhyZM+iwVKIz0S+/6pMEfFUWrt/5ctBWFyjwhoveJpD12o0DP8vHoylGq0UhKXCBj+QPDn/7DbT9zNJlnKsvZTOCZLn5wX48ctbGq2UvNSCsYcU4FbTlChXqYE8Tj1tcmukciAfveGtPzUbKiV3z3DjGj5qLl4ubZ/Fwk3WxgQe+A4gWfDGzsooErxCikGCTkC7HeYeTLvxJgdpdaHv2m3haab/V0zfehPq8c8GIVz1MuiVA+nvycpLJD2Q2L56xhzw5ZUu5nhRm3xHuBpFXidlRpLkQk/VrnY0Ssewzsl3VexR07e81rWGtPd5P8brl4S1pGBp33y251MxLWsNaav/wG6GRXYoAbWagAAAABJRU5ErkJggg==' GM_addStyle(".link_dead {background:" + pref_link_color_dead + " url(" + png_dead + ") no-repeat scroll 100% 50%;padding-left:2px;padding-right:17px;}"); GM_addStyle(".link_live {background:" + pref_link_color_live + " url(" + png_live + ") no-repeat scroll 100% 50%;padding-left:2px;padding-right:17px;}"); GM_addStyle(".link_maybe {background:" + pref_link_color_maybe + " url(" + png_maybe + ") no-repeat scroll 100% 50%;padding-left:2px;padding-right:17px;}"); //if (pref_linkify) linkify(); linkify(); var URL = window.location.toString(); //Test some match strings //console.log("M1: " + URL.search(/nothing/gi)); //console.log("URL: " + URL + " = " + URL.search(allHostsMatch)); if (URL.search(allHostsMatch)== -1){ //If current page is a filehost page, do not process any links //console.log(" Preparing to process links..."); //Try to use pure javascript to find links var x=document.getElementsByTagName("a"); //console.log("Links found pure javascript: " + x.length); for (var i = 0; i < x.length; i++) { var link = x[i].href; if (link.search(allHostsMatch) > -1){ //console.log("Filehost Link found: " + link); linkcheck_generic(x[i]); } } } function linkcheck_generic(dom_link){ var link = dom_link.href; //console.log(" linkcheck_generic(" + link + ")"); GM_xmlhttpRequest({ method: "get", url: link, headers: {"Content-type": "application/x-www-form-urlencoded"}, onload: function(result) { res = result.responseText; //console.log(res); //console.log("------------------------------------------------------------------------------------------"); //See if the link refers to a supported filehost //console.log("Hosts.length: " + hosts.length); for (var i = 0; i < hosts.length; i++){ //console.log(" " + hosts[i][0]); //console.log(link + " : " + link.search(hostMatchStr)); var hostMatchStr = new RegExp(hosts[i][1], "gi"); if (link.search(hostMatchStr) > -1){ //console.log(" Domain Match: " + hostMatchStr); //dom_link.parent().addClass(" link_maybe"); //Mark link yellow to indicate known domain and being checked dom_link.className = "link_maybe"; //; // = 'link_maybe'; //console.log(" After link_maybe"); var link_is_live = new RegExp(hosts[i][2], "gi"); var link_is_dead = new RegExp(hosts[i][3], "gi"); var link_is_maybe = new RegExp(hosts[i][4], "gi"); //console.log(res); //console.log(" link_is_live: " + link_is_live); //console.log(" link_is_dead: " + link_is_dead); //console.log(" link_is_maybe: " + link_is_maybe); //console.log(" link_is_live? " + res.search(link_is_live)); //console.log(" link_is_dead? " + res.search(link_is_dead)); //if (link_is_dead != '/(?:)/gi' && res.search(link_is_dead) > -1){ if (hosts[i][3] != "" && res.search(link_is_dead) > -1){ //console.log(" link_dead: " + link); //dom_link.parent().removeClass("link_maybe").addClass("link_dead"); dom_link.className = "link_dead"; //} else if (link_is_live != '/""/gi' && link_is_live != "" && res.search(link_is_live) > -1){ } else if (hosts[i][2] != "" && res.search(link_is_live) > -1){ //console.log(" link_live: " + link); //dom_link.parent().removeClass("link_maybe").addClass("link_live"); dom_link.className = "link_live"; //} else { //Unknown link } else if (hosts[i][4] != "" && res.search(link_is_maybe) > -1){ //console.log(" maybe_link: " + link); //dom_link.parent().removeClass("link_maybe").addClass("link_dead"); dom_link.className = "link_maybe"; } } else { //console.log(" totally unknown_link: " + link); //dom_link.parent().removeClass("link_maybe").addClass("link_dead"); //dom_link.className = "link_dead"; } } } }); } function linkify(){ //console.log("linkify()"); try{ var regex = /((?:https?|ftp):\/\/[^\s'"'<>()]*|[-\w.+]+@(?:[-\w]+\.)+[\w]{2,6})/gi; //var regex_exclude_html_trunc = /http:\/\/uploading\.com|http:\/\/letitbit.net|http:\/\/www\.gshare\.com|http:\/\/netload\.in/gi; var regex_ends = /\.rar\.html\b/gi; var mail_addr = /\@/; var altText, txt, muligtLink; var OKTags = ['a', 'head', 'script', 'style', 'title', 'option', 'textarea']; var path = "//text()[not(parent::" + OKTags.join(" or parent::") +")]"; altText = document.evaluate(path, document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); for(var i=0;i<altText.snapshotLength;i++){ txt = altText.snapshotItem(i); muligtLink = txt.nodeValue; if(regex.test(muligtLink)){ var span = document.createElement('span'); var lastLastIndex = 0; regex.lastIndex = 0; //GM_log("muligtLink: " + muligtLink); for(myArray = null; myArray = regex.exec(muligtLink); ){ var link = myArray[0]; //GM_log("link: " + link); if (mail_addr.test(link)){0 //Do Nothing } else { span.appendChild(document.createTextNode(muligtLink.substring(lastLastIndex, myArray.index))); var href = link; //GM_log("href: " + href); var prefix = ''; if(href.length > 7){ prefix = href.substring(0,7); if(prefix.toLowerCase() != 'http://' && prefix.toLowerCase() != 'https:/'){ href = 'http://' + href; } } //Fix links that end in .rar.html //if (href.search(regex_exclude_html_trunc) == -1){ if (href.search(regex_ends) != -1){ href = href.substr(0, href.length - 5); } //} var a = document.createElement('a'); a.setAttribute('href', href); var orig_href = href; a.appendChild(document.createTextNode(href)); span.appendChild(a); lastLastIndex = regex.lastIndex; } } span.appendChild(document.createTextNode(muligtLink.substring(lastLastIndex))); txt.parentNode.replaceChild(span, txt); } } } catch(e){alert(e);} }