modflix.xyz bypasser

Bypass modflix.xyz download links

当前为 2024-06-25 提交的版本,查看 最新版本

// ==UserScript==
// @name        modflix.xyz bypasser
// @namespace   http://tampermonkey.net/
// @version     1.0
// @description Bypass modflix.xyz download links
// @author      limeo
// @license     MIT  
// @match        *://*/*
// @icon        https://moviesmod.life/wp-content/uploads/2022/10/moviesmod.png
// @grant        GM_registerMenuCommand
// @grant        GM_setValue
// @grant        GM_getValue
// ==/UserScript==

;(function () {
  "use strict"

  const options = [
    {
      key: "instant",
      selector: "a.btn.btn-danger",
    },
    {
      key: "resume",
      selector: "a.btn.btn-light",
    },
  ]

  const setOption = (key, value) => {
    GM_setValue(key, value)
  }

  const getOption = (key) => {
    return GM_getValue(key)
  }

  // Modified to set default to "resume"
  const initOptions = () => {
    options.forEach((option) => {
      const currentValue = getOption(option.key)
      if (currentValue === undefined) {
        // Set "resume" as the default option
        setOption(option.key, option.key === "resume")
      }
    })
  }

  // Function to log the current option
  const logCurrentOption = () => {
    const isInstant = getOption("instant")
    alert(`Current download option is: ${isInstant ? "instant" : "resume"}`)
    // console.log(
    //   `Current download option is: ${isInstant ? "instant" : "resume"}`
    // )
  }

  // Modified to set options directly
  const initMenu = () => {
    GM_registerMenuCommand("Set Instant", () => {
      setOption("instant", true)
      setOption("resume", false)
      logCurrentOption()
    })

    GM_registerMenuCommand("Set Resume", () => {
      setOption("instant", false)
      setOption("resume", true)
      logCurrentOption()
    })

    GM_registerMenuCommand("Log Current Option", logCurrentOption)

    // GM_registerMenuCommand("Reset Options", () => {
    //   options.forEach((option) => {
    //     setOption(option.key, option.key === "resume")
    //   })
    //   logCurrentOption()
    // })

    GM_registerMenuCommand("Go to modflix.xyz", () => {
      // Open modflix.xyz in new tab
      window.open("https://modflix.xyz")
    })
  }

  const init = () => {
    initOptions()
    initMenu()
  }

  init()

  // Function to check website domain
  function isMatchingDomain(url) {
    const allowedDomains = [
      "https://episodes.modpro.co/archives/", //hollywood series page (episodes)
      "https://links.modpro.co/archives/", //hollywood movie page (links)
      "https://leech.modpro.co/archives/", //leech page (bollywood movies)
      "https://driveseed.org/file/",
      "https://driveleech.org/file/",
      "https://video-seed.xyz/", // Instant download
      "https://workerseed.dev/", // Resume download
      "https://driveseed.org/zfile/", // Resume download (alternative)
      "https://driveleech.org/zfile/", // Resume download (alternative)
    ]
    return allowedDomains.some((domain) => url.startsWith(domain))
  }

  // Function to handle actions on driveseed.org
  function handle_driveSeedsOrLeechs() {
    // Find and click the download button (example selector)
    setTimeout(() => {
      // Implement logic based on the current option
      const performActionBasedOnOption = () => {
        if (getOption("instant")) {
          console.log("Performing action for instant option.")
          // Add your logic for "instant" option here
          let downloadButton = document.querySelector("a.btn.btn-danger")
          if (downloadButton) {
            const url = downloadButton.href
            window.location.href = url
            console.log("Navigated to:", url)
          } else {
            console.log("Instant Download button not found on driveseed.org")
            //set resume option
            GM_setValue("instant", false)
            GM_setValue("resume", true)
          }
        }
        if (getOption("resume")) {
          console.log("Performing action for resume option.")
          // Add your logic for "resume" option here
          let downloadButtons = document.querySelectorAll(
            "a.btn.btn-light, a.btn.btn-warning"
          )

          let downloadButton = Array.from(downloadButtons).find(Boolean)
          console.log("downloadButton:", downloadButton)

          if (downloadButton) {
            const url = downloadButton.href
            window.location.href = url
            console.log("Navigated to:", url)
          } else {
            console.log("Resume Download button not found on driveseed.org")
            //set instant option
            GM_setValue("instant", true)
            GM_setValue("resume", false)
          }
        }
      }
      performActionBasedOnOption()
    }, 500)
  }

  // Function to handle actions on episodes.modpro.co and links.modpro.co
  function handleModproSites() {
    // Find and click the "allEpisodesButton" (if it exists)
    setTimeout(() => {
      const allEpisodesButton = document.getElementById("allEpisodesButton")
      if (allEpisodesButton) {
        // Click the "allEpisodesButton"
        // also close the tab after 5 seconds
        allEpisodesButton.click()
        setTimeout(() => {
          window.close()
        }, 500)
        console.log("Navigated to all episodes on modpro.co site")
      } else {
        console.log("All episodes button not found on modpro.co site")
      }

      // Find and click the server button (example selector)
      const serverButtons = document.querySelectorAll(".maxbutton")
      const serverButton = Array.from(serverButtons).find(Boolean)
      console.log("serverButton:", serverButton)

      if (serverButton) {
        const serverLink = serverButton.href
        window.location.href = serverLink
        console.log("Navigated to server link on modpro.co site")
      } else {
        console.log("Server buttons not found on modpro.co site")
      }
    }, 500)
  }

  function handleInstantDL() {
    //start download after 1 second
    //https://video-seed.xyz/
    setTimeout(() => {
      const downloadButton = document.getElementById("ins")
      if (downloadButton) {
        downloadButton.click()
        console.log("download begins...")
      } else {
        console.log('Download button with ID "ins" not found')
      }
    }, 1000) // Adjust delay as needed
  }

  function handleResumeDL() {
    //start download after 1 second
    //https://workerseed.dev/ or https://driveleech.org/zfile/
    setTimeout(() => {
      if (window.location.href.startsWith("https://workerseed.dev/")) {
        const downloadButton = document.getElementById("download")
        if (downloadButton) {
          downloadButton.click()
          console.log("download begins...")
        } else {
          console.log('Download button with ID "download" not found')
        }
      } else {
        const downloadButton = document.querySelector("a.btn.btn-success")
        if (downloadButton) {
          const url = downloadButton.href
          window.location.href = url
          console.log("download begins...")
        } else {
          console.log('Download button with class "btn btn-success" not found')
        }
      }
    }, 1000) // Adjust delay as needed
  }

  // Main execution based on domain
  const currentUrl = window.location.href
  if (isMatchingDomain(currentUrl)) {
    if (
      currentUrl.startsWith("https://driveseed.org/file/") ||
      currentUrl.startsWith("https://driveleech.org/file/")
    ) {
      handle_driveSeedsOrLeechs()
    } else if (currentUrl.startsWith("https://video-seed.xyz/")) {
      handleInstantDL()
    } else if (
      currentUrl.startsWith("https://workerseed.dev/") ||
      currentUrl.startsWith("https://driveleech.org/zfile/") ||
      currentUrl.startsWith("https://driveseed.org/zfile/")
    ) {
      handleResumeDL()
    } else {
      // episodes.modpro.co or links.modpro.co or leech.modpro.co
      handleModproSites()
    }
  } else {
    console.log("Script not applicable for this domain")
  }
})()

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址