您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Automatically refresh the page if specific errors are detected in specified divs
// ==UserScript== // @name Auto-Page Refresh // @version 4.0 // @description Automatically refresh the page if specific errors are detected in specified divs // @author Misspent & OpenAI // @namespace https://chatbot.theb.ai // @icon https://i.imgur.com/xap0lZG.png // @license MIT // @include *upcloud.* // @include *mcloud.* // @include *fmovies24.* // @include *mycloud.* // @include *vidplay.* // @include *mp4upload.* // @include *vidcloud.* // @include *vizcloud.* // @include *filemoon.* // @include *moviesapi.* // @include *vidsrc.* // @include *rapid-cloud.* // @include *a9bfed0818.* // @include *vid142.* // @include *aniwave.* // @include *fmoviesz.* // @include *megaf.* // @include *.site* // @grant none // ==/UserScript== // Refresh the page if specific errors are detected in specified divs (function () { 'use strict'; // Define an array of targets with div, text, and optional delay pairs const targets = [ { div: '.message', text: 'Something went wrong', delay: 0 }, { div: '.message', text: 'Unable to load episode, please try again.', delay: 1500 }, // Fmovies? { div: '.message', text: 'Unable to load server, please try again.', delay: 1500 }, // Fmovies? { div: '.message', text: 'Unable to load the server, please try again.', delay: 1500 }, // Fmovies? { div: '.message', text: 'Unable to load episode list, please try again.', delay: 1500 }, // Fmovies? { div: '.message', text: 'This video file cannot be played.', delay: 1500 }, // Fmovies? { div: '#player', text: 'This video file cannot be played', delay: 0 }, { div: '#cf-error-details h1', text: 'Bad gateway', delay: 0 }, { div: '.message > .inner', text: 'Error while fetching chapter, please try again.', delay: 0 }, { div: '.message', text: 'Unable to load the server, please try again.', delay: 0 }, { div: '.message2', text: 'Error 2', delay: 0 }, { div: '.error-page .detail', text: "We can't find the page that you're looking for.", delay: 1500 }, { div: '#player .loading', delay: 1500 }, // Aniwave | DO NOT go lower than 1000 ]; // Function to check if a target is present and trigger a reload const checkTarget = (target) => { const targetDiv = document.querySelector(target.div); if (targetDiv) { if (target.text) { if (targetDiv.innerText.includes(target.text)) { // Refresh the page location.reload(); } } else { // Check if the div is present and has no text if (!targetDiv.innerText.trim()) { // Refresh the page location.reload(); } } } }; // Function to initiate checks with delay const initiateChecks = () => { targets.forEach(target => { if (target.delay === 0) { checkTarget(target); } else { setTimeout(() => { checkTarget(target); }, target.delay || 0); // Use 0 if delay is not specified } }); }; // Create a MutationObserver const observer = new MutationObserver(initiateChecks); // Configure the observer to watch for changes in the body and its descendants const observerConfig = { childList: true, subtree: true }; // Start observing the target node for configured mutations observer.observe(document.body, observerConfig); // Initial check when the script is executed initiateChecks(); })();