HinatazakaExceptionHandlingWrapper

日向坂46サイト向け例外処理ラッパー

Ten skrypt nie powinien być instalowany bezpośrednio. Jest to biblioteka dla innych skyptów do włączenia dyrektywą meta // @require https://update.greasyfork.org/scripts/509934/1480445/HinatazakaExceptionHandlingWrapper.js

// ==UserScript==
// @name        HinatazakaExceptionHandlingWrapper
// @name:ja     HinatazakaExceptionHandlingWrapper
// @namespace   naoqv.hinatazaka
// @description	日向坂46サイト向け例外処理ラッパー
// @version     1.41
// @match       https://www.hinatazaka46.com/s/official/news/*
// @match       https://www.hinatazaka46.com/s/official/media/*
// @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}].`);
    }
  }
};