Refactor SpinQuery

This commit is contained in:
the1812 2019-01-26 15:56:47 +08:00
parent e86f479f54
commit 3770fc0346
19 changed files with 56 additions and 75 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -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();
}

View File

@ -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();
}

View File

@ -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)}})})()}})();

View File

@ -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()}}})();

View File

@ -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())}})();

View File

@ -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())}})();

View File

@ -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)}})}}}}})();

File diff suppressed because one or more lines are too long

View File

@ -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()})}}}}}}})();

View File

@ -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)
{

View File

@ -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");

View File

@ -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;
}

View File

@ -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) =>

View File

@ -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: () =>

View File

@ -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()
{

View File

@ -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");
};
})();

View File

@ -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 () =>
{