HinatazakaExceptionHandler

handle exception

Pada tanggal 03 April 2025. Lihat %(latest_version_link).

Skrip ini tidak untuk dipasang secara langsung. Ini adalah pustaka skrip lain untuk disertakan dengan direktif meta // @require https://update.greatest.deepsurf.us/scripts/531764/1565142/HinatazakaExceptionHandler.js

// ==UserScript==
// @name        HinatazakaExceptionHandler
// @name:ja     HinatazakaExceptionHandler
// @namespace   naoqv.hinatazaka
// @description handle exception
// @description:ja 例外処理
// @version     0.1
// @match       https://www.hinatazaka46.com/s/official/*
// @icon        https://cdn.hinatazaka46.com/files/14/hinata/img/favicons/favicon-32x32.png
// @grant       none
// @license     MIT
// ==/UserScript==

const handleException = (proc, scriptName) => {
  try {
    const divElem = document.querySelector('html body div');
    if (divElem == null || divElem.innerText == null || divElem.innerText.includes('メンテナンス中')) {
      return;
    }
    proc();
  } catch (e) {

    console.error(e);

    const cookies = document.cookie;

    const lang = Array.prototype.find.call(cookies.split('; '), (value) => {
      let content = value.split('=');

      return content[0] === "wovn_selected_lang";
    }).split('=')[1];

    switch(lang) {
      case "ja":
        alert(`userscriptの処理中にエラーが発生しました。\n「${scriptName}」のuserscriptを無効にしてください。`);
        break;
      case "en":
      case "zh-Hans":
      case "zh-Hant":
      case "ko":
      default:
        alert(`An error occurred while processining userscript.\nPlease disable the userscript:\n[${scriptName}].`);
    }
  }
};