// ==UserScript== // @name [Working] linkvertise and krnl bypasser // @namespace bypass-city // @homepageURL https://bypass.city // @supportURL https://discord.gg/bypass-city // @description just waits 15 seconds for krnl and works fine with the other stuff 2 (it waits no time for other stuff) :) // @match *://*.linkvertise.com/* // @match *://*.linkvertise.net/* // @match *://*.link-to.net/* // @match https://bypass.city/* // @match https://adbypass.org/* // @match http://localhost:3000/* // @license CC BY-NC 4.0 (https://creativecommons.org/licenses/by-nc/4.0/). // @exclude *://publisher.linkvertise.com/* // @exclude *://linkvertise.com/search* // @exclude *://linkvertise.com/login* // @exclude *://linkvertise.com/profile* // @exclude *://blog.linkvertise.com // @exclude *://blog.linkvertise.com/* // @exclude *://linkvertise.com/assets/vendor/* // @exclude *://publisher.linkvertise.com/* // @exclude *://link-mutation.linkvertise.com/* // @exclude *://linkvertise.com/assets/external/thinksuggest // @downloadURL https://api2.adbypass.org/userscript/download/bypass.user.js // @updateURL https://api2.adbypass.org/userscript/download/bypass.meta.js // @grant GM_getValue // @grant GM.getValue // @grant GM_setValue // @grant GM.setValue // @grant GM_deleteValue // @grant GM.deleteValue // @grant GM_addStyle // @grant GM.addStyle // @grant GM_xmlhttpRequest // @grant GM.xmlHttpRequest // @grant GM.info // @grant GM_info // @grant GM_getResourceURL // @grant GM.getResourceURL // @version 12.9.2 // @releaseDate 2024-03-04T14:24:26.592Z // @author bypass.city team // @connect bypass.city // @connect adbypass.org // @icon https://adbypass.org/favicon.ico // ==/UserScript== /* release: 12.9.2 (9d591eb), 3/4/2024, 2:24:26 PM Discord: https://discord.gg/bypass-city additional copyright/license info: Linkvertise Bypass by "bypass.city team" is licensed under CC BY-NC 4.0 (https://creativecommons.org/licenses/by-nc/4.0/). Linkvertise Bypass © 2024 by bypass.city team. Please Leave this section here if you plan on re-posting this script. If you plan on re-posting this script to GreasyFork then go to the admin tab and under source syncing put this URL to always have the latest version: https://api2.adbypass.org/userscript/download/bypass.user.js */ (() => { // src/polyfills.ts var UserScript = { getValue: (key, defaultValue) => { return typeof GM_getValue == "undefined" ? GM.getValue(key, defaultValue) : new Promise((resolve) => resolve(GM_getValue(key, defaultValue))); }, setValue: (key, value) => { return typeof GM_setValue === "undefined" ? GM.setValue(key, value) : new Promise((resolve) => resolve(GM_setValue(key, value))); }, deleteValue: (key) => { return typeof GM_deleteValue === "undefined" ? GM.deleteValue(key) : new Promise((resolve) => resolve(GM_deleteValue(key))); }, addStyle: (css) => { return typeof GM_addStyle === "undefined" ? GM.addStyle(css) : new Promise((resolve) => resolve(GM_addStyle(css))); }, xmlHttpRequest: (details) => { return typeof GM_xmlhttpRequest === "undefined" ? GM.xmlHttpRequest(details) : GM_xmlhttpRequest(details); }, getResourceURL: (name, fallbackUrl) => { return typeof GM_getResourceURL !== "undefined" ? new Promise((resolve) => resolve(GM_getResourceURL(name))) : typeof GM.getResourceUrl !== "undefined" ? GM.getResourceUrl(name) : new Promise((resolve) => resolve(fallbackUrl)); }, info: typeof GM_info === "undefined" ? GM.info : GM_info }; // src/config.ts var config = { version: UserScript.info.script.version, buildTime: "3/4/2024, 2:24:26 PM", branch: "release", release: "9d591eb", installed: true, releaseTag: "12.9.2 (9d591eb)", downloadURL: GM_info.script.downloadURL }; // src/gmWrappedStorage.ts var WrappedGet = async (key) => { const value = await UserScript.getValue(key); return value ? JSON.parse(value) : void 0; }; var WrappedSet = async (key, value) => { await UserScript.setValue(key, JSON.stringify(value)); }; // src/utils.ts var sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms)); // src/bypass-city.ts var bypassCityListener = async () => { if (window.location.hostname !== "bypass.city" && window.location.hostname !== "localhost" && window.location.hostname !== "adbypass.org") { return; } injectScriptInfo(); sendUserscriptInfoEvent(); window.addEventListener("bypassComplete", async (event) => { const data = event.detail; console.log("bypassMessage", data); await UserScript.deleteValue("bypass.data"); await sleep(1); WrappedSet("bypass.data", data); window.open("https://linkvertise.com/", "_self", "noopener,noreferrer"); }); }; var injectScriptInfo = () => { const injectJs = `window.scriptInfo = JSON.parse('${JSON.stringify(config)}')`; const script = document.createElement("script"); script.textContent = injectJs; document.body.appendChild(script); }; var sendUserscriptInfoEvent = () => { const event = new CustomEvent("userScriptInfo", { detail: config }); window.dispatchEvent(event); }; // src/notify.scss var notify_default = `.notification-tray { position: fixed; top: 10px; right: 10px; z-index: 4000000; } .notification { position: block; margin: 10px; padding: 10px; padding-right: 20px; background-color: #25262b; color: white; transition: opacity 0.6s; /* 600ms to fade out */ width: 300px; border-radius: 10px; /* Rounded border */ border: 2px solid #3b5bdb; animation: glow 1s ease-in-out infinite alternate; } .notification .grid-container { display: grid; grid-template-columns: auto auto; gap: 10px; } .notification .links { display: flex; justify-content: right; align-items: center; } .notification .links span { padding-bottom: 4px; opacity: 0.7; } .notification .links a, .notification .links span { display: block; color: white; font-size: 0.8rem; padding: 5px; margin-bottom: 5px; } .grid-item img { margin-top: 15px; margin-right: 5px; width: 32px; } .grid-item h3 { padding-top: 10px; padding-bottom: 3px; font-size: 1.5rem; color: white; } .grid-item p { font-style: italic; font-size: 1rem; color: white; } .grid-item p a { opacity: 1; font-weight: 600; text-decoration: underline !important; margin-bottom: 8px; display: inline-block; } .grid-item h3, .grid-item p { margin: 0; } @keyframes glow { from { box-shadow: 0 0 10px #3b5bdb; } to { box-shadow: 0 0 20px #3b5bdb; } }`; // src/notify-element.html var notify_element_default = '
\n
\n
\n \n
\n
\n

\n

\n \n Get Support on our Discord\n

\n
\n
\n \n \n
\n '; // src/logo.svg var logo_default = 'data:image/svg+xml,%0A%0A%0A%0A%0A%0A%0A%0A%0A%0A%0A'; // src/notify.ts window.scriptStatus = { notifyCount: 0 }; var BypassElement = class extends HTMLElement { static get observedAttributes() { return ["text", "title", "is-help"]; } constructor() { super(); const shadow = this.attachShadow({ mode: "open" }); const div = document.createElement("div"); div.innerHTML = notify_element_default; const style = document.createElement("style"); style.textContent = notify_default; shadow.appendChild(style); shadow.appendChild(div); shadow.getElementById("bypass-notification").style.opacity = "0"; shadow.getElementById("version").innerText = config.releaseTag; const logoImg = shadow.querySelector("img#bypass-logo"); logoImg.onload = () => { shadow.getElementById("bypass-notification").style.opacity = "1"; }; logoImg.src = logo_default; } connectedCallback() { this.updateContent(); } attributeChangedCallback(name, oldValue, newValue) { this.updateContent(); } updateContent() { const text = this.getAttribute("text") || ""; const title = this.getAttribute("title") || ""; const isHelp = this.hasAttribute("is-help"); const hideLinks = this.hasAttribute("hide-links"); if (isHelp || hideLinks) { this.shadowRoot.getElementById("links").remove(); } this.shadowRoot.getElementById("help").style.display = isHelp ? "block" : "none"; this.shadowRoot.querySelector("#title").textContent = title; this.shadowRoot.querySelector("#text").textContent = text; } }; customElements.define("bypass-notification", BypassElement); var setupNotifications = () => { const style = document.createElement("style"); style.textContent = notify_default; document.head.appendChild(style); const tray = document.createElement("div"); tray.id = "bypass-tray"; tray.classList.add("notification-tray"); document.body.appendChild(tray); }; var notify = ({ text, title, isHelp, hideLinks }) => { if (!document.getElementById("bypass-tray")) { setupNotifications(); } const titleContent = title || "Bypass in progress..."; const textContent = text || "Please wait while we redirect you"; const notificationElement = document.createElement("bypass-notification"); notificationElement.setAttribute("title", titleContent); notificationElement.setAttribute("text", textContent); if (hideLinks) { notificationElement.setAttribute("hide-links", "true"); } if (isHelp) { notificationElement.setAttribute("is-help", "true"); } document.getElementById("bypass-tray").appendChild(notificationElement); }; // src/fetch.ts var jsonFetch = async (url, options) => { return new Promise((resolve, reject) => { UserScript.xmlHttpRequest({ method: options.method, data: options.data ? JSON.stringify(options.data) : void 0, headers: options.headers, url, onload: (response) => { if (response.responseText && typeof response.responseText === "string") { try { const data = JSON.parse(response.responseText); resolve(data); } catch (e) { reject(); } } else { reject(); } }, onerror: reject, ontimeout: reject, onabort: reject, timeout: 5e3 }); }); }; // src/ping.ts var ping = async () => { try { const data = await jsonFetch( `${"https://bypass.city"}/.well-known/ping.json`, { method: "GET", headers: { "Content-Type": "application/json" } } ); return data.ping; } catch (e) { return false; } }; // src/linkvertise.ts var linkvertiseListener = async () => { if (!matchLinkvertise(window.location.href)) { return; } const bypassData = await WrappedGet("bypass.data"); if (bypassData) { notify({}); await sleep(6e3); const targetUrl = bypassData.bypassData; await UserScript.deleteValue("bypass.data"); await sleep(1); window.open(targetUrl, "_self"); } else if (!/(https?:\/\/linkvertise\.com\/?$)/g.test(window.location.href)) { let redirectBase = "https://bypass.city"; const isPing = await ping(); if (!isPing) { redirectBase = "https://adbypass.org"; } notify({}); await UserScript.deleteValue("bypass.data"); const bypassCityUrl = new URL(`${redirectBase}/bypass`); bypassCityUrl.searchParams.set("bypass", window.location.href); bypassCityUrl.searchParams.set("userscript", "true"); bypassCityUrl.searchParams.set("userscript-version", config.version); window.open(bypassCityUrl.href, "_self"); } }; var matchLinkvertise = (url) => { const regex = /^https?:\/\/(linkvertise\.(com|download)|(link-(center|target|hub|to)|direct-link|file-link)\.net)/i; return regex.test(url) && !url.startsWith("https://linkvertise.com/profile") && !url.startsWith("https://linkvertise.com/login"); }; // src/main.ts (async () => { console.info("Linkvertise Userscript", config.version, window.location.href); await bypassCityListener(); await linkvertiseListener(); })(); })();