modflix.xyz bypasser

Bypass modflix.xyz download links

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

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==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")
  }
})()