Reload on Twitch #2000 error

Twitchでエラー(#2000)が出たときにページを再読み込みするスクリプトです

// ==UserScript==
// @name    Reload on Twitch #2000 error
// @namespace    ReloadonTwitch#2000error
// @version    0.1.1
// @description    Twitchでエラー(#2000)が出たときにページを再読み込みするスクリプトです
// @author    khsk modded by bob_puyon
// @match    https://www.twitch.tv/*
// @grant    none
// ==/UserScript==

(function() {
  'use strict';
  // まずはメイン画面のロード完了を待つ
  const mo = new MutationObserver((data1, data2) => {
    const videoPlayer = document.querySelector('.video-player__default-player')
    if (videoPlayer) {
      errorWatcher()
      mo.disconnect();
      return
    }
  })
  mo.observe(document.body, {
    childList: true, subtree: true
  });


  // ビデオ監視処理定義
  const errorWatcher = () => {
    const errorMessage = 'ネットワークエラーが発生しました。再度お試しください。(エラー #2000)'

    // 検知クリックによる変更検知無限ループを防ぐためのフラグ。筋が悪い後から追加の場当たり処理
    let isCallbackClicked = false

    const videoPlayer = document.querySelector('.video-player__default-player')
    if (!videoPlayer) {
      console.log('no player')
      return
    }

    const mo = new MutationObserver((data1, data2) => {
      const message = document.querySelector('.content-overlay-gate__allow-pointers.tw-c-text-overlay')
      if (!message) {
        isCallbackClicked = false
        return
      }

      if (message.textContent != errorMessage) {
        isCallbackClicked = false
        return
      }

      if (isCallbackClicked) {
        return
      }
      console.log('Twitchでの#2000エラーを検出しました ページを再読み込みします')
      isCallbackClicked = true
      location.reload();
    });

    const options = {childList: true, subtree:true};
    mo.observe(videoPlayer, options);
    console.log('Twitchでの#2000エラーの監視を開始しました')
  }
  })();
  

QingJ © 2025

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