mirror of
https://github.com/the1812/Bilibili-Evolved.git
synced 2025-11-04 21:22:45 +08:00
Refactor SpinQuery
This commit is contained in:
parent
e86f479f54
commit
3770fc0346
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -776,7 +776,7 @@
|
||||
const panel = unsafeWindow.$(selector);
|
||||
if (panel.length === 0)
|
||||
{
|
||||
throw new Error(`Panel not found:${selector}`);
|
||||
throw new Error(`Panel not found: ${selector}`);
|
||||
}
|
||||
panel.mouseover().mouseout();
|
||||
}
|
||||
|
||||
@ -776,7 +776,7 @@
|
||||
const panel = unsafeWindow.$(selector);
|
||||
if (panel.length === 0)
|
||||
{
|
||||
throw new Error(`Panel not found:${selector}`);
|
||||
throw new Error(`Panel not found: ${selector}`);
|
||||
}
|
||||
panel.mouseover().mouseout();
|
||||
}
|
||||
|
||||
2
min/combo-like.min.js
vendored
2
min/combo-like.min.js
vendored
@ -1 +1 @@
|
||||
(()=>{return(e,t)=>{(async()=>{const e=await SpinQuery.select(()=>document.querySelector(".ops span.like"));e.style.userSelect="none";function t(t,n){const s=new CustomEvent(t,n);e.dispatchEvent(s)}const n=200;let s=true;e.addEventListener("touchstart",e=>{e.preventDefault();s=true;setTimeout(()=>s=false,n);t("mousedown",e)});e.addEventListener("touchend",e=>{e.preventDefault();t("mouseup",e);if(s===true){t("click",e)}})})()}})();
|
||||
(()=>{return(e,t)=>{(async()=>{const e=await SpinQuery.select(()=>document.querySelector(".ops span.like"));if(!e){return}e.style.userSelect="none";function t(t,n){const u=new CustomEvent(t,n);e.dispatchEvent(u)}const n=200;let u=true;e.addEventListener("touchstart",e=>{e.preventDefault();u=true;setTimeout(()=>u=false,n);t("mousedown",e)});e.addEventListener("touchend",e=>{e.preventDefault();t("mouseup",e);if(u===true){t("click",e)}})})()}})();
|
||||
2
min/default-danmaku-settings.min.js
vendored
2
min/default-danmaku-settings.min.js
vendored
@ -1 +1 @@
|
||||
(()=>{return(e,n)=>{async function t(e,n){const t=await SpinQuery.select(()=>document.querySelector(e));if(!t){return}t.checked=n;raiseEvent(t,"change")}const i={enableDanmaku:".bilibili-player-video-danmaku-switch>input",settingsIcon:".bilibili-player-video-danmaku-setting"};if(!e.enableDanmaku){t(i.enableDanmaku,false)}if(e.rememberDanmakuBlock){for(const n in e.danmakuBlockSettings){i[n]=`.bilibili-player-block-filter-type[ftype=${n}]`}async function a(){await SpinQuery.unsafeJquery();const n=await SpinQuery.any(()=>unsafeWindow.$(i.settingsIcon));n.mouseover().mouseout();for(const[n,t]of Object.entries(e.danmakuBlockSettings)){if(t===true){const e=await SpinQuery.select(()=>document.querySelector(i[n]));e.click()}}}async function c(){for(const n in e.danmakuBlockSettings){const t=await SpinQuery.select(()=>document.querySelector(i[n]));t.addEventListener("click",()=>{e.danmakuBlockSettings[n]=t.classList.contains("disabled");saveSettings(e)})}}a();c()}}})();
|
||||
(()=>{return(e,n)=>{async function t(e,n){const t=await SpinQuery.select(()=>document.querySelector(e));if(!t){return}t.checked=n;raiseEvent(t,"change")}const i={enableDanmaku:".bilibili-player-video-danmaku-switch>input",settingsIcon:".bilibili-player-video-danmaku-setting"};if(!e.enableDanmaku){t(i.enableDanmaku,false)}if(e.rememberDanmakuBlock){for(const n in e.danmakuBlockSettings){i[n]=`.bilibili-player-block-filter-type[ftype=${n}]`}async function a(){await SpinQuery.unsafeJquery();const n=await SpinQuery.any(()=>unsafeWindow.$(i.settingsIcon));if(!n){return}n.mouseover().mouseout();for(const[n,t]of Object.entries(e.danmakuBlockSettings)){if(t===true){const e=await SpinQuery.select(()=>document.querySelector(i[n]));e.click()}}}async function c(){for(const n in e.danmakuBlockSettings){const t=await SpinQuery.select(()=>document.querySelector(i[n]));if(!t){return}t.addEventListener("click",()=>{e.danmakuBlockSettings[n]=t.classList.contains("disabled");saveSettings(e)})}}a();c()}}})();
|
||||
2
min/default-player-mode.min.js
vendored
2
min/default-player-mode.min.js
vendored
@ -1 +1 @@
|
||||
(()=>{return(e,i)=>{const n=[{name:"常规",action:()=>{}},{name:"宽屏",action:()=>{$(".bilibili-player-video-btn-widescreen").click()}},{name:"网页全屏",action:()=>{$(".bilibili-player-video-web-fullscreen").click()}}];let l=()=>{};async function t(){if(e.autoLightOff){await SpinQuery.unsafeJquery();const e=await SpinQuery.any(()=>unsafeWindow.$(".bilibili-player-video-btn-setting"));e.mouseover().mouseout();l=(()=>{SpinQuery.any(()=>$(".bilibili-player-video-btn-setting-panel-others-content-lightoff .bui-checkbox-input"),e=>{const i=e[0];i.checked=true;raiseEvent(i,"change")})})}}async function a(){await t();await SpinQuery.condition(()=>$(".bilibili-player-video,.bilibili-player-video-btn-start,.bilibili-player-area"),e=>e.length===3&&$("video").length>0&&$("video").prop("duration"));const i=document.querySelector("video");if(i.length===0){return}const a=n.find(i=>i.name===e.defaultPlayerMode);if(a.name==="全屏"){const e=await SpinQuery.unsafeJquery();const i=document.querySelector(".bilibili-player-video-btn-start");const n=()=>{const l=e(".bilibili-player-video-btn-fullscreen").data("events");if(l.click&&l.click[0]&&l.click[0].handler){const i=e(".bilibili-player-video-btn-fullscreen").data("events").click[0].handler;console.log(i);i()}i.removeEventListener("click",n)};i.addEventListener("click",n)}else{const n=()=>{if(a&&$("#bilibiliPlayer[class*=mode-]").length===0){a.action()}l();if(e.applyPlayerModeOnPlay){i.removeEventListener("play",n)}};if(e.applyPlayerModeOnPlay){i.addEventListener("play",n)}else{n()}}}Observer.childList("#bofqi",()=>a())}})();
|
||||
(()=>{return(e,i)=>{const n=[{name:"常规",action:()=>{}},{name:"宽屏",action:()=>{$(".bilibili-player-video-btn-widescreen").click()}},{name:"网页全屏",action:()=>{$(".bilibili-player-video-web-fullscreen").click()}}];let t=()=>{};async function l(){if(e.autoLightOff){await SpinQuery.unsafeJquery();const e=await SpinQuery.any(()=>unsafeWindow.$(".bilibili-player-video-btn-setting"));if(!e){return}e.mouseover().mouseout();t=(()=>{SpinQuery.any(()=>$(".bilibili-player-video-btn-setting-panel-others-content-lightoff .bui-checkbox-input"),e=>{const i=e[0];i.checked=true;raiseEvent(i,"change")})})}}async function a(){await l();await SpinQuery.condition(()=>$(".bilibili-player-video,.bilibili-player-video-btn-start,.bilibili-player-area"),e=>e.length===3&&$("video").length>0&&$("video").prop("duration"));const i=document.querySelector("video");if(!i){return}const a=n.find(i=>i.name===e.defaultPlayerMode);if(a.name==="全屏"){const e=await SpinQuery.unsafeJquery();const i=document.querySelector(".bilibili-player-video-btn-start");const n=()=>{const t=e(".bilibili-player-video-btn-fullscreen").data("events");if(t.click&&t.click[0]&&t.click[0].handler){const i=e(".bilibili-player-video-btn-fullscreen").data("events").click[0].handler;console.log(i);i()}i.removeEventListener("click",n)};i.addEventListener("click",n)}else{const n=()=>{if(a&&$("#bilibiliPlayer[class*=mode-]").length===0){a.action()}t();if(e.applyPlayerModeOnPlay){i.removeEventListener("play",n)}};if(e.applyPlayerModeOnPlay){i.addEventListener("play",n)}else{n()}}}Observer.childList("#bofqi",()=>a())}})();
|
||||
2
min/default-video-quality.min.js
vendored
2
min/default-video-quality.min.js
vendored
@ -1 +1 @@
|
||||
(()=>{return(e,a)=>{const t=[{name:"1080P60",value:116},{name:"1080P+",value:112},{name:"1080P",value:80},{name:"720P60",value:74},{name:"720P",value:64},{name:"480P",value:32},{name:"360P",value:15},{name:"自动",value:0}];async function i(){const a=await SpinQuery.any(()=>$(".bilibili-player-video-quality-menu .bui-select-list>li.bui-select-item"));const i=(e,a)=>a-e;const[n]=a.toArray().map(e=>parseInt(e.getAttribute("data-value"))).sort(i);const[l]=t.filter(a=>a.name===e.defaultVideoQuality).map(e=>e.value).sort(i);const[o]=t.map(e=>e.value).filter(e=>e<=Math.min(l,n)).sort(i);console.info(`[Video Quality] availableHighestQualities=${n}`);console.info(`[Video Quality] targetQuality=${l}`);console.info(`[Video Quality] finalQuality=${o}`);const u=await SpinQuery.condition(()=>document.querySelector("video"),e=>e);function s(){a.each((e,a)=>{if(parseInt(a.getAttribute("data-value"))===o){a.click()}});this.removeEventListener("play",s)}u.addEventListener("play",s)}Observer.childList("#bofqi",()=>i())}})();
|
||||
(()=>{return(e,a)=>{const t=[{name:"1080P60",value:116},{name:"1080P+",value:112},{name:"1080P",value:80},{name:"720P60",value:74},{name:"720P",value:64},{name:"480P",value:32},{name:"360P",value:15},{name:"自动",value:0}];async function i(){const a=await SpinQuery.any(()=>$(".bilibili-player-video-quality-menu .bui-select-list>li.bui-select-item"));if(!a){return}const i=(e,a)=>a-e;const[l]=a.toArray().map(e=>parseInt(e.getAttribute("data-value"))).sort(i);const[n]=t.filter(a=>a.name===e.defaultVideoQuality).map(e=>e.value).sort(i);const[u]=t.map(e=>e.value).filter(e=>e<=Math.min(n,l)).sort(i);console.info(`[Video Quality] availableHighestQualities=${l}`);console.info(`[Video Quality] targetQuality=${n}`);console.info(`[Video Quality] finalQuality=${u}`);const o=await SpinQuery.select(()=>document.querySelector("video"));function s(){a.each((e,a)=>{if(parseInt(a.getAttribute("data-value"))===u){a.click()}});this.removeEventListener("play",s)}o.addEventListener("play",s)}Observer.childList("#bofqi",()=>i())}})();
|
||||
2
min/download-danmaku.min.js
vendored
2
min/download-danmaku.min.js
vendored
@ -1 +1 @@
|
||||
(()=>{return(e,t)=>{const{DanmakuInfo:n}=t.import("videoInfo");const{DanmakuConverter:i}=t.import("danmakuConverter");async function o(e,t){const o=document.title.replace("_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili","").replace("_番剧_bilibili_哔哩哔哩","");const a=new n((unsafeWindow||window).cid);await a.fetchInfo();const l=await(async()=>{if(t===true){let e={};try{await loadLazyPanel(".bilibili-player-video-danmaku-setting");const t=e=>{const t=parseFloat(document.querySelector(e).style.transform.replace(/translateX\(([\d\.]+)/,"$1"));const n={0:0,44:1,94:2,144:3,188:4}[t];return n};e.font=document.querySelector(".bilibili-player-video-danmaku-setting-right-font .bui-select-result").innerText;e.alpha=parseFloat(document.querySelector(".bilibili-player-setting-opacity .bui-bar").style.transform.replace(/scaleX\(([\d\.]+)\)/,"$1"));e.duration=(()=>{const e=[10,8,6,4,2][t(".bilibili-player-setting-speedplus .bui-thumb")];return t=>{switch(t.type){case 4:case 5:return 4;default:return e}}})();e.blockTypes=(()=>{let e=[];const t={".bilibili-player-block-filter-type[ftype=scroll]":[1,2,3],".bilibili-player-block-filter-type[ftype=top]":[5],".bilibili-player-block-filter-type[ftype=bottom]":[4],".bilibili-player-block-filter-type[ftype=color]":["color"],".bilibili-player-block-filter-type[ftype=special]":[7,8]};for(const[n,i]of Object.entries(t)){if(document.querySelector(n).classList.contains("disabled")){e=e.concat(i)}}return e})();const n=[1.4,1.2,1,.8,.6][t(".bilibili-player-setting-fontsize .bui-thumb")];e.resolution={x:1920*n,y:1080*n};e.bottomMarginPercent=[.75,.5,.25,.15,.15][t(".bilibili-player-setting-area .bui-thumb")];e.bold=document.querySelector(".bilibili-player-video-danmaku-setting-right-font-bold input").checked}catch(t){e={font:"微软雅黑",alpha:.6,duration:e=>{switch(e.type){case 4:case 5:return 4;default:return 6}},blockTypes:[],resolution:{x:1920,y:1080},bottomMarginPercent:.15,bold:false}}const t=new i(e);const n=t.convertToAssDocument(a.rawXML);return new Blob([n.generateAss()],{type:"text/plain"})}else{return new Blob([a.rawXML],{type:"text/plain"})}})();const r=URL.createObjectURL(l);const c=$("#danmaku-link");const s=c.attr("href");if(s){URL.revokeObjectURL(s)}clearTimeout(e);document.querySelector("#download-danmaku>span").innerHTML="下载弹幕";c.attr("download",`${o}.${t?"ass":"xml"}`).attr("href",r).get(0).click()}return{widget:{content:`\n <button\n class="gui-settings-flat-button"\n id="download-danmaku">\n <i class="icon-danmaku"></i>\n <span>下载弹幕</span>\n <a id="danmaku-link" style="display:none"></a>\n </button>`,condition:async()=>{let e=await SpinQuery.condition(()=>(unsafeWindow||window).cid,e=>e!==undefined);return e!==undefined},success:()=>{const e=document.querySelector("#danmaku-link");$("#download-danmaku").on("click",t=>{if(t.target!==e){const e=setTimeout(()=>document.querySelector("#download-danmaku>span").innerHTML="请稍侯...",200);o(e,t.shiftKey)}})}}}}})();
|
||||
(()=>{return(e,t)=>{const{DanmakuInfo:n}=t.import("videoInfo");const{DanmakuConverter:i}=t.import("danmakuConverter");async function o(e,t){const o=document.title.replace("_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili","").replace("_番剧_bilibili_哔哩哔哩","");const a=new n((unsafeWindow||window).cid);await a.fetchInfo();const l=await(async()=>{if(t===true){let e={};try{await loadLazyPanel(".bilibili-player-video-danmaku-setting");const t=e=>{const t=parseFloat(document.querySelector(e).style.transform.replace(/translateX\(([\d\.]+)/,"$1"));const n={0:0,44:1,94:2,144:3,188:4}[t];return n};e.font=document.querySelector(".bilibili-player-video-danmaku-setting-right-font .bui-select-result").innerText;e.alpha=parseFloat(document.querySelector(".bilibili-player-setting-opacity .bui-bar").style.transform.replace(/scaleX\(([\d\.]+)\)/,"$1"));e.duration=(()=>{const e=[10,8,6,4,2][t(".bilibili-player-setting-speedplus .bui-thumb")];return t=>{switch(t.type){case 4:case 5:return 4;default:return e}}})();e.blockTypes=(()=>{let e=[];const t={".bilibili-player-block-filter-type[ftype=scroll]":[1,2,3],".bilibili-player-block-filter-type[ftype=top]":[5],".bilibili-player-block-filter-type[ftype=bottom]":[4],".bilibili-player-block-filter-type[ftype=color]":["color"],".bilibili-player-block-filter-type[ftype=special]":[7,8]};for(const[n,i]of Object.entries(t)){if(document.querySelector(n).classList.contains("disabled")){e=e.concat(i)}}return e})();const n=[1.4,1.2,1,.8,.6][t(".bilibili-player-setting-fontsize .bui-thumb")];e.resolution={x:1920*n,y:1080*n};e.bottomMarginPercent=[.75,.5,.25,.15,.15][t(".bilibili-player-setting-area .bui-thumb")];e.bold=document.querySelector(".bilibili-player-video-danmaku-setting-right-font-bold input").checked}catch(t){e={font:"微软雅黑",alpha:.6,duration:e=>{switch(e.type){case 4:case 5:return 4;default:return 6}},blockTypes:[],resolution:{x:1920,y:1080},bottomMarginPercent:.15,bold:false}}const t=new i(e);const n=t.convertToAssDocument(a.rawXML);return new Blob([n.generateAss()],{type:"text/plain"})}else{return new Blob([a.rawXML],{type:"text/plain"})}})();const r=URL.createObjectURL(l);const c=$("#danmaku-link");const s=c.attr("href");if(s){URL.revokeObjectURL(s)}clearTimeout(e);document.querySelector("#download-danmaku>span").innerHTML="下载弹幕";c.attr("download",`${o}.${t?"ass":"xml"}`).attr("href",r).get(0).click()}return{widget:{content:`\n <button\n class="gui-settings-flat-button"\n id="download-danmaku">\n <i class="icon-danmaku"></i>\n <span>下载弹幕</span>\n <a id="danmaku-link" style="display:none"></a>\n </button>`,condition:async()=>{let e=await SpinQuery.select(()=>(unsafeWindow||window).cid);return e!==undefined},success:()=>{const e=document.querySelector("#danmaku-link");$("#download-danmaku").on("click",t=>{if(t.target!==e){const e=setTimeout(()=>document.querySelector("#download-danmaku>span").innerHTML="请稍侯...",200);o(e,t.shiftKey)}})}}}}})();
|
||||
2
min/download-video.min.js
vendored
2
min/download-video.min.js
vendored
File diff suppressed because one or more lines are too long
2
min/view-cover.min.js
vendored
2
min/view-cover.min.js
vendored
@ -1 +1 @@
|
||||
(()=>{return(e,n)=>{const t=n.attributes.videoInfo.export.VideoInfo;class i{constructor(e){this.url=e;if($(".image-viewer").length===0){this.createDom()}this.viewer=$(".image-viewer-container");this.downloadImage()}createDom(){$("body").append(n.data.imageViewerDom.text);$(".image-viewer-container .close").on("click",()=>this.hide());n.applyStyle("imageViewerStyle")}downloadImage(){const e=new XMLHttpRequest;e.open("GET",this.url.replace("http:","https:"),true);e.responseType="blob";e.onload=(()=>{const n=document.title.replace("_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili","").replace("_番剧_bilibili_哔哩哔哩","");const t=URL.createObjectURL(e.response);this.imageData=t;this.viewer.find(".download").attr("href",t).attr("download",n);this.viewer.find(".image").prop("src",t)});e.send()}show(){this.viewer.addClass("opened")}hide(){this.viewer.removeClass("opened")}}if($("meta[itemprop='image'],meta[property='og:image']").length>0){return{widget:{content:`\n <button\n class="gui-settings-flat-button"\n id="view-cover">\n <i class="icon-view"></i>\n <span>查看封面</span>\n </button>`,condition:async()=>{const e=await SpinQuery.condition(()=>(unsafeWindow||window).aid,e=>e!==undefined);return e!=="undefined"},success:async()=>{async function e(){const e=(unsafeWindow||window).aid;const n=new t(e);await n.fetchInfo();return n.coverUrl}let n=new i(await e());$("#view-cover").on("click",()=>{n.show()});Observer.childList("#bofqi",async()=>{n=new i(await e())})}}}}else{return{widget:{content:`\n <button\n class="gui-settings-flat-button"\n id="view-cover">\n <i class="icon-view"></i>\n <span>查看封面</span>\n </button>`,condition:async()=>{const e=await SpinQuery.any(()=>$(".header-info-ctnr .room-cover"));return typeof e!=="undefined"},success:async()=>{const e=$(".header-info-ctnr .room-cover");const n=e.attr("href").match(/space\.bilibili\.com\/([\d]+)/);if(n&&n[1]){const e=n[1];const t=`https://api.live.bilibili.com/room/v1/Room/getRoomInfoOld?mid=${e}`;const o=await downloadText(t);const a=JSON.parse(o).data.cover;const s=new i(a);$("#view-cover").on("click",()=>{s.show()})}}}}}}})();
|
||||
(()=>{return(e,t)=>{const n=t.attributes.videoInfo.export.VideoInfo;class i{constructor(e){this.url=e;if($(".image-viewer").length===0){this.createDom()}this.viewer=$(".image-viewer-container");this.downloadImage()}createDom(){$("body").append(t.data.imageViewerDom.text);$(".image-viewer-container .close").on("click",()=>this.hide());t.applyStyle("imageViewerStyle")}downloadImage(){const e=new XMLHttpRequest;e.open("GET",this.url.replace("http:","https:"),true);e.responseType="blob";e.onload=(()=>{const t=document.title.replace("_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili","").replace("_番剧_bilibili_哔哩哔哩","");const n=URL.createObjectURL(e.response);this.imageData=n;this.viewer.find(".download").attr("href",n).attr("download",t);this.viewer.find(".image").prop("src",n)});e.send()}show(){this.viewer.addClass("opened")}hide(){this.viewer.removeClass("opened")}}if($("meta[itemprop='image'],meta[property='og:image']").length>0){return{widget:{content:`\n <button\n class="gui-settings-flat-button"\n id="view-cover">\n <i class="icon-view"></i>\n <span>查看封面</span>\n </button>`,condition:async()=>{const e=await SpinQuery.select(()=>(unsafeWindow||window).aid);return Boolean(e)},success:async()=>{async function e(){const e=(unsafeWindow||window).aid;const t=new n(e);await t.fetchInfo();return t.coverUrl}let t=new i(await e());$("#view-cover").on("click",()=>{t.show()});Observer.childList("#bofqi",async()=>{t=new i(await e())})}}}}else{return{widget:{content:`\n <button\n class="gui-settings-flat-button"\n id="view-cover">\n <i class="icon-view"></i>\n <span>查看封面</span>\n </button>`,condition:async()=>{const e=await SpinQuery.select(()=>document.querySelector(".header-info-ctnr .room-cover"));return Boolean(e)},success:async()=>{const e=$(".header-info-ctnr .room-cover");const t=e.attr("href").match(/space\.bilibili\.com\/([\d]+)/);if(t&&t[1]){const e=t[1];const n=`https://api.live.bilibili.com/room/v1/Room/getRoomInfoOld?mid=${e}`;const o=await downloadText(n);const s=JSON.parse(o).data.cover;const a=new i(s);$("#view-cover").on("click",()=>{a.show()})}}}}}}})();
|
||||
@ -5,6 +5,10 @@
|
||||
(async () =>
|
||||
{
|
||||
const likeButton = await SpinQuery.select(() => document.querySelector(".ops span.like"));
|
||||
if (!likeButton)
|
||||
{
|
||||
return;
|
||||
}
|
||||
likeButton.style.userSelect = "none";
|
||||
function mountEvent(name, args)
|
||||
{
|
||||
|
||||
@ -30,6 +30,10 @@
|
||||
{
|
||||
await SpinQuery.unsafeJquery();
|
||||
const settingsIcon = await SpinQuery.any(() => unsafeWindow.$(selectors.settingsIcon));
|
||||
if (!settingsIcon)
|
||||
{
|
||||
return;
|
||||
}
|
||||
settingsIcon.mouseover().mouseout();
|
||||
|
||||
for (const [type, value] of Object.entries(settings.danmakuBlockSettings))
|
||||
@ -45,7 +49,11 @@
|
||||
{
|
||||
for (const type in settings.danmakuBlockSettings)
|
||||
{
|
||||
const element = await SpinQuery.select(() =>document.querySelector(selectors[type]));
|
||||
const element = await SpinQuery.select(() => document.querySelector(selectors[type]));
|
||||
if (!element)
|
||||
{
|
||||
return;
|
||||
}
|
||||
element.addEventListener("click", () =>
|
||||
{
|
||||
settings.danmakuBlockSettings[type] = element.classList.contains("disabled");
|
||||
|
||||
@ -32,6 +32,10 @@
|
||||
{
|
||||
await SpinQuery.unsafeJquery();
|
||||
const settingsButton = await SpinQuery.any(() => unsafeWindow.$(".bilibili-player-video-btn-setting"));
|
||||
if (!settingsButton)
|
||||
{
|
||||
return;
|
||||
}
|
||||
settingsButton.mouseover().mouseout();
|
||||
lightOff = () =>
|
||||
{
|
||||
@ -55,7 +59,7 @@
|
||||
it => it.length === 3 && $("video").length > 0 && $("video").prop("duration"));
|
||||
|
||||
const video = document.querySelector("video");
|
||||
if (video.length === 0)
|
||||
if (!video)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
@ -41,6 +41,10 @@
|
||||
const qualityItems = await SpinQuery.any(
|
||||
() => $(".bilibili-player-video-quality-menu .bui-select-list>li.bui-select-item"),
|
||||
);
|
||||
if (!qualityItems)
|
||||
{
|
||||
return;
|
||||
}
|
||||
const descendingOrder = (a, b) => b - a;
|
||||
const [availableHighestQualities] = qualityItems.toArray()
|
||||
.map(it => parseInt(it.getAttribute("data-value")))
|
||||
@ -57,7 +61,7 @@
|
||||
console.info(`[Video Quality] availableHighestQualities=${availableHighestQualities}`);
|
||||
console.info(`[Video Quality] targetQuality=${targetQuality}`);
|
||||
console.info(`[Video Quality] finalQuality=${finalQuality}`);
|
||||
const video = await SpinQuery.condition(() => document.querySelector("video"), it => it);
|
||||
const video = await SpinQuery.select(() => document.querySelector("video"));
|
||||
function onplay()
|
||||
{
|
||||
qualityItems.each((_, it) =>
|
||||
|
||||
@ -137,10 +137,7 @@
|
||||
</button>`,
|
||||
condition: async () =>
|
||||
{
|
||||
let cid = await SpinQuery.condition(
|
||||
() => (unsafeWindow || window).cid,
|
||||
it => it !== undefined,
|
||||
);
|
||||
let cid = await SpinQuery.select(() => (unsafeWindow || window).cid);
|
||||
return cid !== undefined;
|
||||
},
|
||||
success: () =>
|
||||
|
||||
@ -2,17 +2,11 @@
|
||||
{
|
||||
return (_, resources) =>
|
||||
{
|
||||
// const VideoInfo = resources.attributes.videoInfo.export.VideoInfo;
|
||||
// const BangumiInfo = resources.attributes.videoInfo.export.BangumiInfo;
|
||||
const pageData = {
|
||||
entity: null,
|
||||
aid: undefined,
|
||||
cid: undefined,
|
||||
};
|
||||
|
||||
// const bangumiUrls = [];
|
||||
// let ajaxHooked = false;
|
||||
|
||||
class Video
|
||||
{
|
||||
constructor()
|
||||
@ -64,21 +58,6 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
// class Bangumi extends Video
|
||||
// {
|
||||
// constructor()
|
||||
// {
|
||||
// super();
|
||||
// this.menuClasses = ["action", "progress"];
|
||||
// this.currentMenuClass = "action";
|
||||
// }
|
||||
// async getUrl()
|
||||
// {
|
||||
// const url = await SpinQuery.select(() => bangumiUrls[0])
|
||||
// .catch(() => logError("获取番剧下载链接失败."));
|
||||
// return url;
|
||||
// }
|
||||
// }
|
||||
class Bangumi extends Video
|
||||
{
|
||||
async getUrl(quality)
|
||||
@ -357,7 +336,7 @@
|
||||
{
|
||||
pageData.entity = new Video();
|
||||
}
|
||||
return aid !== undefined && cid !== undefined;
|
||||
return Boolean(aid && cid);
|
||||
}
|
||||
async function loadWidget()
|
||||
{
|
||||
|
||||
@ -2,18 +2,6 @@
|
||||
{
|
||||
return (settings, resources) =>
|
||||
{
|
||||
// (async () =>
|
||||
// {
|
||||
// const expandButton = await SpinQuery.condition(
|
||||
// () => document.querySelector(".video-desc .btn"),
|
||||
// it => it.innerText.indexOf("展开更多") !== -1,
|
||||
// );
|
||||
// if (!expandButton)
|
||||
// {
|
||||
// return;
|
||||
// }
|
||||
// expandButton.click();
|
||||
// })();
|
||||
resources.applyStyle("expandDescriptionStyle");
|
||||
};
|
||||
})();
|
||||
@ -66,11 +66,8 @@
|
||||
</button>`,
|
||||
condition: async () =>
|
||||
{
|
||||
const aid = await SpinQuery.condition(
|
||||
() => (unsafeWindow || window).aid,
|
||||
it => it !== undefined,
|
||||
);
|
||||
return aid !== "undefined";
|
||||
const aid = await SpinQuery.select(() => (unsafeWindow || window).aid);
|
||||
return Boolean(aid);
|
||||
},
|
||||
success: async () =>
|
||||
{
|
||||
@ -107,8 +104,8 @@
|
||||
</button>`,
|
||||
condition: async () =>
|
||||
{
|
||||
const coverLink = await SpinQuery.any(() => $(".header-info-ctnr .room-cover"));
|
||||
return typeof coverLink !== "undefined";
|
||||
const coverLink = await SpinQuery.select(() => document.querySelector(".header-info-ctnr .room-cover"));
|
||||
return Boolean(coverLink);
|
||||
},
|
||||
success: async () =>
|
||||
{
|
||||
|
||||
Loading…
Reference in New Issue
Block a user