Greasy Fork is available in English.

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

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

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

  // 從 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> 元素');
  }
  //-----------------------------------------------------------
})();