Bypass viid.me (present on dpstream.net by example) and sh.st. Thanks to the site checkshorturl.com. By adding good includes, must work with adf.ly, etc.
当前为
// ==UserScript==
// @name bypass.me
// @name:fr bypass.me
// @description Bypass viid.me (present on dpstream.net by example) and sh.st. Thanks to the site checkshorturl.com. By adding good includes, must work with adf.ly, etc.
// @description:fr Permet de contourner les 5 secondes de viid.me et sh.st (liens présents sur dpstream.net par exemple). Doit aussi marcher avec adf.ly ou d'autre, à essayer
// @include http://viid.me/*
// @include http://sh.st/*
// @include http://clkmein.com/*
// @include http://corneey.com/*
// @include http://destyy.com/*
// @include http://gestyy.com/*
// @include https://www.dpstream.net/external_link/*
// @include https://www.dpstream.net/*
// @grant GM_xmlhttpRequest
// @run-at document-start
// @version 3
// @namespace https://greasyfork.org/users/92186
// @run-at document-start
// ==/UserScript==
function cleaning() {
try {
document.getElementsByTagName("table")[0].deleteRow(1);
document.getElementById("loginModelForNotConnected").remove();
}
catch(e) {}
}
if(document.URL.includes("https://www.dpstream.net/external_link/")) {
window.onload = function(){
var myregex = /onclick=\"window.open\(\\'(.*)\\',/g;
var match = myregex.exec(document.body.innerHTML);
if(match.length == 2) {
location.href = match[1];
} else {
var apiUrl = 'http://checkshorturl.com/expand.php?u=';
var shortUrl = document.URL;
window.stop();
var ret = GM_xmlhttpRequest({
method: "GET",
url: apiUrl + shortUrl,
onload: function(res) {
var div = document.createElement('div');
div.innerHTML = res.responseText ;
var result = div.getElementsByTagName('table')[0].rows[0].cells[1];
expandedUrl = result.textContent;
location.href = expandedUrl;
}
});
}
};
}
window.onload = function () {
var target = document.getElementById("episodeItemsContent");
var observer = new MutationObserver(cleaning);
var config = { attributes: true, childList: true, characterData: true };
observer.observe(target, config);
cleaning();
};