eeweww

userscript linkvertise bypasser

Nov 9th, 2023
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
JavaScript 9.07 KB | Software | 0 0
  1. // ==UserScript==
  2. // @name         linkvertise bypasser
  3. // @namespace    http://tampermonkey.net/
  4. // @homepageURL  https://bypass.city
  5. // @description  just waits 15 seconds for krnl and works fine with the other stuff 2 (it waits no time for other stuff) :)
  6. // @author       Discord: varram#6209
  7. // @match        *://*.linkvertise.com/*
  8. // @match        *://*.linkvertise.net/*
  9. // @match        *://*.link-to.net/*
  10. // @match        *://bypass.city/*
  11. // @match        http://localhost:3000/*
  12. // @exclude      *://publisher.linkvertise.com/*
  13. // @exclude      *://linkvertise.com
  14. // @exclude      *://linkvertise.com/search*
  15. // @exclude      *://blog.linkvertise.com
  16. // @exclude      *://blog.linkvertise.com/*
  17. // @exclude      https://linkvertise.com/assets/vendor/thinksuggest.html
  18. // @exclude      https://linkvertise.com/assets/vendor/*
  19. // @exclude      https://publisher.linkvertise.com/*
  20. // @exclude      *://link-mutation.linkvertise.com/*
  21. // @grant        GM_getValue
  22. // @grant        GM_setValue
  23. // @grant        GM_deleteValue
  24. // @grant        GM_addStyle
  25. // @grant        GM.getValue
  26. // @grant        GM_xmlhttpRequest
  27. // @grant        GM.setValue
  28. // @grant        GM.deleteValue
  29. // @version      11.0.2
  30. // @author       varram
  31. // @connect      bypass.city
  32. // @icon         https://bypass.city/favicon.ico
  33. // ==/UserScript==
  34.  
  35.  
  36. /*
  37. release: 11.0.2 (a26d777), 11/9/2023, 12:48:54 AM
  38. Discord: https://discord.gg/tX8G9G5BMV
  39. additional copyright/license info:
  40. © All Rights Reserved
  41.  
  42. Linkvertise Bypass © 2023 by varram#6209, suspect & bypass.city team
  43. */
  44.  
  45. (() => {
  46.   // src/bypass-city.ts
  47.   var bypassCityListener = async () => {
  48.     if (window.location.hostname !== "bypass.city" && window.location.hostname !== "localhost") {
  49.       return;
  50.     }
  51.     window.userscript = {
  52.       version: process.env.VERSION,
  53.       installed: true
  54.     };
  55.     window.addEventListener("bypassComplete", async (event) => {
  56.       const data = event.detail;
  57.       console.log("bypassMessage", data);
  58.       GM_setValue("bypass.data", data);
  59.       window.open(data.url, "_self", "noopener,noreferrer");
  60.     });
  61.   };
  62.  
  63.   // src/notify.scss
  64.   var notify_default = `.notification {
  65.   position: fixed;
  66.   top: 10px;
  67.   right: 10px;
  68.   margin: 10px;
  69.   padding: 10px;
  70.   padding-right: 20px;
  71.   background-color: #25262b;
  72.   color: white;
  73.   transition: opacity 0.6s; /* 600ms to fade out */
  74.   z-index: 4000000;
  75.   border-radius: 10px; /* Rounded border */
  76.   border: 2px solid #3b5bdb;
  77.   animation: glow 1s ease-in-out infinite alternate;
  78. }
  79.  
  80. .notification .grid-container {
  81.   display: grid;
  82.   grid-template-columns: auto auto;
  83.   gap: 10px;
  84. }
  85.  
  86. .notification .links {
  87.   display: flex;
  88.   justify-content: right;
  89.   align-items: center;
  90. }
  91.  
  92. .notification .links span {
  93.   padding-bottom: 4px;
  94.   opacity: 0.7;
  95. }
  96.  
  97. .notification .links a, .notification .links span {
  98.   display: block;
  99.   color: white;
  100.   font-size: 0.8rem;
  101.   padding: 5px;
  102.   margin-bottom: 5px;
  103. }
  104.  
  105. .grid-item img {
  106.   margin-top: 15px;
  107.   margin-right: 5px;
  108.   width: 32px;
  109. }
  110.  
  111. .grid-item h3 {
  112.   padding-top: 10px;
  113.   padding-bottom: 3px;
  114.   font-size: 1.5rem;
  115.   color: white;
  116. }
  117.  
  118. .grid-item p {
  119.   font-style: italic;
  120.   font-size: 1rem;
  121.   color: white;
  122. }
  123. .grid-item p a {
  124.   opacity: 1;
  125.   font-weight: 600;
  126.   text-decoration: underline !important;
  127.   margin-bottom: 8px;
  128.   display: inline-block;
  129. }
  130.  
  131. .grid-item h3, .grid-item p {
  132.   margin: 0;
  133. }
  134.  
  135. @keyframes glow {
  136.   from {
  137.     box-shadow: 0 0 10px #3b5bdb;
  138.   }
  139.   to {
  140.     box-shadow: 0 0 20px #3b5bdb;
  141.   }
  142. }`;
  143.  
  144.   // src/notify-element.html
  145.   var notify_element_default = '<div id="bypass-notification" class="notification">\n    <div class="grid-container">\n      <div class="grid-item">\n        <img height="32" src="https://bypass.city/images/android-chrome-192x192.png" alt="Notification">\n      </div>\n      <div class="grid-item">\n        <h3 id="title"></h3>\n        <p>\n            <span id="text"></span>\n            <a id="help" href="https://discord.gg/tX8G9G5BMV">Get Support on our Discord</a>\n        </p>\n      </div>\n    </div>\n   \n      <div id="links" class="links">\n        <span id="version">Release</span>\n        <span>&#8226;</span>\n        <a  href="https://discord.gg/tX8G9G5BMV">Get Support</a>\n        <span>&#8226;</span>\n        <a href="https://bypass.city/privacy">Privacy Policy</a>\n      \n      </div>\n  </div>\n  ';
  146.  
  147.   // src/notify.ts
  148.   var BypassElement = class extends HTMLElement {
  149.     static get observedAttributes() {
  150.       return ["text", "title", "is-help"];
  151.     }
  152.     constructor() {
  153.       super();
  154.       const shadow = this.attachShadow({ mode: "open" });
  155.       const style = document.createElement("style");
  156.       style.textContent = notify_default;
  157.       const div = document.createElement("div");
  158.       div.innerHTML = notify_element_default;
  159.       shadow.appendChild(style);
  160.       shadow.appendChild(div);
  161.       shadow.getElementById("version").innerText = "11.0.2 (a26d777)";
  162.     }
  163.     connectedCallback() {
  164.       this.updateContent();
  165.     }
  166.     attributeChangedCallback(name, oldValue, newValue) {
  167.       this.updateContent();
  168.     }
  169.     updateContent() {
  170.       const text = this.getAttribute("text") || "";
  171.       const title = this.getAttribute("title") || "";
  172.       const isHelp = this.hasAttribute("is-help");
  173.       if (isHelp) {
  174.         this.shadowRoot.getElementById("links").remove();
  175.       }
  176.       this.shadowRoot.getElementById("help").style.display = isHelp ? "block" : "none";
  177.       this.shadowRoot.querySelector("#title").textContent = title;
  178.       this.shadowRoot.querySelector("#text").textContent = text;
  179.     }
  180.   };
  181.   customElements.define("bypass-notification", BypassElement);
  182.   var notify = ({ text, title, isHelp }) => {
  183.     const titleConent = title || "Bypass in progress...";
  184.     const textContent = text || "Please wait while we redirect you";
  185.     const notificationElement = document.createElement("bypass-notification");
  186.     notificationElement.setAttribute("title", titleConent);
  187.     notificationElement.setAttribute("text", textContent);
  188.     if (isHelp) {
  189.       notificationElement.setAttribute("is-help", "true");
  190.     }
  191.     document.body.appendChild(notificationElement);
  192.   };
  193.  
  194.   // src/fetch.ts
  195.   var jsonFetch = async (url, options) => {
  196.     return new Promise((resolve, reject) => {
  197.       GM_xmlhttpRequest({
  198.         method: options.method,
  199.         data: options.data ? JSON.stringify(options.data) : void 0,
  200.         headers: options.headers,
  201.         url,
  202.         onload: (response) => {
  203.           if (response.responseText && typeof response.responseText === "string") {
  204.             try {
  205.               const data = JSON.parse(response.responseText);
  206.               resolve(data);
  207.             } catch (e) {
  208.               reject();
  209.             }
  210.           } else {
  211.             reject();
  212.           }
  213.         },
  214.         onerror: reject,
  215.         ontimeout: reject,
  216.         onabort: reject,
  217.         timeout: 5e3
  218.       });
  219.     });
  220.   };
  221.  
  222.   // src/ping.ts
  223.   var ping = async () => {
  224.     try {
  225.       const data = await jsonFetch(`${"https://bypass.city"}/.well-known/ping.json`, {
  226.         method: "GET",
  227.         headers: {
  228.           "Content-Type": "application/json"
  229.         }
  230.       });
  231.       return data.ping;
  232.     } catch (e) {
  233.       notify({
  234.         title: "Server unreachable",
  235.         isHelp: true
  236.       });
  237.       return false;
  238.     }
  239.   };
  240.  
  241.   // src/utils.ts
  242.   var sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
  243.  
  244.   // src/linkvertise.ts
  245.   var linkvertiseListener = async () => {
  246.     if (!matchLinkvertise(window.location.href)) {
  247.       return;
  248.     }
  249.     const bypassData = GM_getValue("bypass.data");
  250.     if (bypassData) {
  251.       if (window.location.href.includes("linkvertise.com/48193/")) {
  252.         notify({
  253.           title: "KRNL DETECTED!",
  254.           text: "Bypassing krnl please wait 15 seconds\n  to avoid getting blacklisted!"
  255.         });
  256.         await sleep(15e3);
  257.       } else {
  258.         notify({});
  259.         await sleep(2e3);
  260.       }
  261.       const targetUrl = bypassData.bypassData;
  262.       GM_deleteValue("bypass.data");
  263.       window.open(targetUrl, "_self");
  264.     } else {
  265.       const testConnectivity = await ping();
  266.       if (testConnectivity) {
  267.         notify({});
  268.         await sleep(2e3);
  269.         const bypassCityUrl = new URL(`${"https://bypass.city"}/bypass`);
  270.         bypassCityUrl.searchParams.set("bypass", encodeURIComponent(window.location.href));
  271.         bypassCityUrl.searchParams.set("userscript", "true");
  272.         bypassCityUrl.searchParams.set("userscript-version", "11.0.2");
  273.         window.open(bypassCityUrl.href, "_self");
  274.       }
  275.     }
  276.   };
  277.   var matchLinkvertise = (url) => {
  278.     const regex = /https?:\/\/(linkvertise\.(com|download)|(link-(center|target|hub|to)|direct-link|file-link)\.net)/i;
  279.     return regex.test(url) && !url.startsWith("https://linkvertise.com/profile") && !url.startsWith("https://linkvertise.com/login");
  280.   };
  281.  
  282.   // src/main.ts
  283.   (async () => {
  284.     console.log("11.0.2", window.location.href);
  285.     await bypassCityListener();
  286.     await linkvertiseListener();
  287.   })();
  288. })();
  289.  
Add Comment
Please, Sign In to add comment