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

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

目前為 2024-07-17 提交的版本,檢視 最新版本

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

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

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name         DMHY新番資源索引 修正(GreasyFork版)
// @namespace    https://github.com/rinsaika/dmhy-
// @version      3.202407v2.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';
  // 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=';

    // 用於生成圖片元素的函數
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");

// 定義替換函數,將文字替換為圖片
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);
}

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

  //クール季度,用於公告欄使用
  const kuru = '目前為2024夏季(7~9月)索引v2.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: '遊☆戯☆王ゴーラッシュ!!', nameTW: '▶️遊戲王GO RUSH!!', nameCN:'▶️游戏王GO RUSH!!', keyword: '遊戲王' },
{day:0, nameJP: 'わんだふるぷりきゅあ!', nameTW: '美妙寵物 光之美少女', nameCN:'美妙宠物 光之美少女', keyword: '美妙寵物 ' },
{day:0, nameJP: 'シンカリオン チェンジ ザ ワールド', nameTW: '新幹線變形機器人 Change the World', nameCN:'新干线变形机器人 改变世界', keyword: '新干线变形机器人' },
{day:0, nameJP: 'ワンピース ONE PIECE', nameTW: '▶️航海王', nameCN:'▶️海贼王', keyword: 'ONE PIECE' },
{day:0, nameJP: '杖と剣のウィストリア', nameTW: '杖與劍的魔劍譚', nameCN:'杖与剑的魔剑谭', keyword: '杖與劍的魔劍譚' },
{day:0, nameJP: '夜桜さんちの大作戦', nameTW: '夜櫻家大作戰', nameCN:'夜樱家的大作战', keyword: '夜櫻家的大作戰' },
{day:0, nameJP: 'FAIRY TAIL 100年クエスト', nameTW: 'FAIRY TAIL 魔導少年 百年任務', nameCN:'妖精的尾巴 百年任务', keyword: 'FAIRY TAIL' },
{day:0, nameJP: 'キャプテン翼シーズン2 ジュニアユース編', nameTW: '隊長小翼 Season2 青少年篇', nameCN:'队长小翼 世少篇', keyword: '隊長小翼' },
{day:0, nameJP: 'ちびまる子ちゃん', nameTW: '▶️櫻桃小丸子', nameCN:'▶️樱桃小丸子', keyword: '樱桃小丸子' },
{day:0, nameJP: 'パズドラ', nameTW: '▶️龍族拼圖', nameCN:'▶️智龙迷城', keyword: '智龙迷城' },
{day:0, nameJP: 'サザエさん', nameTW: '▶️海螺小姐', nameCN:'▶️海螺小姐', keyword: '海螺小姐' },
{day:0, nameJP: '神之塔 -Tower of God- 王子の帰還 (第2期)', nameTW: '神之塔 -Tower of God- 第二季', nameCN:'神之塔 第2期', keyword: 'Tower of God' },
{day:0, nameJP: 'キン肉マン 完璧超人始祖編', nameTW: '金肉人 完美超人始祖篇', nameCN:'金肉人 完美超人始祖篇', keyword: '金肉人' },
{day:0, nameJP: 'しかのこのこのここしたんたん', nameTW: '鹿乃子乃子乃子虎視眈眈', nameCN:'鹿乃子乃子虎视眈眈', keyword: '鹿乃子' },
{day:0, nameJP: '菜なれ花なれ', nameTW: '少女如草花綻放', nameCN:'变成菜变成花', keyword: 'Na Nare Hana Nare' },
{day:0, nameJP: 'VTuberなんだが配信切り忘れたら伝説になってた', nameTW: '身為 VTuber 的我因為忘記關台而成了傳說', nameCN:'身为VTuber的我因为忘记关台而成了传说', keyword: '因為忘記關台而成了傳說' },
{day:0, nameJP: '異世界ゆるり紀行 ~子育てしながら冒険者します~', nameTW: '異世界悠閒紀行~邊養娃邊當冒險者~', nameCN:'异世界悠闲纪行~边养娃边当冒险者~', keyword: '悠閒紀行' },
{day:0, nameJP: '闇芝居 第十三期', nameTW: '闇芝居 第十三期', nameCN:'闇芝居 第十三期', keyword: '闇芝居' },
{day:0, nameJP: 'よあそびぐらしっ!', nameTW: '([AnimeFesta])夜晚玩耍生活!', nameCN:'([AnimeFesta])夜晚玩耍生活!', keyword: '夜晚玩耍生活' },
{day:1, nameJP: 'ひみつのアイプリ', nameTW: '秘密的偶像公主', nameCN:'秘密的偶像公主', keyword: '秘密的偶像公主' },
{day:1, nameJP: '忍たま乱太郎(第32期)', nameTW: '▶️忍者亂太郎', nameCN:'▶️忍者乱太郎', keyword: '忍者乱太郎' },
{day:1, nameJP: '真夜中ぱんチ', nameTW: '深夜 PUNCH', nameCN:'深夜重拳', keyword: '深夜 PUNCH|深夜重拳' },
{day:1, nameJP: 'SHY 東京奪還編 (第2期)', nameTW: 'SHY 靦腆英雄 第二季', nameCN:'腼腆英雄 东京夺还篇 (第2期)', keyword: 'SHY' },
{day:1, nameJP: '狼と香辛料 MERCHANT MEETS THE WISE WOLF', nameTW: '狼與辛香料 MERCHANT MEETS THE WISE WOLF', nameCN:'狼与香辛料 行商邂逅贤狼', keyword: '狼與香辛料' },
{day:1, nameJP: '新米オッサン冒険者、最強パーティに死ぬほど鍛えられて無敵になる。', nameTW: '新人大叔冒險者,被最強隊伍操到死成無敵', nameCN:'新人大叔冒险者,被最强队伍操到死成无敌', keyword: '新人大叔冒險者' },
{day:2, nameJP: 'エグミレガシー', nameTW: '哎咕島消失的舔甜歌姬', nameCN:'哎咕岛消失的舔甜歌姬', keyword: 'EGUMI LEGACY' },
{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: '魔王軍最強的魔術師是人類', nameCN:'魔王军最强的魔术师是人类', keyword: '魔王軍最強的魔術師是人類' },
{day:3, nameJP: '【推しの子】第2期', nameTW: '【我推的孩子】第二季', nameCN:'我推的孩子 第二季', keyword: '我推的孩子' },
{day:3, nameJP: '時々ボソッとロシア語でデレる隣のアーリャさん', nameTW: '不時輕聲地以俄語遮羞的鄰座艾莉同學', nameCN:'不时轻声地以俄语遮羞的邻座艾莉同学', keyword: '不時輕聲地以俄語遮羞的鄰座艾莉同學' },
{day:3, nameJP: '恋は双子で割り切れない', nameTW: '雙生戀情密不可分', nameCN:'无法割舍恋情的双胞胎', keyword: '雙生戀情密不可分|恋爱没法用双子除尽' },
{day:3, nameJP: '戦国妖狐 千魔混沌編', nameTW: '戰國妖狐 千魔混沌編', nameCN:'战国妖狐 千魔混沌編', keyword: '戰國妖狐' },
{day:3, nameJP: 'デリコズ・ナーサリー (八月放送)', nameTW: 'Delicos・Nursery', nameCN:'Delicos・Nursery', keyword: 'Delicos' },
{day:3, nameJP: 'キミと僕の最後の戦場、あるいは世界が始まる聖戦 Season II', nameTW: '這是妳與我的最後戰場,或是開創世界的聖戰 第二季', nameCN:'你与我最后的战场,亦或是世界起始的圣战 第2季', keyword: '最後的戰場' },
{day:4, nameJP: '義妹生活', nameTW: '義妹生活', nameCN:'义妹生活', keyword: '義妹生活' },
{day:4, nameJP: '黄昏アウトフォーカス', nameTW: '[BL]黃昏光影', nameCN:'[BL]黄昏光影', keyword: '黃昏光影' },
{day:4, nameJP: 'ラーメン赤猫', nameTW: '拉麵赤貓', nameCN:'拉面赤猫', keyword: '拉麵赤貓' },
{day:4, nameJP: '俺は全てを【パリイ】する~逆勘違いの世界最強は冒険者になりたい~', nameTW: '我要【招架】一切~反誤解的世界最強想成為冒險家~', nameCN:'我要招架一切反误解的世界最强想成为冒险者', keyword: '反誤解的世界最強' },
{day:4, nameJP: '女神のカフェテラス 第2期', nameTW: '女神咖啡廳 第二季', nameCN:'女神咖啡厅 第2季', keyword: '女神咖啡廳|露天咖啡厅' },
{day:4, nameJP: '疑似ハーレム', nameTW: '模擬後宮體驗', nameCN:'百变的七仓同学', keyword: '模擬後宮|七仓同学' },
{day:4, nameJP: '先輩はおとこのこ', nameTW: '學姊是男孩', nameCN:'前辈是伪娘', keyword: '學姊是男孩|前辈是伪娘' },
{day:4, nameJP: 'ハズレ枠の【状態異常スキル】で最強になった俺がすべてを蹂躙するまで', nameTW: '靠廢柴技能【狀態異常】成為最強的我將蹂躪一切', nameCN:'靠废柴技能【状态异常】成为最强的我将蹂躏一切', keyword: '靠廢柴技能' },
{day:5, nameJP: 'まぁるい彼女と残念な彼氏', nameTW: '圓圓女友與殘念男友', nameCN:'圆圆女友与残念男友', keyword: '女友與殘念' },
{day:5, nameJP: 'ポケットモンスター', nameTW: '▶️寶可夢 地平線', nameCN:'▶️宝可梦 地平线', keyword: '寶可夢' },
{day:5, nameJP: '2.5次元の誘惑(リリサ) ', nameTW: '2.5 次元的誘惑', nameCN:'2.5次元的诱惑', keyword: '次元的誘惑' },
{day:5, nameJP: '転生したらスライムだった件 第3期', nameTW: '關於我轉生變成史萊姆這檔事 第三季', nameCN:'关于我转生变成史莱姆这档事 第三季', keyword: '關於我轉生變成史萊姆這檔事' },
{day:5, nameJP: 'NieR:Automata Ver1.1a 第2クール', nameTW: '尼爾:自動人形 Ver1.1a 第二季', nameCN:'尼尔:自动人形 Ver1.1a 第二季', keyword: '尼爾' },
{day:5, nameJP: 'ばいばい、アース', nameTW: '掰掰、地球', nameCN:'再见,地球', keyword: '地球' },
{day:5, nameJP: '異世界スーサイド・スクワッド', nameTW: '異世界自殺突擊隊', nameCN:'异世界自杀小队', keyword: '異世界自殺' },
{day:5, nameJP: 'グレンダイザーU', nameTW: '金剛戰神 U', nameCN:'古连泰沙U', keyword: '古连泰沙U' },
{day:5, nameJP: 'ダンジョンの中のひと', nameTW: '地下城中的人', nameCN:'地下城中的人', keyword: '地下城中的人' },
{day:5, nameJP: '未来の黒幕系悪役令嬢モリアーティーの異世界完全犯罪白書', nameTW: '未來的幕後黑手惡役千金莫裏亞蒂的異世界完全犯罪白書', nameCN:'未来的幕后黑手恶役千金莫里亚蒂的异世界完全犯罪白书', keyword: '未來的幕後黑手' },
{day:5, nameJP: 'この世界は不完全すぎる', nameTW: '這個世界漏洞百出', nameCN:'这个世界漏洞百出', keyword: '這個世界' },
{day:5, nameJP: 'デッドデッドデーモンズデデデデデストラクション', nameTW: 'DDDD 惡魔的破壞 (TV版)', nameCN:'这个世界漏洞百出', keyword: '恶魔的破坏|DDDD' },
{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: '僕のヒーローアカデミア 第7期', nameTW: '我的英雄學院 第七季', nameCN:'我的英雄学院 第七季', keyword: '我的英雄學院' },
{day:6, nameJP: '名探偵コナン', nameTW: '▶️名偵探柯南', nameCN:'▶️名侦探柯南', keyword: '名偵探柯南' },
{day:6, nameJP: '魔導具師ダリヤはうつむかない', nameTW: '魔導具師妲莉亞永不妥協', nameCN:'魔导具师妲莉亚永不妥协', keyword: '魔導具師妲莉亞永不妥協' },
{day:6, nameJP: 'モブから始まる探索英雄譚', nameTW: '[ABEMA]從路人角色開始的探索英雄譚', nameCN:'[ABEMA]从路人角色开始的探索英雄谭', keyword: '探索英雄譚' },
{day:6, nameJP: 'なぜ僕の世界を誰も覚えていないのか?', nameTW: '為何我的世界被遺忘了?', nameCN:'为何无人记得我的世界?', keyword: '為何 我的世界' },
{day:6, nameJP: '天穂のサクナヒメ', nameTW: '天穗之咲稻姬', nameCN:'天穗之咲稻姬', keyword: '天穗之咲稻姬' },
{day:6, nameJP: '逃げ上手の若君', nameTW: '擅長逃跑的殿下', nameCN:'擅长逃跑的殿下', keyword: '擅長逃跑的殿下' },
{day:6, nameJP: 'カードファイト!! ヴァンガード Divinez Season2', nameTW: '卡片戰鬥!! 先導者 Divinez 第二季', nameCN:'卡片战斗!! 先导者 Divinez 第二季', keyword: '卡片战斗' },
{day:6, nameJP: '烏は主を選ばない', nameTW: '烏鴉不擇主', nameCN:'乌鸦不择主', keyword: '烏鴉不擇主' },
{day:6, nameJP: 'ATRI -My Dear Moments-', nameTW: 'ATRI-My Dear Moments-', nameCN:'亚托莉 -我挚爱的时光-', keyword: 'ATRI' },
{day:6, nameJP: '負けヒロインが多すぎる!', nameTW: '敗北女角太多了!', nameCN:'败北女角太多了!', keyword: '敗北女角太多了|敗犬女主角' },
{day:6, nameJP: 'ザ・ファブル (播到夏季結束)', nameTW: '殺手寓言', nameCN:'杀手寓言', keyword: '殺手寓言' },
{day:6, nameJP: '現代誤訳', nameTW: '現代誤譯', nameCN:'现代误译', keyword: '現代誤譯' },
{day:6, nameJP: 'エルフさんは痩せられない。', nameTW: '精靈小姐瘦不了', nameCN:'精灵小姐瘦不了', keyword: '精靈小姐' },
{day:6, nameJP: '小市民シリーズ', nameTW: '小市民系列', nameCN:'小市民系列', keyword: '小市民系列' },
{day:6, nameJP: '〈物語〉シリーズ オフ&モンスターシーズン', nameTW: '[ABEMA]物語系列 第外季 & 第怪季', nameCN:'[ABEMA]物语系列 外传季&怪物季', keyword: '物语系列' },
{day:7, nameJP: 'JOCHUM(ジェオチャム)', nameTW: 'JOCHUM', nameCN:'JOCHUM', keyword: 'JOCHUM' },
{day:7, nameJP: '貼りまわれ!こいぬ 第2期', nameTW: '四處貼上吧!小狗 第二季', nameCN:'四处贴上吧!小狗 第二季', keyword: '四處貼上吧' },
{day:7, nameJP: 'ちびゴジラの逆襲 続編(一年放送)', nameTW: '[YouTube]小小哥吉拉的逆襲 續篇', nameCN:'[YouTube]小哥斯拉的逆袭 续篇', keyword: '小哥斯拉的逆袭' },
{day:7, nameJP: 'ウルトラマンアーク', nameTW: '[特攝]超人力霸王雅克', nameCN:'[特攝]亚刻奥特曼', keyword: '超人力|奥特曼' },
{day:7, nameJP: 'ライジングインパクト シーズン1', nameTW: '[Netflix]高爾夫物語 第一季', nameCN:'[Netflix]高尔夫物语 第一季', keyword: '高爾夫物語' },
{day:7, nameJP: 'T・Pぼん シーズン2', nameTW: '[Netflix]T·P 時光特警 第二季', nameCN:'[Netflix]时光巡逻队 第二季', keyword: '時光特警|时光巡逻队' },
{day:7, nameJP: 'こねこのチー ポンポンらー夏休み', nameTW: '[Netflix]奇奇暑假日記', nameCN:'[Netflix]奇奇暑假日记', keyword: '奇奇暑假日記' },
{day:7, nameJP: 'ライジングインパクト シーズン2', nameTW: '[Netflix]高爾夫物語 第二季', nameCN:'[Netflix]高尔夫物语 第二季', keyword: '高爾夫物語' },
{day:7, nameJP: '君に届け 3RD SEASON (八月放送)', nameTW: '[Netflix]只想告訴你 3RD SEASON', nameCN:'[Netflix]只想告诉你 3RD SEASON', keyword: '只想告诉你 ' },
{day:7, nameJP: 'ケンガンアシュラ Season2 Part2 (八月放送)', nameTW: '[Netflix]拳願阿修羅 Season2 Part2', nameCN:'[Netflix]拳愿阿修罗 Season2 Part2', keyword: '拳願阿修羅' },
{day:7, nameJP: '0歳児スタートダッシュ物語', nameTW: '[ABEMA]0歲兒童起跑線故事', nameCN:'[ABEMA]0岁儿童起跑线故事', keyword: '0歲兒童起跑線故事' },
{day:7, nameJP: 'ユーチューニャー', nameTW: '[YouTube]YouTuNya', nameCN:'[YouTube]YouTu猫 新作动画', keyword: 'YouTu猫' },
{day:7, nameJP: 'あたしンちNEXT (*6月~10月 每月5日 共5話)', nameTW: '[YouTube]我們這一家NEXT', nameCN:'[YouTube]我們這一家NEXT', keyword: '我們這一家' },
{day:7, nameJP: 'NINJA KAMUI (2024年2月11日美國放送,2024/07/01日本放送)', nameTW: 'NINJA KAMUI', nameCN:'忍者神威', keyword: 'NINJA KAMUI' },
{day:7, nameJP: '下の階には澪がいる', nameTW: '[bilibili]愛上姐姐的理由', nameCN:'[bilibili]爱上她的理由', keyword: '爱上她的理由' },
{day:7, nameJP: '[BL]山川純一アニメ劇場 (共三話)', nameTW: '[AnimeFesta][BL]山川純一動畫劇場', nameCN:'[AnimeFesta][BL]山川純一動畫劇場', keyword: '山川純一' },
{day:7, nameJP: '伊藤潤二『マニアック』 (2023年1月19日Netflix放送,2024/07/07電視台放送)', nameTW: '伊藤潤二狂熱:日本恐怖故事', nameCN:'伊藤润二狂热:日本恐怖故事', keyword: '伊藤潤二' },
{day:7, nameJP: 'ターミネーター 0 (八月放送)', nameTW: '[Netflix]Terminator Zero', nameCN:'[Netflix]Terminator Zero', keyword: 'Terminator Zero' },

  ];

    // 生成連結
    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獨佔  [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> 元素');
  }
  //-----------------------------------------------------------
})();