// ==UserScript== // @name Bangumi快捷播放 // @description 首页卡片显示中文标题,浮动卡片增加对应集数播放源(需手动添加网址格式) // @namespace https://github.com/RiverYale/Userscripts/ // @version 2.3 // @author RiverYale // @match *://bangumi.tv // @match *://bgm.tv // @match *://chii.in // @icon https://bangumi.tv/img/favicon.ico // @run-at document-end // @compatible chrome // @compatible edge // @license MIT License // @downloadURL none // ==/UserScript== /*================= 更新脚本前注意保存自己修改的内容! =================*/ var autoMark = true; // 默认点击链接后自动标记为看过 var authSrc = "AGE动漫"; // 若404则表明未更新资源,全部移除 var src_dict = { "AGE动漫": { // 网址格式,番剧ID: [资源ID, 总体集数偏移, [集数, 增加偏移]...] pattern: "https://www.agefans.vip/play/${id}?playid=${ch}_${ep}", 333853: [20210305, 2, 0], // 异世界食堂2 331535: [20210253, 2, 0], // 宿命回响 331887: [20210249, 2, -11, // 86-不存在的地域- [17.5, 0.5], [18, 0.5], [18.5, 0.5], [19, 0.5]], 322955: [20210258, 2, 0], // 白金终局 311759: [20200289, 2, 0], // 结城友奈是勇者~大满开之章~ 328313: [20210214, 2, 0], // 世界最强暗杀者转生成为异世界贵族 350764: [20210372, 2, 0], // 鬼灭之刃-无限列车篇 325585: [20210327, 2, -11], // 无职转生 ~在异世界认真地活下去~ 后半 319739: [20210135, 2, 0], // 因为不是真正的伙伴而被逐出勇者队伍,流落到边境展开慢活人生 296109: [20210169, 2, 0], // 国王排名 335036: [20210393, 4, 0], // 英雄联盟:双城之战 }, "bimi动漫": { pattern: "http://www.bimiacg2.net/bangumi/${id}/play/${ch}/${ep}/", 333853: [3661, 1, 0], // 异世界食堂2 331535: [3680, 1, 0], // 宿命回响 331887: [3665, 1, -11, // 86-不存在的地域- [17.5, 0.5], [18, 0.5], [18.5, 0.5], [19, 0.5]], 322955: [3712, 1, 0], // 白金终局 311759: [3662, 1, 0], // 结城友奈是勇者~大满开之章~ 328313: [3682, 1, 0], // 世界最强暗杀者转生成为异世界贵族 350764: [3703, 1, 0], // 鬼灭之刃-无限列车篇 325585: [3670, 1, -11], // 无职转生 ~在异世界认真地活下去~ 后半 319739: [3681, 1, 0], // 因为不是真正的伙伴而被逐出勇者队伍,流落到边境展开慢活人生 296109: [3710, 1, 0], // 国王排名 }, }; /*================= 更新脚本前注意保存自己修改的内容! =================*/ $(function(){ if($(".loginPanel").length == 1) { return; } /* 标题中日文对调 */ var titles = Array.from($(".tinyHeader .textTip:nth-child(even)")) .concat(Array.from($(".subjectItem.title.textTip"))) .concat(Array.from($(".l.textTip"))) titles.forEach(title => { var text = $(title).text(); $(title).text($(title).attr("data-original-title")); $(title).attr("data-original-title", text); }); if(titles.length == 0) { return; } /* 点击链接后是否自动标记为[看过] */ var _ul = $('
${type}
`); } if(status != 1) { var watched = $(statusLink).clone(true); $(watched).attr({href: `/subject/ep/${epid}/status/watched?gh=${gh}`, id: `Watched_${epid}`}); $(watched).text("看过") $(epStatusTool).append(watched); var watchedTill = $(statusLink).clone(true); $(watchedTill).attr({href: `/subject/ep/${epid}/status/watched?gh=${gh}`, id: `WatchedTill_${epid}`}); $(watchedTill).text("看到") $(epStatusTool).append(watchedTill); } if(status != 2) { var queue = $(statusLink).clone(true); $(queue).attr({href: `/subject/ep/${epid}/status/queue?gh=${gh}`, id: `Queue_${epid}`}); $(queue).text("想看") $(epStatusTool).append(queue); } if(status != 3) { var drop = $(statusLink).clone(true); $(drop).attr({href: `/subject/ep/${epid}/status/drop?gh=${gh}`, id: `Drop_${epid}`}); $(drop).text("抛弃") $(epStatusTool).append(drop); } if(status != 0) { var remove = $(statusLink).clone(true); $(remove).attr({href: `/subject/ep/${epid}/status/remove?gh=${gh}`, id: `remove_${epid}`}); $(remove).text("撤消") $(epStatusTool).append(remove); } } /* 修改进度后实时修改面板状态 */ var prgList = Array.from($("#subject_prg_content").children()); prgList.forEach(prg => { $(".epStatusTool a", prg).click((event) => { var type = event.currentTarget.innerText; if(type == '看到') { updataEpStatusTool(prg, "看过"); var offset = Number($(prg).attr("ep_offset")); var curI = $(prg).index(); for(let i=curI-offset; i