mirror of
https://codeberg.org/Amm0ni4/bypass-all-shortlinks-debloated.git
synced 2025-01-31 15:07:28 +05:00
back to bypass.city for lootlink
https://codeberg.org/Amm0ni4/bypass-all-shortlinks-debloated/issues/135
This commit is contained in:
parent
269ab7c153
commit
d1ded6f7e7
5 changed files with 4 additions and 222 deletions
|
@ -4,7 +4,7 @@
|
||||||
// @run-at document-start
|
// @run-at document-start
|
||||||
// @author Amm0ni4
|
// @author Amm0ni4
|
||||||
// @noframes
|
// @noframes
|
||||||
// @version 92.4.5
|
// @version 92.4.6
|
||||||
// @grant GM_setValue
|
// @grant GM_setValue
|
||||||
// @grant GM_getValue
|
// @grant GM_getValue
|
||||||
// @grant GM_addStyle
|
// @grant GM_addStyle
|
||||||
|
@ -755,7 +755,6 @@
|
||||||
// @include /render-state.to\/download\/\?link=/
|
// @include /render-state.to\/download\/\?link=/
|
||||||
// @include /filecrypt.(cc|co)/
|
// @include /filecrypt.(cc|co)/
|
||||||
// @include /^(https?:\/\/)(?!(bypass.city|adbypass.org))(linkvertise.com|(linkvertise|link-to).net)/
|
// @include /^(https?:\/\/)(?!(bypass.city|adbypass.org))(linkvertise.com|(linkvertise|link-to).net)/
|
||||||
// @include /(loot-link.com|loot-links.com|lootlink.org|lootlinks.co|lootdest.(info|org|com)|links-loot.com|linksloot.net)\/s\?.*$/
|
|
||||||
// @include /(mega-enlace|acortados).com/
|
// @include /(mega-enlace|acortados).com/
|
||||||
// @include /(work.ink|workink.click)\/.*$/
|
// @include /(work.ink|workink.click)\/.*$/
|
||||||
// @resource NOTYF_CSS https://cdn.jsdelivr.net/npm/notyf@3/notyf.min.css
|
// @resource NOTYF_CSS https://cdn.jsdelivr.net/npm/notyf@3/notyf.min.css
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
// @run-at document-start
|
// @run-at document-start
|
||||||
// @author Amm0ni4
|
// @author Amm0ni4
|
||||||
// @noframes
|
// @noframes
|
||||||
// @version 92.4.5
|
// @version 92.4.6
|
||||||
// @grant GM_setValue
|
// @grant GM_setValue
|
||||||
// @grant GM_getValue
|
// @grant GM_getValue
|
||||||
// @grant GM_addStyle
|
// @grant GM_addStyle
|
||||||
|
@ -755,7 +755,6 @@
|
||||||
// @include /render-state.to\/download\/\?link=/
|
// @include /render-state.to\/download\/\?link=/
|
||||||
// @include /filecrypt.(cc|co)/
|
// @include /filecrypt.(cc|co)/
|
||||||
// @include /^(https?:\/\/)(?!(bypass.city|adbypass.org))(linkvertise.com|(linkvertise|link-to).net)/
|
// @include /^(https?:\/\/)(?!(bypass.city|adbypass.org))(linkvertise.com|(linkvertise|link-to).net)/
|
||||||
// @include /(loot-link.com|loot-links.com|lootlink.org|lootlinks.co|lootdest.(info|org|com)|links-loot.com|linksloot.net)\/s\?.*$/
|
|
||||||
// @include /(mega-enlace|acortados).com/
|
// @include /(mega-enlace|acortados).com/
|
||||||
// @include /(work.ink|workink.click)\/.*$/
|
// @include /(work.ink|workink.click)\/.*$/
|
||||||
// @resource NOTYF_CSS https://cdn.jsdelivr.net/npm/notyf@3/notyf.min.css
|
// @resource NOTYF_CSS https://cdn.jsdelivr.net/npm/notyf@3/notyf.min.css
|
||||||
|
@ -2068,7 +2067,7 @@
|
||||||
}) : null;
|
}) : null;
|
||||||
|
|
||||||
// Loot-links (optionally solve through bypass.city, but currently solved locally)
|
// Loot-links (optionally solve through bypass.city, but currently solved locally)
|
||||||
// /^(https?:\/\/)(?!(bypass.city|adbypass.org))(loot-link.com|loot-links.com|lootlink.org|lootlinks.co|lootdest.(info|org|com)|links-loot.com|linksloot.net)\/s\?.*$/.test(url) ? solveThroughBypassCity(url) : null;
|
/^(https?:\/\/)(?!(bypass.city|adbypass.org))(loot-link.com|loot-links.com|lootlink.org|lootlinks.co|lootdest.(info|org|com)|links-loot.com|linksloot.net)\/s\?.*$/.test(url) ? solveThroughBypassCity(url) : null;
|
||||||
|
|
||||||
// Epicload (seen used in t.me/joinchat/3cfq_APl8Hs4N2Ux)
|
// Epicload (seen used in t.me/joinchat/3cfq_APl8Hs4N2Ux)
|
||||||
/epicload.com\/files/.test(url) ? afterDOMLoaded(function() {redirectIfExists('.btn-primary')}) : null;
|
/epicload.com\/files/.test(url) ? afterDOMLoaded(function() {redirectIfExists('.btn-primary')}) : null;
|
||||||
|
@ -2712,111 +2711,6 @@
|
||||||
// ----- ------ ----------
|
// ----- ------ ----------
|
||||||
|
|
||||||
|
|
||||||
// ----- Bypass look-link ( based on https://greasyfork.org/scripts/483207, https://codeberg.org/Amm0ni4/bypass-all-shortlinks-debloated/issues/3) -----
|
|
||||||
(function() {
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
if (/(loot-link.com|loot-links.com|lootlink.org|lootlinks.co|lootdest.(info|org|com)|links-loot.com|linksloot.net)\/s\?.*$/.test(window.location.href)) {
|
|
||||||
//alert('Bypass for loot-link starting.\nKeep in mind: \n- You probably need to disable your adblocker.\n- It takes about 5-10s to work.')
|
|
||||||
//const window = unsafeWindow;
|
|
||||||
|
|
||||||
// Overlay text "Bypassing..."
|
|
||||||
setInterval(() => {if (!document.getElementById('bypassOverlay')) {
|
|
||||||
const overlay = document.createElement('div');
|
|
||||||
overlay.id = 'bypassOverlay';
|
|
||||||
overlay.style.cssText = 'position:fixed;top:0;left:0;background:rgba(0,0,0,0.5);padding:20px;z-index:9999;';
|
|
||||||
overlay.innerHTML = '<h1 style="font-size:2em;color:white;margin:0;">Bypassing with userscript...(it takes 5-10s)</h1>';
|
|
||||||
document.body.appendChild(overlay);
|
|
||||||
}}, 1000);
|
|
||||||
|
|
||||||
// Do the bypass
|
|
||||||
lootlinkBypass();
|
|
||||||
|
|
||||||
function lootlinkBypass(){
|
|
||||||
let initData;
|
|
||||||
let syncer;
|
|
||||||
let sessionData;
|
|
||||||
|
|
||||||
let origFetch = fetch;
|
|
||||||
unsafeWindow.fetch = function (url, ...options) {
|
|
||||||
return new Promise(async (resolve, reject) => {
|
|
||||||
try {
|
|
||||||
let res = await origFetch(url, ...options);
|
|
||||||
try {
|
|
||||||
if (url.includes(p.CDN_DOMAIN)) {
|
|
||||||
initData = res.clone();
|
|
||||||
initData = await initData.text();
|
|
||||||
initData = '[' + initData.slice(1, -2) + ']';
|
|
||||||
initData = JSON.parse(initData);
|
|
||||||
syncer = initData[10];
|
|
||||||
}
|
|
||||||
else if (url.includes(syncer) && !sessionData) {
|
|
||||||
sessionData = res.clone();
|
|
||||||
sessionData = await sessionData.json();
|
|
||||||
bypass();
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
console.error(e);
|
|
||||||
let reportError = confirm(`${e.message}\n\nwould you like to report this error?`);
|
|
||||||
if (reportError) {
|
|
||||||
navigator.clipboard.writeText(e.message);
|
|
||||||
window.location.replace('https://discord.gg/keybypass');
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
window.location.reload();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
resolve(res);
|
|
||||||
} catch (e) {
|
|
||||||
reject(e);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
async function bypass() {
|
|
||||||
let urid = sessionData[0].urid;
|
|
||||||
|
|
||||||
let server = initData[9];
|
|
||||||
server = (Number(urid.toString().substr(-5)) % 3) + '.' + server;
|
|
||||||
|
|
||||||
let websocket = new WebSocket(`wss://${server}/c?uid=${urid}&cat=54&key=${p.KEY}`);
|
|
||||||
fetch(sessionData[0].action_pixel_url)
|
|
||||||
websocket.onopen = async function (event) {
|
|
||||||
await fetch(`https://${server}/st?uid=${urid}&cat=54`, { method: 'POST', })
|
|
||||||
await fetch(`https://${syncer}/td?ac=1&urid=${urid}&&cat=54&tid=${p.TID}`)
|
|
||||||
};
|
|
||||||
websocket.onmessage = function (event) {
|
|
||||||
if (event.data.startsWith('r:')) {
|
|
||||||
let data = event.data.split(':')[1];
|
|
||||||
data = decryptData(data);
|
|
||||||
window.location.assign(data);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
function decryptData(encodedData, keyLength = 5) {
|
|
||||||
let decryptedData = '',
|
|
||||||
base64Decoded = atob(encodedData),
|
|
||||||
key = base64Decoded.substring(0, keyLength),
|
|
||||||
encryptedContent = base64Decoded.substring(keyLength);
|
|
||||||
|
|
||||||
for (let i = 0; i < encryptedContent.length; i++) {
|
|
||||||
let charCodeEncrypted = encryptedContent.charCodeAt(i),
|
|
||||||
charCodeKey = key.charCodeAt(i % key.length),
|
|
||||||
decryptedCharCode = charCodeEncrypted ^ charCodeKey;
|
|
||||||
|
|
||||||
decryptedData += String.fromCharCode(decryptedCharCode);
|
|
||||||
}
|
|
||||||
|
|
||||||
return decryptedData;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
})();
|
|
||||||
// ----- ----- -----
|
|
||||||
|
|
||||||
// ----- Bypass mega-enlace ( Taken from AdGuard https://github.com/AdguardTeam/AdguardFilters/blob/b1622e8b387148509ca355e8070ffa5cdcf87525/SpanishFilter/sections/general_extensions.txt#L108 / https://github.com/AdguardTeam/AdguardFilters/issues/174863#issuecomment-1996735239) -----
|
// ----- Bypass mega-enlace ( Taken from AdGuard https://github.com/AdguardTeam/AdguardFilters/blob/b1622e8b387148509ca355e8070ffa5cdcf87525/SpanishFilter/sections/general_extensions.txt#L108 / https://github.com/AdguardTeam/AdguardFilters/issues/174863#issuecomment-1996735239) -----
|
||||||
// used in: pelisenhd.org latinomegahd.net gatonplayseries.com peliculasgd.net tododvdfull.com cinemaniahdd.net programasvirtualespc.net compucalitv.pro
|
// used in: pelisenhd.org latinomegahd.net gatonplayseries.com peliculasgd.net tododvdfull.com cinemaniahdd.net programasvirtualespc.net compucalitv.pro
|
||||||
(function() {
|
(function() {
|
||||||
|
|
|
@ -456,7 +456,7 @@
|
||||||
}) : null;
|
}) : null;
|
||||||
|
|
||||||
// Loot-links (optionally solve through bypass.city, but currently solved locally)
|
// Loot-links (optionally solve through bypass.city, but currently solved locally)
|
||||||
// /^(https?:\/\/)(?!(bypass.city|adbypass.org))(loot-link.com|loot-links.com|lootlink.org|lootlinks.co|lootdest.(info|org|com)|links-loot.com|linksloot.net)\/s\?.*$/.test(url) ? solveThroughBypassCity(url) : null;
|
/^(https?:\/\/)(?!(bypass.city|adbypass.org))(loot-link.com|loot-links.com|lootlink.org|lootlinks.co|lootdest.(info|org|com)|links-loot.com|linksloot.net)\/s\?.*$/.test(url) ? solveThroughBypassCity(url) : null;
|
||||||
|
|
||||||
// Epicload (seen used in t.me/joinchat/3cfq_APl8Hs4N2Ux)
|
// Epicload (seen used in t.me/joinchat/3cfq_APl8Hs4N2Ux)
|
||||||
/epicload.com\/files/.test(url) ? afterDOMLoaded(function() {redirectIfExists('.btn-primary')}) : null;
|
/epicload.com\/files/.test(url) ? afterDOMLoaded(function() {redirectIfExists('.btn-primary')}) : null;
|
||||||
|
|
|
@ -1,110 +0,0 @@
|
||||||
// ==UserScript==
|
|
||||||
// @name loot-link.com bypasser by antiworkink
|
|
||||||
// @include /(loot-link.com|loot-links.com|lootlink.org|lootlinks.co|lootdest.(info|org|com)|links-loot.com|linksloot.net)\/s\?.*$/
|
|
||||||
// @run-at document-start
|
|
||||||
// ==/UserScript==
|
|
||||||
|
|
||||||
// ----- Bypass look-link ( based on https://greasyfork.org/scripts/483207, https://codeberg.org/Amm0ni4/bypass-all-shortlinks-debloated/issues/3) -----
|
|
||||||
(function() {
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
if (/(loot-link.com|loot-links.com|lootlink.org|lootlinks.co|lootdest.(info|org|com)|links-loot.com|linksloot.net)\/s\?.*$/.test(window.location.href)) {
|
|
||||||
//alert('Bypass for loot-link starting.\nKeep in mind: \n- You probably need to disable your adblocker.\n- It takes about 5-10s to work.')
|
|
||||||
//const window = unsafeWindow;
|
|
||||||
|
|
||||||
// Overlay text "Bypassing..."
|
|
||||||
setInterval(() => {if (!document.getElementById('bypassOverlay')) {
|
|
||||||
const overlay = document.createElement('div');
|
|
||||||
overlay.id = 'bypassOverlay';
|
|
||||||
overlay.style.cssText = 'position:fixed;top:0;left:0;background:rgba(0,0,0,0.5);padding:20px;z-index:9999;';
|
|
||||||
overlay.innerHTML = '<h1 style="font-size:2em;color:white;margin:0;">Bypassing with userscript...(it takes 5-10s)</h1>';
|
|
||||||
document.body.appendChild(overlay);
|
|
||||||
}}, 1000);
|
|
||||||
|
|
||||||
// Do the bypass
|
|
||||||
lootlinkBypass();
|
|
||||||
|
|
||||||
function lootlinkBypass(){
|
|
||||||
let initData;
|
|
||||||
let syncer;
|
|
||||||
let sessionData;
|
|
||||||
|
|
||||||
let origFetch = fetch;
|
|
||||||
unsafeWindow.fetch = function (url, ...options) {
|
|
||||||
return new Promise(async (resolve, reject) => {
|
|
||||||
try {
|
|
||||||
let res = await origFetch(url, ...options);
|
|
||||||
try {
|
|
||||||
if (url.includes(p.CDN_DOMAIN)) {
|
|
||||||
initData = res.clone();
|
|
||||||
initData = await initData.text();
|
|
||||||
initData = '[' + initData.slice(1, -2) + ']';
|
|
||||||
initData = JSON.parse(initData);
|
|
||||||
syncer = initData[10];
|
|
||||||
}
|
|
||||||
else if (url.includes(syncer) && !sessionData) {
|
|
||||||
sessionData = res.clone();
|
|
||||||
sessionData = await sessionData.json();
|
|
||||||
bypass();
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
console.error(e);
|
|
||||||
let reportError = confirm(`${e.message}\n\nwould you like to report this error?`);
|
|
||||||
if (reportError) {
|
|
||||||
navigator.clipboard.writeText(e.message);
|
|
||||||
window.location.replace('https://discord.gg/keybypass');
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
window.location.reload();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
resolve(res);
|
|
||||||
} catch (e) {
|
|
||||||
reject(e);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
async function bypass() {
|
|
||||||
let urid = sessionData[0].urid;
|
|
||||||
|
|
||||||
let server = initData[9];
|
|
||||||
server = (Number(urid.toString().substr(-5)) % 3) + '.' + server;
|
|
||||||
|
|
||||||
let websocket = new WebSocket(`wss://${server}/c?uid=${urid}&cat=54&key=${p.KEY}`);
|
|
||||||
fetch(sessionData[0].action_pixel_url)
|
|
||||||
websocket.onopen = async function (event) {
|
|
||||||
await fetch(`https://${server}/st?uid=${urid}&cat=54`, { method: 'POST', })
|
|
||||||
await fetch(`https://${syncer}/td?ac=1&urid=${urid}&&cat=54&tid=${p.TID}`)
|
|
||||||
};
|
|
||||||
websocket.onmessage = function (event) {
|
|
||||||
if (event.data.startsWith('r:')) {
|
|
||||||
let data = event.data.split(':')[1];
|
|
||||||
data = decryptData(data);
|
|
||||||
window.location.assign(data);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
function decryptData(encodedData, keyLength = 5) {
|
|
||||||
let decryptedData = '',
|
|
||||||
base64Decoded = atob(encodedData),
|
|
||||||
key = base64Decoded.substring(0, keyLength),
|
|
||||||
encryptedContent = base64Decoded.substring(keyLength);
|
|
||||||
|
|
||||||
for (let i = 0; i < encryptedContent.length; i++) {
|
|
||||||
let charCodeEncrypted = encryptedContent.charCodeAt(i),
|
|
||||||
charCodeKey = key.charCodeAt(i % key.length),
|
|
||||||
decryptedCharCode = charCodeEncrypted ^ charCodeKey;
|
|
||||||
|
|
||||||
decryptedData += String.fromCharCode(decryptedCharCode);
|
|
||||||
}
|
|
||||||
|
|
||||||
return decryptedData;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
})();
|
|
||||||
// ----- ----- -----
|
|
|
@ -735,6 +735,5 @@ https://paster.so/*
|
||||||
/render-state.to\/download\/\?link=/
|
/render-state.to\/download\/\?link=/
|
||||||
/filecrypt.(cc|co)/
|
/filecrypt.(cc|co)/
|
||||||
/^(https?:\/\/)(?!(bypass.city|adbypass.org))(linkvertise.com|(linkvertise|link-to).net)/
|
/^(https?:\/\/)(?!(bypass.city|adbypass.org))(linkvertise.com|(linkvertise|link-to).net)/
|
||||||
/(loot-link.com|loot-links.com|lootlink.org|lootlinks.co|lootdest.(info|org|com)|links-loot.com|linksloot.net)\/s\?.*$/
|
|
||||||
/(mega-enlace|acortados).com/
|
/(mega-enlace|acortados).com/
|
||||||
/(work.ink|workink.click)\/.*$/
|
/(work.ink|workink.click)\/.*$/
|
||||||
|
|
Loading…
Reference in a new issue