Bilibili-Evolved/registry/dist/components/video/danmaku/expand.js
2022-11-19 22:05:20 +08:00

1 line
2.3 KiB
JavaScript

!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["video/danmaku/expand"]=t():e["video/danmaku/expand"]=t()}(globalThis,(()=>(()=>{"use strict";var e={d:(t,o)=>{for(var a in o)e.o(o,a)&&!e.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:o[a]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},t={};e.d(t,{component:()=>p});const o=coreApis.componentApis.define,a=coreApis.observer,n=coreApis.spinQuery,i=coreApis.utils,s=coreApis.utils.log,r=coreApis.utils.urls,l=e=>{if(!e)return null;const t=parseInt(e[0]);return Number.isNaN(t)?null:t},d=async()=>{const e=((await(0,n.select)(".bilibili-player-video-info-danmaku-number"))?.textContent??"").match(/\d+/);return l(e)},c=async()=>{const e=await(0,n.select)(".bpx-player-video-info-dm");await(0,n.sq)((()=>dq(".bpx-player-video-info-online b")),(e=>e&&"-"!==e.textContent));const t=(e?.textContent??"").match(/\d+/);return l(t)},p=(0,o.defineComponentMetadata)({name:"expandDanmakuList",displayName:"展开弹幕列表",entry:async e=>{let{settings:{options:t}}=e;const o=(0,s.useScopedConsole)("展开弹幕列表");(0,a.videoChange)((async()=>{if(r.mediaListUrls.some((e=>(0,i.matchUrlPattern)(e)))&&t.ignoreMediaList)return;const e=await Promise.race([d(),c()]);if(o.log(`当前弹幕量: ${e}`),null!==e&&e>t.maxDanmakuCount)return void o.log(`超过了最大弹幕数量 ${t.maxDanmakuCount}, 跳过展开`);const a=await(0,n.select)(".bui-collapse-wrap");if(dq(".multi-page-v1, .base-video-sections-v1")&&t.ignoreWithEpisodes)o.log("检测到选集, 跳过展开");else if(a&&a.classList.contains("bui-collapse-wrap-folded")){(await(0,n.select)(".bui-collapse-header"))?.click()}}))},tags:[componentsTags.video],description:{"zh-CN":"每次加载视频时自动展开弹幕列表, 如果弹幕装载量超过 `最大弹幕数量`, 则不展开以免对页面造成卡顿."},options:{ignoreMediaList:{defaultValue:!0,displayName:"合集类页面不自动展开"},ignoreWithEpisodes:{defaultValue:!0,displayName:"有选集时不自动展开"},maxDanmakuCount:{defaultValue:500,displayName:"最大弹幕数量"}},urlInclude:[...r.videoAndBangumiUrls,...r.mediaListUrls],commitHash:"fd37f297fdb2985b25a97e154e00dd39090a4da2",coreVersion:"2.5.2"});return t=t.component})()));