DMHY新番資源索引 修正(GreasyFork版)

修改[DMHY、動漫花園、动漫花园]新番資源索引,修正為目前播映中新番索引

当前为 2024-09-27 提交的版本,查看 最新版本

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name         DMHY新番資源索引 修正(GreasyFork版)
// @namespace    https://github.com/rinsaika/dmhy-
// @version      3.202410v1.1
// @description  修改[DMHY、動漫花園、动漫花园]新番資源索引,修正為目前播映中新番索引
// @author       Saika
// @match        https://www.dmhy.org/*
// @match        https://share.dmhy.org/*
// @match        https://dmhy.b168.net/*
// @match        https://dmhy.org/*
// @match        https://dmhy.anoneko.com/*
// @match        https://dmhy.gate.flag.moe/*
// @grant        none
// @icon         https://share.dmhy.org/favicon.ico
// @icon64       https://share.dmhy.org/favicon.ico
// @license      No Redistribution
// ==/UserScript==


(function() {
    
  'use strict';
  
    // @name:zh-CN

  // 找到新番索引的表格
  const table = document.querySelector('table.jmd');
  if (!table) {
    console.error('未找到新番索引表格');
    return;
  }

  // 找到目前日期
  const today = new Date();
  const todayDay = today.getDay();

  // 刪除原本的 <tbody> 標籤
  const tbody = table.querySelector('tbody');
  if (tbody) {
    tbody.remove();
  }

  // 調整 daysOfWeek 陣列順序
  const daysOfWeek = ['週日(日)', '週一(月)', '週二(火)', '週三(水)', '週四(木)', '週五(金)', '週六(土)', '其他'];

  //原網站的ico連結
 const ico_Netflix = 'https://assets.nflxext.com/us/ffe/siteui/common/icons/nficon2023.ico';
 const ico_Disney = 'https://static-assets.bamgrid.com/product/disneyplus/favicons/favicon-aurora.9c40657cf520f9cfcf49dbb4f316aa7c.ico';
 const ico_bilibili = 'https://www.bilibili.com/favicon.ico';
 const ico_ABEMA = 'https://abema.tv/favicon.ico';
 const ico_YouTube = 'https://www.youtube.com/s/desktop/aef0ced3/img/favicon_32x32.png';
 const ico_AnimeFesta='https://animefesta-assets.cdnext.stream.ne.jp/assets/favicon.ico';
 const ico_Ultra='';

  // Base64 圖片數據
  const base64img_Netflix = 'UklGRroBAABXRUJQVlA4WAoAAAAQAAAAFwAAFwAAQUxQSI0AAAABcFtr25p8JV5byQ5uAzgzZAhYwtnAy7QcKh0gE6TC3R3i4T1MEBETQERk7QmCsMsQheaCIPRtpGnrC4LwqRhAAudE3WMooQ27OVBCFjaKTkFTZgy6syvQ9/gCqf/N6/AFrdgbaMxMQNPoEDQP5lAh+w1FbVj8jnJxkEWEDNXvLz2+W8+7iTzVWocfqAAAVlA4IAYBAACQBgCdASoYABgAAMASJbACxHyXiX8VeFiMAupv8B+Ku9i5yBvAH8A6wD9gAZc9AOch1y7B2+cIMhf5+oGAAP7/K3yZHb5g/0+4a0l7r672MXherCcffQWwioJS8hgBOVg71L4s3I+bs6JAbn/nt5crvP8jzceTsDOu67uTnsK8Od0//fT1yrd/4b773j0jBylwhM09e5Ft/oP/BQOm/bhIZRlC+V9/hErD2uNV9fxcDUiEklGgnvuRexhavtlKpG/ftTbZj/tqbUBXESVUHiwL0k3ur5SEv3YdpQ4I9YxpV3DWN7MopyhMc9O3Wt2oLhxavVoUJ+1TzKDikCDIZU2Wq8ytwAAA';
  const base64img_Disney = 'UklGRhgDAABXRUJQVlA4WAoAAAAQAAAAFwAAFwAAQUxQSFQBAAABkCvbtmlb49q2bdu2Ed3ohrZt247syHq2Gdm2vc+85g9ExATg4KtGdR2/cGoizY5/F3Z3njy49/jVp1/0fSZEkWcHKdNm8lJqtiHR7Zd+/7/d7sG9jagSJ7bkkbNufM960y+71U7ZAJ3xt8xrD+5dyLuzA+weo7/epfLvLHJFEgCEq+lb686KX6lvArK+UCzHTnr+6W/Fm/zlpTvbNlwm52mkMS9cEgDvKGtZchOfSfUDhohFRL/GjAG537/MAfDn3r001vyCeioHzr1lPVIGZikfgGKpgZwQ12VyYheQ0e5mLIFWGgYglakC4Ap5AJCdmeUB2wmqAsDuO+zOiYvkB4Bbgx9s4d9+eAEAp9VSi+xZCsGW7AFPmEGhTYBo76uvFK8oI6+s4b/4799ZFWzLH/GMPtw+e/Xe2//M3QoN7HSUpmZOXrx1ocFHmQs7dppVw6EGVlA4IJ4BAADQCQCdASoYABgAAMASJbACdMzRCx9Q7c5IHUl9QG2A/TP1AfqB+pPvwegDeAN5G/ciuAcpP+Ai/fiy/Ef8LqGf6wHaK1pi3KaNfoy+nfMM4SHvqN2sEwAA/v6j9Xlwer97rJ+L4b0+UoyjS37yU2q3iH+I3ZPb8X1X0IxX7Ki8nD5akq+e1FHJnAUzX314bb8MeUqkk9jF50ekawHn+pU+kj9R61cFwHIUJamlWXW+XMMf/u9fqsf9USLRVxMEi0iQrfhHFFyXf/i9HlZbe/6myjrMbb34JTxUEmGUYQJP+T3vjGIx9mqqLRzckmZqo/CXpbrPpQuTt+ugf+X2Dkyu3fMLP3cxUwaxquJokzNyQCI46TfwYo2EvPWuU8XD6biUS7HXIwSWfyCLj9XBnye8fudH6jvOXtXQhb9MRP5hAv+jRl//Chkfd1OtOfTAvBEDjUIluFNIbgGa3RQ/4z1dG4dzvE7Mo7p1zH9asz06h6TprtHz8Ds9Wb2lwReM7fYEkuWeGZp2idIlLvkaIkXbVOx6a9K9/syv9iVwAAA=';
  const base64img_bilibili = 'UklGRjQCAABXRUJQVlA4WAoAAAAQAAAAHwAAHwAAQUxQSM4AAAABgBvZttvmUeYj+0gNKwKakIsJtsSQDZAdvJF3PXA+ZEKv6Mh9h5HyiJgAGefO4mFpw+zycbETsgeoDbEK7IUcAqj1WQU4CjEKoOVvVgHUhIhVAC1/WAXQUrymP34i6dNxb0Rkek3G66mYa7LeFDMyz46BdS1J6zVw/AHUkrgG3gEkOd5xtM61vta5Ns6B8zlwcQA+gPE5GHwOhrhu2HS+bth0cWn/hw+gTlUBT8fAqkozXQHHPZn74ibPbSHT6xw3UxEx8/PnNM/ncyN/IFZQOCBAAQAA0AoAnQEqIAAgAD4tEoZCoaEN/qoADAFiWwAnTKEcDeAfhf+OXQB6fdq8kD5Avp/3Abwp/Vf4BvAP0g/t3t/9IB/lf8z6lf9V9gD0API3/Zb4Ev2X/bD2Wf/oCXVeJQAA/uX6P/oWmlSOGvksoousVEcUdFouLi5hXYsovwfVQpx//vS/SX/Yo2H1WiQEb9vRTyBAr2A/5e+JFtJNcQ6hNSEN87Aji+H8fn1MZg2H45c9bcr54uawhk7WkaBWFzgZyV9nPtP43d4SO2/f6/1DqKFPE2mhNOVEqxpxvbj8ycppu6T//qvvX4qNUNswGQ0ao6Y2Ayz/72I//8vVTU9cx0+6ieVrjor7yqxtvwBeR//MdQD9YyaTBzP2wnLpiqsBVpUslUPQhpb2uqh28jMxLnnNwAbdLbTFsb9O76QYAAA=';
  const base64img_ABEMA = 'UklGRpwBAABXRUJQVlA4IJABAABwCQCdASoYABgAAMASJaQATgD6QOnjPcfsmYrxwH960XL8Tde9/VfSUzbfKv+69wL+Jfy7+3flF+//K1/rcdznIkz7RRUx41gx6nWrL45smCO52AAA/v/+Tl744//DxlxbFwKsC+M2gw+i91P4cmECnH5hd+s/+nP4KqHO/9eo17R1bl/4397RP458opX/iq5BU2GWb1J6VkzcOl2g9pjilMv/v/fo2P4gZ/9DFtsURrLb3f0rN1PLsryND5tqemOHNLs1DX2fgSlI8z3//f/1MOmD2kU/X7Gx/J6cNy8xBXUSv/ZPMJ//WzRtSwLzk9jg8ShLIa3XY1ULH9vJNQLWjzH/94Gu0YiP5C+TVfElI2aqJt0bKbC++0sxCpU6Uimy1kfZ8Sfwcj7xeAf/1qp94H5bRyuVG73HBXh0hfeLbD47Gyj+cFkxIcg9MfdUpTUeFDfuey1MJ5qm+F8P8kwFQZByNoIGpcvI33LIPAXS2Tiy/mBe1RBidFPrVpmD/00+M9EMWqslV8zt08reAgAA';
  const base64img_YouTube = 'UklGRkwCAABXRUJQVlA4WAoAAAAQAAAAFwAAFwAAQUxQSKcAAAABgFzb1jHpK9u2XTWzlUaNGwl0Ej21zQTsmW3bto3XCCAiJgD9oySuRKHW6IzvDVqNSi7hkRHC2DIb+6aXN3b23+9trS1O9jVleXCi1odnwMdBdfLxGTY99xm4vAWqZwRqehFqfQlqdxlqbxFqaxxqvgOqtwiqIQUqQ9H3CPE0Y8Z6SwaW904urm8/vLo42VsZrk7gEaJL1QaHyx/+0Od0GNRSJgb9nwBWUDggfgEAANAIAJ0BKhgAGAAAwBIlsAJ0zNDmfjX4c8OEYR1wP6rtjv6zb1Vd0fsefrdXRqyBmGHOIZ48yYzKSOGnLar9CPUMYqkALFCaHHQPkX49ZQAA/u+kNP8o87+pv+W2z1pCzYzXqR3+pO9Zqxpv6N2n8BO+o7/lxv69++/Uf5cnjf/3qcADqofr8dH3St1UJdqov1RZ3yP8q8f7vQnYp+P4K4O0e/DTlimd//kFf6NJUTfN2bQj+6O3X+//ywxI//nML/9N6fdHnmMKnUyHTn1geVD6vGUD+7JGe2H/4Nf8JjnzhT+b3LtJ/sZW9mr5Qt9qu0TxYXs731FgY1ZYKcwjGYU3u60Yel4umPdIVgEXEq6/ZAO/zXjrwT/my/d2idBpQN0vLpST6YyRsT+/QFqRNwIJbTA7yzf6kor+VYDvp1TmF/+lEOJr4w9z+rdulh/lDnFQuueKPhnIYDiGxd/2fJDb9N307IJ7oTsvz5S9+Srj0UhsgOS0L5Mdc/wAAAA=';
  const base64img_BL='UklGRkQDAABXRUJQVlA4WAoAAAAQAAAAFwAAFwAAQUxQSAsBAAABkKtt2yFJNbZtO/RERmYrMw6grkmNeDode2adbWQdgm39/1+u//uiqroaRxAREyD4fNHk5ORkZ0WYXeXkRLTdK2olf2/Vhwv+Da8pvZ1gw0zTNA1dk7+LYbHnsmnQZTu0B/Vrc8I9BTl1OUmSrAGCdO0WeXH7g4qofnFvO/lE4qC8d+/xAVEBpCO3ZFnWgCuvG90ADgDIZfIi1w1Ezjkg6vQqzR3GGFMBNTrlDrkxvvpLR05vubUWmPlAQWAP3bq/tPPdQE7PbR6Joij2WQihOqBOFm2I9TNDR1N6mnpPQUfGwMoNlb2sSrijgCMjzEop2S33D5z9zhx/DbmsG6MlgiAIAXMuxw7B5wEAVlA4IBICAABwCwCdASoYABgAAMASJbACdMyXkCmAuwGhAdQB6AHlfexp+2X6Z+0zSgnquO5/e4sA4w/+8akn/Vekp/AeXf5b/z/uD/yL+m/4fgQP2AO6HZJcx3XLyoCFHl8SD3aFZ7NZvNjwAPzCk/+klZX+eM+aDU7DqCOf9JhNNXXklTW2YyTy5x9E+OWlgEw/t6x6SIwYeuH3Rcm4nhgoj+jzmboJ13X5wlNhFxpD9RVGm582Oa12/AHAPbLlr8hxzc6f6VBr9P6WFb5aXRfyx9H5bU3SrcuBd54O2dPxelEh/ofq/FofkapbPoJ7NzvK1Cbh1X/aGKY0GZ5b7P80pTB+7DZZ+Ej/d61zfebV/4pY9x+X8BJfznYnLg3/6gl/aP/OXoR4cp5lvZziQ2z/9xD/h0f3PP9XsYYB0iLz/0TP5udU/ZgcUTfG+f7TYTbC8fmPeoqiGk39gtUZZGpLrIuHLPl5JFCrOctPfMlIOKiL8/t58u1Yc2/40bXmzjyZ0TUcPO61b+/+Ul7I56d9Gkm/JdQQnBFw/vX+8a7fEw2IOuG9tbSktoURG9Rv8JhNIC7yGZ/5+9v+10hznTQWaTnp/J3+jyGJn/apj5vN+TsLy2sBahz1MLwmsn7a3HKtzMqxN0xdKBQQFcyDv7X/wxZ/8HaBA/jN079hgVbggSjbX/OipR41Ut3YaKrXy6u1PN6QEAAAAA==';
  const base64img_AnimeFesta='UklGRnQBAABXRUJQVlA4IGgBAABQBwCdASoYABgAAMASJZQAdpf5KtHQxzf6bLM2o06h7/M+hpnreW/YD/i/9E/1P9UMwfpazZZfBJ7UPvSMUBixk9cAAP7//iba+Tv8ED/kaI94YO2iq9cNz9/92e/km/HeeP6dorzXBWuk0fmDWDdh5T//ZCI9uRZMQXCejOxPMxXgsuAfeahYRd/Xv1K/3X+aKbDS6iyT1mjR/8dGsVjQN8gMhT3PllxTf1PppO/n+LG4ofWDECgaHv90FnJbr/G2klWNv3iisPCyRbaiyPBbQWqvpwMhKAXt6uX/RQgUXg/vuCJG7goSJhaf7ADv7//IMQipf/A+phxjO6NMFbm9FIi4nhHzgDHVKQbpBKljf7wfmMaLlRClC7nB+nQN0+WXFM+RIb74MvB165tWLntEL/Ex/iWP1c/nj0L7gezj4157h0QnWC53qIFJ/uogudJ//loo1jYNQx1/jjCy4qMI9E+6k/rAAAA=';
  const base64img_Ultra='iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAApklEQVR4AWKw4+VlJAaf0tXlBrRbBxoAg0AAhp9mYHTvGRDA3mUAAiC9RQ/RutyYcdXsRBx+sLlPONVqdM4wGAFsKTGdwZhNDMQTRABXykw+AOwKKvgGj1XB/lL/BsmoIA2zNNAx4TffABP9Y0uOC60bzDN6gknB5cE8G/QDpc5a+F4VxGXEyxMXt9XI4vfmfL/xGVD8xifQKaig6BNDFJRfi4lP/QuedM2wmSzR4QAAAABJRU5ErkJggg==';

    // 用於生成圖片元素的函數
function generateImageElement(base64img, altText) {
  return `<img src="data:image/webp;base64,${base64img}" alt="[${altText}]" style="width:12px; height:12px;vertical-align: text-top;">`;
}

// 用於嘗試從URL加載圖片,如果失敗則使用Base64圖片
function fetchImage(icoUrl, base64img, altText) {
  const img = new Image();
  img.src = icoUrl;
  img.alt = `[${altText}]`;
  img.style = 'width:12px; height:12px;vertical-align: text-top;';
  img.onerror = function () {
    img.src = `data:image/webp;base64,${base64img}`;
  };
  return img.outerHTML;
}

// 用於替換 圖片元素的HTML 字符串
const imageElement_Netflix = fetchImage(ico_Netflix, base64img_Netflix, "Netflix");
const imageElement_Disney = fetchImage(ico_Disney, base64img_Disney, "Disney+");
const imageElement_bilibili = fetchImage(ico_bilibili, base64img_bilibili, "bilibili");
const imageElement_ABEMA = fetchImage(ico_ABEMA, base64img_ABEMA, "ABEMA");
const imageElement_YouTube = fetchImage(ico_YouTube, base64img_YouTube, "YouTube");
const imageElement_AnimeFesta = fetchImage(ico_AnimeFesta, base64img_AnimeFesta, "AnimeFesta");
const imageElement_BL = generateImageElement(base64img_BL, "BL");
const imageElement_Ultra = generateImageElement(base64img_Ultra, "+Ultra");

// 定義替換函數,將文字替換為圖片
function replaceTextWithImage(text) {
  return text.replace(/\[Netflix\]/g, imageElement_Netflix)
    .replace(/\[Disney\+\]/g, imageElement_Disney)
    .replace(/\[bilibili\]/g, imageElement_bilibili)
    .replace(/\[ABEMA\]/g, imageElement_ABEMA)
    .replace(/\[YouTube\]/g, imageElement_YouTube)
    .replace(/\[BL\]/g, imageElement_BL)
    .replace(/\[AnimeFesta\]/g, imageElement_AnimeFesta)
    .replace(/\[\+Ultra\]/g, imageElement_Ultra);
}

  //適配不同的鏡像站
  const hostname = window.location.hostname;

  //クール季度,用於公告欄使用  冬01-03 春04-06 夏7-10 秋10-12 
  const kuru = '目前為2024秋季(10-12月)索引v1.1';

  // 從 localStorage 中讀取已存儲的 dmhyEntries 和 kuru
  let storedKuru = localStorage.getItem('LocalKuru');
  let dmhyEntries = JSON.parse(localStorage.getItem('dmhyEntries'));

  // 如果 storedKuru 和 kuru 不匹配,或沒有存儲的 dmhyEntries,則重新生成
  if (storedKuru !== kuru || !dmhyEntries) {

  // 定義要插入的多個連結的數組
  const dmhyEntries = [
{day:0, nameJP: '転生貴族、鑑定スキルで成り上がる 第2期', nameTW: '轉生貴族憑鑑定技能扭轉人生 第二季', nameCN:'转生贵族凭鑑定技能扭转人生 第二季', keyword: '轉生貴族憑鑑定技能扭轉人生' },
{day:0, nameJP: 'ぷにるんず ぷに2', nameTW: 'Punirunes 第二季', nameCN:'Punirunes 第二季', keyword: 'Punirunes' },
{day:0, nameJP: '七つの大罪 黙示録の四騎士 第2期', nameTW: '七大罪 啟示錄四騎士 第二季', nameCN:'七大罪 默示录的四骑士 第二季', keyword: '七大罪' },
{day:0, nameJP: 'ラブライブ!スーパースター!! 第3期', nameTW: 'LoveLive! SuperStar!! 第三季', nameCN:'LoveLive! SuperStar!! 第三季', keyword: 'LoveLive' },
{day:0, nameJP: '妻、小学生になる。', nameTW: '妻子變成小學生', nameCN:'妻子变成小学生', keyword: '妻子變成小學生' },
{day:0, nameJP: '村井の恋', nameTW: '村井之戀', nameCN:'村井之恋', keyword: '村井之戀' },
{day:0, nameJP: 'ぷにるはかわいいスライム', nameTW: '噗妮露是可愛史萊姆', nameCN:'噗妮露是可爱史莱姆', keyword: '可愛史萊姆' },
{day:0, nameJP: 'MFゴースト 2nd Season', nameTW: '燃油車鬥魂 第二季', nameCN:'极速车魂 第二季', keyword: '燃油車鬥魂|极速车魂|MF Ghost' },
{day:0, nameJP: '大正偽りブラヰダル~身代わり花嫁と軍服の猛愛', nameTW: '[AnimeFesta]大正虛假新娘- 替身新娘與軍人的猛烈熱愛', nameCN:'[AnimeFesta]大正虚假新娘- 替身新娘与军人的猛烈热爱', keyword: '大正 軍' },
{day:0, nameJP: 'サザエさん', nameTW: '▶️海螺小姐', nameCN:'▶️海螺小姐', keyword: '海螺小姐' },
{day:0, nameJP: 'ちびまる子ちゃん', nameTW: '▶️櫻桃小丸子', nameCN:'▶️樱桃小丸子', keyword: '樱桃小丸子' },
{day:0, nameJP: 'ワンピース ONE PIECE', nameTW: '▶️航海王', nameCN:'▶️海贼王', keyword: 'ONE PIECE' },
{day:0, nameJP: 'パズドラ', nameTW: '▶️龍族拼圖', nameCN:'▶️智龙迷城', keyword: '智龙迷城' },
{day:0, nameJP: '遊☆戯☆王ゴーラッシュ!!', nameTW: '▶️遊戲王GO RUSH!!', nameCN:'▶️游戏王GO RUSH!!', keyword: '遊戲王' },
{day:0, nameJP: 'キャプテン翼シーズン2 ジュニアユース編', nameTW: '隊長小翼 Season2 青少年篇', nameCN:'队长小翼 世少篇', keyword: '隊長小翼' },
{day:0, nameJP: 'わんだふるぷりきゅあ!', nameTW: '美妙寵物 光之美少女', nameCN:'美妙宠物 光之美少女', keyword: '美妙寵物 ' },
{day:0, nameJP: 'シンカリオン チェンジ ザ ワールド', nameTW: '新幹線變形機器人 Change the World', nameCN:'新干线变形机器人 改变世界', keyword: '新干线变形机器人' },
{day:0, nameJP: '神之塔 -Tower of God- 工房戦 (第2期)', nameTW: '神之塔 -Tower of God- 第二季(工房戦)', nameCN:'神之塔 第2期', keyword: 'Tower of God' },
{day:0, nameJP: 'シャングリラ・フロンティア 2nd season', nameTW: '香格里拉・開拓異境~糞作獵手挑戰神作~ 第二季', nameCN:'香格里拉・开拓异境~粪作猎手挑战神作~ 第二季', keyword: '香格里拉' },
{day:1, nameJP: 'ねこに転生したおじさん', nameTW: '轉生貓咪的大叔', nameCN:'转生猫咪的大叔', keyword: '轉生貓咪的大叔' },
{day:1, nameJP: 'ハイガクラ', nameTW: '尋神的旅途', nameCN:'寻神的旅途', keyword: '尋神的旅途' },
{day:1, nameJP: '鴨乃橋ロンの禁断推理 2nd Season', nameTW: '鴨乃橋論的禁忌推理 第二季', nameCN:'鸭乃桥论的禁忌推理', keyword: '鴨乃橋論的禁忌推理' },
{day:1, nameJP: '来世は他人がいい', nameTW: '唯願來世不相識', nameCN:'唯愿来世不相识', keyword: '来世' },
{day:1, nameJP: '最凶の支援職【話術士】である俺は世界最強クランを従える', nameTW: '最狂輔助職業【話術士】世界最強戰團聽我號令', nameCN:'最狂辅助职业【话术士】世界最强战团听我号令', keyword: '世界最強戰團聽我號令' },
{day:1, nameJP: '夏目友人帳 漆', nameTW: '夏目友人帳 第七季', nameCN:'夏目友人帐 第七季', keyword: '夏目友人帳' },
{day:1, nameJP: '精霊幻想記2', nameTW: '精靈幻想記 第二季', nameCN:'精灵幻想记 第二季', keyword: '精靈幻想記' },
{day:1, nameJP: '放課後少年花子くん(続編)', nameTW: '放學後少年花子君 續篇', nameCN:'放学后少年花子君 续篇', keyword: '放学后少年花子君' },
{day:1, nameJP: 'ありふれた職業で世界最強 season 3', nameTW: '平凡職業造就世界最強 第三季', nameCN:'平凡职业造就世界最强 第三季', keyword: '平凡職業造就世界最強 ' },
{day:1, nameJP: '忍たま乱太郎(第32期)', nameTW: '▶️忍者亂太郎', nameCN:'▶️忍者乱太郎', keyword: '忍者乱太郎' },
{day:1, nameJP: 'ひみつのアイプリ', nameTW: '秘密的偶像公主', nameCN:'秘密的偶像公主', keyword: '秘密的偶像公主' },
{day:2, nameJP: '嘆きの亡霊は引退したい', nameTW: '嘆氣的亡靈想隱退', nameCN:'叹气的亡灵想隐退', keyword: '嘆氣的亡靈想隱退' },
{day:2, nameJP: '甘神さんちの縁結び', nameTW: '結緣甘神神社', nameCN:'结缘甘神神社', keyword: '结缘甘神神社' },
{day:2, nameJP: '歴史に残る悪女になるぞ', nameTW: '成為名留歷史的壞女人吧 愈是想成為反派千金,王子的溺愛愈是熱烈!', nameCN:'成为名留历史的坏女人吧 愈是想成为反派千金,王子的溺爱愈是热烈!', keyword: '成為名留歷史的壞女人' },
{day:2, nameJP: '多数欠', nameTW: '多數欠', nameCN:'多数欠', keyword: '多数欠' },
{day:2, nameJP: '妖怪学校の先生はじめました!', nameTW: '妖怪學校的菜鳥老師!', nameCN:'妖怪学校的菜鸟老师!', keyword: '妖怪学校' },
{day:3, nameJP: 'アクロトリップ', nameTW: 'Acro Trip', nameCN:'Acro Trip', keyword: 'Acro Trip|アクロトリップ' },
{day:3, nameJP: 'Re:ゼロから始める異世界生活 3rd season 襲撃編(全8話) (反撃編於2025.02.05放送)', nameTW: '[ABEMA]Re:從零開始的異世界生活 第三季 (襲撃編)', nameCN:'[ABEMA]Re:从零开始的异世界生活 第三季 (袭撃编)', keyword: '從零開始的異世界生活' },
{day:3, nameJP: '新テニスの王子様 U-17 WORLD CUP SEMIFINAL', nameTW: '新網球王子 U-17 世界盃 SEMIFINAL', nameCN:'新网球王子 U-17 世界盃 SEMIFINAL', keyword: '网球王子' },
{day:3, nameJP: '[+Ultra]カミエラビ シーズン2完結編', nameTW: '[+Ultra]神選 第二季', nameCN:'[+Ultra]神选 第二季', keyword: '神选' },
{day:3, nameJP: '齢5000年の草食ドラゴン、いわれなき邪竜認定 season2', nameTW: '莫名成為邪龍的五千歲草食龍 第二季', nameCN:'莫名成为邪龙的五千岁草食龙 第二季', keyword: '邪龙' },
{day:3, nameJP: '百妖譜 第2期', nameTW: '[bilibili]百妖譜 第2期', nameCN:'[bilibili]百妖譜 第2期', keyword: '百妖譜' },
{day:3, nameJP: 'やり直し令嬢は竜帝陛下を攻略中', nameTW: '重啟人生的千金小姐正在攻略龍帝陛下', nameCN:'重启人生的千金小姐正在攻略龙帝陛下', keyword: '重启人生' },
{day:3, nameJP: 'Re:ゼロから始める異世界生活 3rd season 反撃編(全8話)', nameTW: '', nameCN:'', keyword: '' },
{day:3, nameJP: '戦国妖狐 千魔混沌編', nameTW: '戰國妖狐 千魔混沌編', nameCN:'战国妖狐 千魔混沌編', keyword: '戰國妖狐' },
{day:4, nameJP: 'ダンダダン', nameTW: '膽大黨', nameCN:'胆大党', keyword: '膽大黨' },
{day:4, nameJP: 'きのこいぬ', nameTW: '菇狗', nameCN:'菇狗', keyword: '菇狗' },
{day:4, nameJP: 'ネガポジアングラー', nameTW: 'Negative Positive Angler', nameCN:'Negative Positive Angler', keyword: 'Negative Positive Angler' },
{day:4, nameJP: '結婚するって、本当ですか', nameTW: '聽說你們要結婚!?', nameCN:'听说你们要结婚!?', keyword: '听说你们要结婚' },
{day:4, nameJP: 'アオのハコ', nameTW: '青春之箱', nameCN:'青春之箱', keyword: '青春之箱' },
{day:4, nameJP: 'ひとりぼっちの異世界攻略', nameTW: '孤單一人的異世界攻略', nameCN:'孤单一人的异世界攻略', keyword: '孤單一人的異世界攻略' },
{day:4, nameJP: 'メカウデ', nameTW: '機械手臂', nameCN:'机械手臂', keyword: '机械手臂' },
{day:4, nameJP: 'ハミダシクリエイティブ', nameTW: '常軌脫離Creative', nameCN:'常轨脱离Creative', keyword: '常轨脱离' },
{day:4, nameJP: 'トリリオンゲーム', nameTW: '一兆$遊戲', nameCN:'一兆$游戏', keyword: '一兆 游戏' },
{day:4, nameJP: '殿と犬', nameTW: '殿下與狗', nameCN:'殿下与狗', keyword: '殿下与狗' },
{day:4, nameJP: '星降る王国のニナ', nameTW: '星辰墜落之國的妮娜', nameCN:'星辰坠落之国的妮娜', keyword: '星辰坠落之国的妮娜' },
{day:4, nameJP: 'さようなら竜生、こんにちは人生', nameTW: '再見龍生,你好人生', nameCN:'再见龙生,你好人生', keyword: '再见龙生 你好人生' },
{day:4, nameJP: 'るろうに剣心 -明治剣客浪漫譚- 京都動乱', nameTW: '神劍闖江湖 ―明治劍客浪漫譚― 京都動亂', nameCN:'神剑闯江湖 ―明治剑客浪漫谭― 京都动乱', keyword: '神剑闯江湖' },
{day:5, nameJP: '監禁区域レベルX', nameTW: '監禁區域 Level X', nameCN:'监禁区域 Level X', keyword: '监禁区域' },
{day:5, nameJP: '魔法使いになれなかった女の子の話', nameTW: '當不成魔法師的女孩', nameCN:'当不成魔法师的女孩', keyword: '当不成魔法师的女孩' },
{day:5, nameJP: 'Duel Masters LOST ~追憶の水晶~', nameTW: '[YouTube]Duel Masters LOST ~追憶的水晶~', nameCN:'[YouTube]Duel Masters LOST ~追忆的水晶~', keyword: 'Duel Masters LOST' },
{day:5, nameJP: '百姓貴族 2nd Season', nameTW: '百姓貴族 第二季', nameCN:'百姓贵族 第二季', keyword: '百姓贵族 ' },
{day:5, nameJP: '株式会社マジルミエ', nameTW: '魔法光源股份有限公司', nameCN:'魔法光源股份有限公司', keyword: '魔法光源股份有限公司' },
{day:5, nameJP: 'ソードアート・オンライン オルタナティブ ガンゲイル・オンラインⅡ', nameTW: '刀劍神域外傳 Gun Gale Online 第二季', nameCN:'刀剑神域外传 Gun Gale Online 第二季', keyword: '刀剑神域外传' },
{day:5, nameJP: 'ダンジョンに出会いを求めるのは間違っているだろうかⅤ 豊穣の女神篇', nameTW: '在地下城尋求邂逅是否搞錯了什麼 第五季 (豐饒的女神篇)', nameCN:'在地下城寻求邂逅是否搞错了什麽 第五季 (丰饶的女神篇)', keyword: '在地下城尋求邂逅是否搞錯了什麼' },
{day:5, nameJP: 'アイドルマスター シャイニーカラーズ 2nd season', nameTW: '偶像大師 閃耀色彩 第二季', nameCN:'偶像大师 闪耀色彩 第二季', keyword: '偶像大师 ' },
{day:5, nameJP: '合コンに行ったら女がいなかった話', nameTW: '[BL]去參加聯誼,卻發現完全沒有女生在場', nameCN:'[BL]去参加联谊,却发现完全没有女生在场', keyword: '参加联谊' },
{day:5, nameJP: '凍牌~裏レート麻雀闘牌録~', nameTW: '凍牌', nameCN:'冻牌', keyword: '冻牌' },
{day:5, nameJP: 'ドラゴンボールDAIMA', nameTW: '七龍珠:DAIMA', nameCN:'七龙珠:DAIMA', keyword: '七龙珠' },
{day:5, nameJP: 'ポケットモンスター', nameTW: '▶️寶可夢 地平線', nameCN:'▶️宝可梦 地平线', keyword: '寶可夢' },
{day:5, nameJP: '2.5次元の誘惑(リリサ) ', nameTW: '2.5 次元的誘惑', nameCN:'2.5次元的诱惑', keyword: '次元的誘惑' },
{day:6, nameJP: 'クマーバ シーズン2', nameTW: 'Kumarba 第二季', nameCN:'Kumarba 第二季', keyword: 'Kumarba' },
{day:6, nameJP: 'SHIBUYA♡HACHI 第2クール', nameTW: 'SHIBUYA♡HACHI 後半', nameCN:'SHIBUYA♡HACHI 后半', keyword: 'SHIBUYA HACHI' },
{day:6, nameJP: 'オーイ!とんぼ 第2期', nameTW: '蜻蛉高球 第二季', nameCN:'蜻蛉高球 第二季', keyword: '蜻蛉高球' },
{day:6, nameJP: '科学×冒険サバイバル!', nameTW: '科學×冒險生存!', nameCN:'科学×冒险生存!', keyword: '科学 冒险生存' },
{day:6, nameJP: 'Thunderbolt Fantasy 東離劍遊紀4', nameTW: 'Thunderbolt Fantasy 東離劍遊紀 4', nameCN:'Thunderbolt Fantasy 东离剑游纪 4', keyword: 'Thunderbolt Fantasy|东离剑游纪' },
{day:6, nameJP: '魔王様、リトライ!R', nameTW: '[ABEMA]魔王大人、RETRY!R', nameCN:'[ABEMA]魔王大人、RETRY!R', keyword: '魔王大人 RETRY R' },
{day:6, nameJP: 'BLEACH 千年血戦篇-相剋譚-', nameTW: 'BLEACH 死神 千年血戰篇-相剋譚-', nameCN:'BLEACH 死神 千年血战篇-相剋谭-', keyword: 'BLEACH 死神' },
{day:6, nameJP: 'ブルーロック VS. U-20 JAPAN \n(全14話)', nameTW: '藍色監獄 第二季', nameCN:'蓝色监狱 第二季', keyword: '蓝色监狱' },
{day:6, nameJP: 'チ。―地球の運動について―', nameTW: '地。-關於地球的運動-', nameCN:'地。-关于地球的运动-', keyword: '地 关于地球的运动' },
{day:6, nameJP: '青の祓魔師 雪ノ果篇', nameTW: '青之驅魔師 雪之盡頭篇', nameCN:'青之驱魔师 雪之尽头篇', keyword: '青之驱魔师' },
{day:6, nameJP: 'らんま1/2 \n(TV放送完畢,由Netflix獨佔配信)', nameTW: '[Netflix]亂馬 1/2 新作動畫', nameCN:'[Netflix]乱马 1/2 新作动画', keyword: '乱马 1/2' },
{day:6, nameJP: '君は冥土様。', nameTW: '你是女僕大人。', nameCN:'你是女僕大人。', keyword: '你是女僕大人' },
{day:6, nameJP: 'パーティーから追放されたその治癒師、実は最強につき', nameTW: '被逐出隊伍的治癒師,其實是最強的', nameCN:'被逐出队伍的治癒师,其实是最强的', keyword: '被逐出队伍的治癒师' },
{day:6, nameJP: '魔王2099', nameTW: '魔王 2099', nameCN:'魔王 2099', keyword: '魔王 2099' },
{day:6, nameJP: '青のミブロ', nameTW: '青之壬生浪', nameCN:'青之壬生浪', keyword: '青之壬生浪' },
{day:6, nameJP: 'クレヨンしんちゃん', nameTW: '▶️蠟筆小新', nameCN:'▶️蜡笔小新', keyword: '蠟筆小新' },
{day:6, nameJP: '名探偵コナン', nameTW: '▶️名偵探柯南', nameCN:'▶️名侦探柯南', keyword: '名偵探柯南' },
{day:6, nameJP: 'ドラえもん', nameTW: '▶️哆啦A夢', nameCN:'▶️哆啦A梦', keyword: '哆啦A夢' },
{day:6, nameJP: 'ぼのぼの', nameTW: '▶️海獺波樂(暖暖日記)', nameCN:'▶️暖暖日记', keyword: '暖暖日記' },
{day:6, nameJP: '僕のヒーローアカデミア 第7期', nameTW: '我的英雄學院 第七季', nameCN:'我的英雄学院 第七季', keyword: '我的英雄學院' },
{day:6, nameJP: 'ニンジャラ', nameTW: '▶️泡泡糖忍戰', nameCN:'▶️泡泡糖忍战', keyword: '泡泡糖忍戰' },
{day:7, nameJP: '機動戦士ガンダム 復讐のレクイエム', nameTW: '[Netflix]機動戰士鋼彈:復仇的鎮魂曲', nameCN:'[Netflix]机动战士高达:復仇的鎮魂曲', keyword: '鋼彈|高达' },
{day:7, nameJP: 'ちびゴジラの逆襲 続編\n(一年放送)', nameTW: '[YouTube]小小哥吉拉的逆襲 續篇', nameCN:'[YouTube]小哥斯拉的逆袭 续篇', keyword: '小哥斯拉的逆袭' },
{day:7, nameJP: '魔法少女リリカルなのは The MOVIE (TV編集版)', nameTW: '魔法少女奈葉 Lyrical Selection (TV剪輯版)', nameCN:'魔法少女奈叶 Lyrical Selection (TV剪辑版)', keyword: '魔法少女奈叶 Lyrical Selection' },
{day:7, nameJP: 'ばなにゃ あらうんど ざ わーるど', nameTW: 'ばなにゃ あらうんど ざ わーるど', nameCN:'ばなにゃ あらうんど ざ わーるど', keyword: 'ばなにゃ あらうんど ざ わーるど' },
{day:7, nameJP: '夜は猫といっしょ 第3期 \n(2024/12放送)', nameTW: '今晚有貓伴身邊 第三季', nameCN:'今晚有猫伴身边 第三季', keyword: '今晚有猫伴身边' },
{day:7, nameJP: 'ケンガンアシュラ Season2 Part.1 \n(2023/09/21Netflix放送。2024/10 TV放送)', nameTW: '拳願阿修羅拳願阿修羅 第2季Part1', nameCN:'拳愿阿修罗拳愿阿修罗 第2季Part1', keyword: '拳愿阿修罗拳愿阿修罗 第2季Part1' },

  ];

    // 生成連結
    dmhyEntries.forEach(entry => {
        entry.link = `https://${hostname}/topics/list?keyword=${encodeURIComponent(entry.keyword)}`;
    });

    // 將新的 dmhyEntries 和 kuru 存儲到 localStorage
    localStorage.setItem('dmhyEntries', JSON.stringify(dmhyEntries));
    localStorage.setItem('LocalKuru',kuru);
}

console.log(dmhyEntries);
console.log(kuru);

  //畫表格
  const newRows = daysOfWeek.map((day, index) => {
    const newRow = document.createElement('tr');
    const newDay = document.createElement('th');
    newDay.innerText = `${day}`;
    const newAnimeList = document.createElement('td');

    // 判斷今天星期,並插入class內容 (*動漫花園提供的樣式)
    if (day === daysOfWeek[todayDay]) {
      newRow.classList.add('today');
    } else if (day === daysOfWeek[(todayDay + 1) % 7] || day === daysOfWeek[(todayDay + 6) % 7]) {
      newRow.classList.add('odd');
    } else {
      newRow.classList.add('even');
    }
    // 根據瀏覽器設定,顯示對應的翻譯(簡中,繁中)
    dmhyEntries.forEach(entry => {
      if (entry.day === index) {
        const newAnimeLink = document.createElement('a');
        newAnimeLink.href = entry.link;
        newAnimeLink.title = entry.nameJP;
        if (navigator.language.toLowerCase() === 'zh-cn') {
          newAnimeLink.innerHTML = replaceTextWithImage(entry.nameCN);
        } else {
          newAnimeLink.innerHTML = replaceTextWithImage(entry.nameTW);
        }
        newAnimeList.appendChild(newAnimeLink);
      }
    });

    newRow.appendChild(newDay);
    newRow.appendChild(newAnimeList);

    return newRow;
  });

  newRows.forEach(newRow => table.appendChild(newRow));

  //-----------------------------------------------------------
  //更改底下的滾動通知
  // 獲取 <marquee> 元素
  const marquee = document.getElementById('announce_marquee');

  // 確認 <marquee> 元素存在
  if (marquee) {
    // 替换 <marquee> 元素的内容
    const customText = '▶️常態放送  [Netflix]Netflix  [Disney+]Disney+  [ABEMA]ABEMA  [+Ultra]+Ultra  [bilibili]B8station日配版|*有索引≠有資源';
    const replacedText = replaceTextWithImage(customText);

    // 将 <marquee> 元素替换 <div> 元素,同時串接兩個字串
    const newDiv = document.createElement('div');
    newDiv.innerHTML = `${kuru} ${replacedText}`;

    // 将新 <div> 元素替换舊的 <marquee> 元素
    marquee.parentNode.replaceChild(newDiv, marquee);
  } else {
    console.log('未找到 id=announce_marquee 的 <marquee> 元素');
  }
  //-----------------------------------------------------------
})();