Swiftlnx.com Auto-Bypasser

⚡ Auto-Bypass Ads/Redirects (swiftlnx.com + yourdoctor.site) by @Fer3on_Mod - now with persistent page counter

当前为 2025-09-05 提交的版本,查看 最新版本

// ==UserScript==
// @name         Swiftlnx.com Auto-Bypasser
// @namespace    http://tampermonkey.net/
// @version      16.4
// @description  ⚡ Auto-Bypass Ads/Redirects (swiftlnx.com + yourdoctor.site) by @Fer3on_Mod - now with persistent page counter
// @author       Fer3on_Mod
// @match        *://swiftlnx.com/*
// @match        *://yourdoctor.site/*
// @run-at       document-end
// @grant        GM_addStyle
// ==/UserScript==

(function () {
  "use strict";

  let stopScript = false;

  // --------- Persistent Counter ---------
  function getPageCounter() {
    return parseInt(localStorage.getItem("fer3on_pageCounter") || "0", 10);
  }
  function incPageCounter() {
    let newVal = getPageCounter() + 1;
    localStorage.setItem("fer3on_pageCounter", newVal);
    return newVal;
  }

  // ---------- Pop-up UI ----------
  const popup = document.createElement("div");
  popup.id = "fer3on-popup";
  popup.innerHTML = `
    <div class="popup-container">
      <div class="popup-header">🚀 Fer3on_Mod Auto-Bypass</div>
      <div class="popup-body">
        <p id="fer3on-status">⏳ Starting bypass...</p>
        <div class="progress">
          <div class="progress-bar" id="fer3on-progress"></div>
        </div>
        <div id="fer3on-log" class="log-box"></div>
        <hr>
        <p>👑 Made by <b>Fer3on_Mod</b></p>
        <p>📺 YouTube: <a href="https://youtube.com/@fer3on_mod" target="_blank">youtube.com/@fer3on_mod</a></p>
        <p>✈️ Telegram: <a href="https://t.me/Fer3on_Mod" target="_blank">@Fer3on_Mod</a></p>
      </div>
    </div>
  `;
  document.body.appendChild(popup);

  GM_addStyle(`
    #fer3on-popup {
      position: fixed;
      top: 0; left: 0;
      width: 100%; height: 100%;
      background: rgba(0, 0, 0, 0.9);
      display: flex;
      align-items: center;
      justify-content: center;
      z-index: 2147483647 !important;
    }
    #fer3on-popup .popup-container {
      background: #111;
      color: #0f0;
      padding: 20px 25px;
      border-radius: 14px;
      box-shadow: 0 0 25px rgba(0,255,0,0.4);
      font-family: Arial, sans-serif;
      max-width: 420px;
      text-align: center;
      animation: fadeIn 0.4s ease-in-out;
    }
    #fer3on-popup .popup-header {
      font-size: 20px;
      font-weight: bold;
      margin-bottom: 12px;
      color: #0ff;
      text-shadow: 0 0 5px #0f0;
    }
    #fer3on-popup a { color: #0af; text-decoration: none; }
    #fer3on-popup a:hover { text-decoration: underline; }
    .progress {
      background: #333;
      border-radius: 10px;
      height: 20px;
      width: 100%;
      overflow: hidden;
      margin: 10px 0 15px;
    }
    .progress-bar {
      height: 100%;
      width: 0%;
      background: linear-gradient(90deg, #0f0, #0ff);
      text-align: center;
      color: #000;
      font-size: 12px;
      font-weight: bold;
      transition: width 0.3s ease;
    }
    .log-box {
      background: #000;
      border: 1px solid #0f0;
      border-radius: 6px;
      padding: 6px;
      font-size: 12px;
      max-height: 120px;
      overflow-y: auto;
      text-align: left;
    }
    .log-box p { margin: 2px 0; }
    .log-ok { color: #0f0; }
    .log-err { color: #f00; }
    @keyframes fadeIn { from { opacity: 0; transform: scale(0.9); } to { opacity: 1; transform: scale(1); } }
  `);

  function setLog(msg, progress = null, type = "ok") {
    const status = document.getElementById("fer3on-status");
    const bar = document.getElementById("fer3on-progress");
    const logBox = document.getElementById("fer3on-log");
    if (status) status.textContent = msg;
    if (progress !== null && bar) {
      bar.style.width = progress + "%";
      bar.textContent = progress + "%";
    }
    if (logBox) {
      const p = document.createElement("p");
      p.textContent = msg;
      p.className = type === "err" ? "log-err" : "log-ok";
      logBox.appendChild(p);
      logBox.scrollTop = logBox.scrollHeight;
    }
    console.log("[Fer3on_Mod] " + msg);
  }

  function finishScript(msg = "✅ Bypassed") {
    setLog(msg, 100);
    stopScript = true;
    setTimeout(() => popup.remove(), 2500);
  }

  // ---------- Handlers ----------
  function handleYourDoctor() {
    const currentPage = incPageCounter();
    setLog(`🌍 Page ${currentPage}: yourdoctor.site detected`, 20);
    const btn = document.querySelector("button.btn-success, a.btn-success");
    if (btn) {
      setLog(`➡️ Page ${currentPage} skipped`, 60);
      btn.click();
      finishScript(`✅ yourdoctor.site skipped!`);
    } else {
      setLog(`❌ Page ${currentPage} failed`, null, "err");
    }
  }

  function handleSwiftLnx() {
    const currentPage = incPageCounter();
    setLog(`🌍 Page ${currentPage}: swiftlnx.com detected`, 20);

    const checkBtn = setInterval(() => {
      if (stopScript) return clearInterval(checkBtn);
      const btn = document.querySelector("a.get-link[href]:not(.disabled)");
      if (btn && btn.href && !btn.href.includes("void(0)")) {
        clearInterval(checkBtn);
        setLog(`➡️ Page ${currentPage} skipped, redirecting...`, 80);
        setTimeout(() => {
          window.open(btn.href, "_self");
          finishScript("✅ swiftlnx.com skipped!");
        }, 1000);
      }
    }, 300);

    setTimeout(() => {
      if (!stopScript) {
        clearInterval(checkBtn);
        setLog(`❌ Page ${currentPage} failed`, null, "err");
      }
    }, 10000);
  }

  // ---------- Router ----------
  if (location.hostname.includes("yourdoctor.site")) {
    handleYourDoctor();
  } else if (location.hostname.includes("swiftlnx.com")) {
    handleSwiftLnx();
  }
})();