NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name Link Generator // @namespace link // @version 2.1 // @description bypass safelink with link generator // @author Firmansyah // @contactURL https://reek.github.io/firmansyahtimeline/#contact // @downloadURL https://raw.githubusercontent.com/firmansyahtimeline/link_generator/master/link_generator.js // @updateURL https://raw.githubusercontent.com/firmansyahtimeline/link_generator/master/link_generator.js // @match *://*/* // @license MIT // @grant none // ==/UserScript== function urldecode(url) { return decodeURIComponent(url.replace(/\+/g, ' ')); } function urlencode(str) { return encodeURIComponent(str + ''); } function base64decode(str) { var enc = atob(str); return enc; } function base64encode(str) { var enc = btoa(str); return enc; } function find_base64(str) { var re = /aHR0([a-zA-Z0-9\+\=\/]{11,})/; var found = str.match(re); return (found[0]); } /* function hidesticky(){ document.getElementById("sticky").innerHTML = ''; document.getElementById("sticky").style.position=''; document.getElementById("sticky").style.background=''; document.getElementById("sticky").style.display='none'; } */ var isiscripthide = base64decode('CmZ1bmN0aW9uIGhpZGVzdGlja3koKXsKZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0aWNreSIpLmlubmVySFRNTCA9ICcnOwpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RpY2t5Iikuc3R5bGUucG9zaXRpb249Jyc7CmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGlja3kiKS5zdHlsZS5iYWNrZ3JvdW5kPScnOwpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RpY2t5Iikuc3R5bGUuZGlzcGxheT0nbm9uZSc7Cn0K'); var scripthide = document.createElement('script'); scripthide.innerHTML = isiscripthide; document.head.appendChild(scripthide); // append in head function goto(linknya) { var aa = "8@739#+%937+@9#+hksjd"; var bb = window.location.href; if (bb.length > 0) { aa = bb; } if (linknya.indexOf(aa) > -1) { showsticky('<a href=\"' + linknya + '\">' + 'Reff' + '</a>'); } else { showsticky('<a href=\"' + linknya + '\">' + linknya + '</a>'); } } function showsticky(str) { document.getElementById("sticky").innerHTML = str + '<br><br><center><a href="javascript:hidesticky();" onClick="hidesticky();" >[X] CLOSE</a></center>'; document.getElementById("sticky").style.position = 'fixed'; document.getElementById("sticky").style.background = 'black'; document.getElementById("sticky").style.display = 'initial'; document.getElementById("sticky").style.padding = '1em'; /* setTimeout( function() { hidesticky(); }, 5000); */ } function create(htmlStr) { var frag = document.createDocumentFragment(), temp = document.createElement('div'); temp.innerHTML = htmlStr; while (temp.firstChild) { frag.appendChild(temp.firstChild); } return frag; } function replaceAll(str, find, replace) { return str.replace(new RegExp(find, 'g'), replace); } function chkurl(url) { var re = /^(http|https|ftp)/ if (!re.test(url)) { return "false"; } else { return "true"; } } function extractHostname(url) { var hostname; //find & remove protocol (http, ftp, etc.) and get hostname if (url.indexOf("://") > -1) { hostname = url.split('/')[2]; } else { hostname = url.split('/')[0]; } //find & remove port number hostname = hostname.split(':')[0]; //find & remove "?" hostname = hostname.split('?')[0]; return hostname; } function explode(delim, str) { return str.split(delim); } var fragment = create('<div id="sticky" class="sticky"></div>'); // You can use native DOM methods to insert the fragment: document.body.insertBefore(fragment, document.body.childNodes[0]); document.getElementById("sticky").style.display = 'none'; document.getElementById("sticky").style.right = '0%'; document.getElementById("sticky").style.bottom = '0%'; document.getElementById("sticky").style.left = '0%'; document.getElementById("sticky").style.color = 'white'; var sheet = document.createElement('style'); sheet.innerHTML = " div.sticky{ background-color:black; position:fixed; display: inline-block; color: white; text-align: center; padding: 14px; text-decoration: none; overflow: auto;\n white-space: nowrap; z-index: 999; } "; //document.body.appendChild(sheet); // append in body document.head.appendChild(sheet); // append in head var isiscripthide = base64decode('CmZ1bmN0aW9uIGhpZGVzdGlja3koKXsKZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0aWNreSIpLmlubmVySFRNTCA9ICcnOwpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RpY2t5Iikuc3R5bGUucG9zaXRpb249Jyc7CmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGlja3kiKS5zdHlsZS5iYWNrZ3JvdW5kPScnOwpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RpY2t5Iikuc3R5bGUuZGlzcGxheT0nbm9uZSc7Cn0K'); var scripthide = document.createElement('script'); scripthide.innerHTML = isiscripthide; document.head.appendChild(scripthide); // append in head /* var str = 'http://aku.in/hahaahrokudea/=+kajy@$+(sxgd'; var zz= find_base64(str); if(zz.length>0){ document.write(zz); } */ //method function m_findinurl(str) { var count = (str.match(/(http|https)/g) || []).length; if (count < 2) { return ''; } else { var uri = str.split(/http|https*/); var uris = (str.match(/(http|https)/g) || []); try { uri = uris[1] + urldecode(uri[2]); } catch (err) {} goto(uri); return uri; } } function m_base64(str) { var zz = find_base64(str); if (zz.length > 0) { zz = base64decode(zz); var aa2 = chkurl(zz); if (aa2 == "true") { goto(zz); } //true chkurl } //length>0 } function m_param(str) { var as = extractparam(str); var lenas = as.length; var l1 = 0; while (lenas > 0 && l1 <= lenas) { var string = "ok"; try { string = base64decode(as[l1]); } catch (err) { } var aa1 = chkurl(string); if (aa1 == "true") { goto(string); } l1 = l1 + 1; } } function allmethod(str) { var c = str.length; if (c > 10) { m_findinurl(str); m_base64(str); } } //method //standar function extractparam(str) { var res = []; var text = str; var hostnamedmn = extractHostname(str); try { text = replaceAll(text, hostnamedmn + "/", "&aa="); } catch (err) {} try { text = replaceAll(text, "%26", "&"); } catch (err) {} try { text = text.replace("?", '&'); } catch (err) {} try { var tanya = urldecode("3F"); text = replaceAll(text, tanya, "&a"); } catch (err) {} try { text = replaceAll(text, "%3D", "="); } catch (err) {} try { text = replaceAll(text, "%2B", "+"); } catch (err) {} try { text = replaceAll(text, "%3F", "&"); } catch (err) {} try { text = replaceAll(text, "%2F", "/"); } catch (err) {} var subs = explode('&', text); for (var i = 0; i < subs.length; ++i) { try { var vals = subs[i].replace("=", 'kodedireplace'); //replacefirst vals = explode('kodedireplace', vals); var valsa = vals[1]; res.push(valsa); } catch (err) {} } return res; } var x = window.location.href; if (x > 10) { m_param(window.location.href); allmethod(window.location.href); } [].forEach.call(document.querySelectorAll('a'), function (link) { link.addEventListener('mouseover', function (event) { var deas = urldecode(this.href); allmethod(deas); m_param(deas); console.log(this.href); // `this` being the element triggering the event. }); }); //standar