From ff9c80d92fced1b7146d51cfb64f9ae4ca746ca7 Mon Sep 17 00:00:00 2001 From: the1812 Date: Wed, 2 Jan 2019 21:32:45 +0800 Subject: [PATCH] Add touch combo like --- bilibili-evolved.offline.user.js | 23 +-- bilibili-evolved.preview-offline.user.js | 23 +-- bilibili-evolved.preview.user.js | 16 +- bilibili-evolved.user.js | 16 +- min/combo-like.min.js | 2 +- min/gui-settings.min.html | 2 +- touch/combo-like.js | 35 ++++ utils/combo-like/combo-like.css | 24 --- utils/combo-like/combo-like.js | 198 ----------------------- utils/gui-settings/gui-settings.html | 3 +- version.txt | 2 +- 11 files changed, 57 insertions(+), 287 deletions(-) create mode 100644 touch/combo-like.js delete mode 100644 utils/combo-like/combo-like.css delete mode 100644 utils/combo-like/combo-like.js diff --git a/bilibili-evolved.offline.user.js b/bilibili-evolved.offline.user.js index f221ee9df..ad1d344f2 100644 --- a/bilibili-evolved.offline.user.js +++ b/bilibili-evolved.offline.user.js @@ -1,6 +1,6 @@ // ==UserScript== // @name Bilibili Evolved (Offline) -// @version 169.22 +// @version 170.24 // @description 增强哔哩哔哩Web端体验(离线版): 修复界面瑕疵, 删除广告, 使用夜间模式浏览; 下载视频,封面,弹幕, 以及增加对触屏设备的支持等. // @author Grant Howard, Coulomb-G // @copyright 2018, Grant Howrad (https://github.com/the1812) @@ -70,6 +70,7 @@ }, defaultPlayerLayout: "新版", skipChargeList: false, + comboLike: false, autoLightOff: false, useCache: true, autoContinue: false, @@ -78,18 +79,14 @@ }; const fixedSettings = { guiSettings: true, - comboLike: false, - doubleCoins: false, viewCover: true, notifyNewVersion: true, clearCache: true, - fixFullscreen: false, downloadVideo: true, downloadDanmaku: true, useDefaultPlayerMode: true, useDefaultPlayerLayout: true, about: false, - blurSettingsPanel: false, latestVersionLink: "https://github.com/the1812/Bilibili-Evolved/raw/master/bilibili-evolved.offline.user.js", currentVersion: GM_info.script.version, }; @@ -541,17 +538,10 @@ items: ["1080P60", "1080P+", "1080P", "720P60", "720P", "480P", "360P", "自动"], }, }, - comboLikeStyle: { - path: "min/combo-like.min.css", - }, comboLike: { path: "min/combo-like.min.js", - styles: [ - "comboLikeStyle", - ], displayNames: { - comboLike: "启用素质三连", - doubleCoins: "为原创视频投2个币" + comboLike: "素质三连触摸支持", }, }, autoContinue: { @@ -1057,10 +1047,10 @@ offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/m offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/blur-video-control.min.css"] = `@supports (backdrop-filter: blur(48px)) or (-webkit-backdrop-filter: blur(48px)){.video-control-blur-layer{width:100%;height:100%;position:absolute;-webkit-backdrop-filter:blur(48px);backdrop-filter:blur(48px);z-index:-1;top:0;}.bilibili-player-video-control-mask{background:transparent!important;}.bilibili-player-video-control-bottom,.bui-slider .bui-track.bui-track-video-progress .bui-bar-wrap{background-color:transparent!important;}.bilibili-player-video-control-bottom{position:relative;}.bilibili-player-area .bilibili-player-video-control-wrap,.bilibili-player-area .bilibili-player-video-control-bottom{transition:none!important;}}`; offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/force-wide.min.css"] = `@media screen and (min-width: 1300px){.bili-wrapper{width:1160px;}.bili-wrapper .l-con{width:900px;}.bili-header-m .bili-wrapper{width:1160px;}.bili-header-m .bili-wrapper .l-con{width:900px;}.gg-floor-module{width:1160px;max-height:96px;}.bangumi-timing-module .headline .bili-tab{width:650px;}.bangumi-timing-module .headline .bili-tab .bili-tab-item{width:70px;}.bangumi-timing-module .card-timing:first-child:nth-child(4),.bangumi-timing-module .card-timing:nth-child(2):nth-child(4),.bangumi-timing-module .card-timing:nth-child(3):nth-child(4),.bangumi-timing-module .card-timing:nth-child(4):nth-child(4){padding-top:0;}.bangumi-timing-module .card-timing{padding:36px 34px 0 0;}.audio-list .song-list .song-li:nth-child(5n) .content .text{margin-right:0;}.audiolist-list .song-list .song-li:nth-child(5n) .content .text{margin-right:0;}.elevator-module{margin-left:590px;}#primary_menu,#primary_menu>ul.nav-menu,.uns_box li.u-i.b-post{display:flex;align-items:center;justify-content:space-between;}.primary-menu{width:100%;}.primary-menu .nav-menu{flex-grow:1;}.primary-menu .nav-gif{position:static;margin-left:2%;}.primary-menu .nav-menu>li{margin-right:0!important;}.primary-menu .nav-menu>li.home{padding-right:1%;}}`; offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/download-video.min.css"] = `.download-video-panel.opened{transform:scaleY(1);}.download-video-panel{position:absolute;top:calc(100% + 2px);transition:all .16s ease-out;transform-origin:top;transform:scaleY(0);background:white;box-shadow:0px 3px 20px 2px #0004;z-index:100;}ol.video-quality li,.video-action>div{cursor:pointer;align-items:center;margin:0;padding:8px 16px;transition:all .2s ease-out;text-align:center;}.video-action>div{padding:12px 24px;}ol.video-quality li:hover,.video-action>div:hover{background:rgba(0,0,0,0.16);}.video-quality,.video-progress,.video-action,.video-error{display:none;}.download-video-panel.quality:not(.error) .video-quality,.download-video-panel.progress:not(.error) .video-progress,.download-video-panel.action:not(.error) .video-action,.download-video-panel.error .video-error{display:block;}.download-progress-text{display:flex;}.download-progress-background{background-color:#8884;height:4px;width:100%;margin-top:4px;}.download-progress-foreground{background-color:var(--theme-color);transform-origin:left;transition:all .2s ease-out;transform:scaleX(0);height:100%;width:100%;}.download-progress-cancel{margin-top:8px;display:flex;justify-content:center;}.download-progress-cancel>span{background-color:#8884;padding:4px 8px;cursor:pointer;}.download-progress-cancel>span:hover{opacity:.9;}.download-progress-cancel>span:active{opacity:.8;}.video-error,.video-progress{padding:12px;}.video-progress{min-width:120px;}#video-complete{display:none;}`; -offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/gui-settings.min.html"] = `
附加功能
设置
    视频样式
  • 工具触摸其他
`; +offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/gui-settings.min.html"] = `
附加功能
设置
    视频样式
  • 工具触摸其他
`; offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/image-viewer.min.html"] = `
`; offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/download-video.min.html"] = `
下载视频
`; -offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/version.txt"] = `1.6.26`; +offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/version.txt"] = `1.6.27`; offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/icons.min.css"] = `.icons-enabled [class^=icon-]{width:24px;height:24px;display:inline-block;background-image:none;}.icons-enabled [class^=icon-]::after{content:"";width:24px;height:24px;display:inline-block;}.icons-enabled .icon-view::after{background-image:url('data:image/svg+xml;utf-8,');}.icons-enabled .icon-clear::after{background-image:url('data:image/svg+xml;utf-8,');}.icons-enabled .icon-download::after{background-image:url('data:image/svg+xml;utf-8,');}.icons-enabled .icon-update::after{background-image:url('data:image/svg+xml;utf-8,');}.icons-enabled .icon-info::after{background-image:url('data:image/svg+xml;utf-8,');}.icons-enabled .icon-settings::after{background-image:url('data:image/svg+xml;utf-8,');}.icons-enabled .icon-widgets::after{background-image:url('data:image/svg+xml;utf-8,');}.icons-enabled .icon-cancel::after{background-image:url('data:image/svg+xml;utf-8,');}.icons-enabled .icon-ok::after{background-image:url('data:image/svg+xml;utf-8,');}.icons-enabled .icon-video::after{background-image:url('data:image/svg+xml;utf-8, ');}.icons-enabled .icon-style::after{background-image:url('data:image/svg+xml;utf-8, ');}.icons-enabled .icon-tool::after{background-image:url('data:image/svg+xml;utf-8, ');}.icons-enabled .icon-touch::after{background-image:url('data:image/svg+xml;utf-8, ');}.icons-enabled .icon-other::after{background-image:url('data:image/svg+xml;utf-8, ');}.icons-enabled .icon-arrow::after{background-image:url('data:image/svg+xml;utf-8,');}.icons-enabled .icon-rank::after{background-image:url('data:image/svg+xml;utf-8, ');}.icons-enabled .icon-like::after{background-image:url('data:image/svg+xml;utf-8,');}.icons-enabled .icon-danmaku::after{background-image:url('data:image/svg+xml;utf-8,');}.icons-enabled .icon-search::after{background-image:url('data:image/svg+xml;utf-8, ');}`; offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/settings-side-bar.min.js"] = (()=>{return(i,s)=>{if($(".gui-settings-icon-panel").length===0){$("body").append(`\n
\n
\n \n
\n
\n \n
\n
`);$(".gui-settings").on("click",()=>{$(".gui-settings-box,.gui-settings-mask").addClass("opened")});$(".gui-settings-widgets").on("click",()=>{$(".gui-settings-widgets-box,.gui-settings-mask").addClass("opened")})}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/text-validate.min.js"] = (()=>{return(t,e)=>{class i{constructor(t){this.key=t}get originalValue(){return t[this.key]}static getValidator(t){switch(t){case"customStyleColor":return new r(t);case"blurBackgroundOpacity":case"customControlBackgroundOpacity":return new a(t);case"defaultPlayerMode":case"defaultVideoQuality":return new s(t);case"darkScheduleStart":case"darkScheduleEnd":return new n(t);default:return new i(t)}}isValidate(t){return t}validate(t){const e=this.isValidate(t);if(e===undefined){return this.originalValue}return e}}class r extends i{isValidate(t){if(/^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$/.test(t)){if(t.length<7){return`#${t[1]}${t[1]}${t[2]}${t[2]}${t[3]}${t[3]}`}else{return t}}}}class a extends i{isValidate(t){if(/^([-\+]?\d+)(\.\d+)?$/.test(t)){const e=parseFloat(t);if(e>=0&&e<=1){return t}}}}class s extends i{isValidate(t){const[e]=Object.values(Resource.manifest).filter(t=>t.dropdown&&t.dropdown.key===this.key).map(t=>t.dropdown);if(e.items.indexOf(t)!==-1){return t}}}class n extends i{isValidate(t){const e=t.match(/^([\d]{1,2}):([\d]{1,2})$/);if(e&&e.length>=3){const t={hour:parseInt(e[1]),minute:parseInt(e[2])};(function(){while(this.minute<0){this.minute+=60;this.hour-=1}while(this.minute>=60){this.minute-=60;this.hour+=1}while(this.hour<0){this.hour+=24}while(this.hour>=24){this.hour-=24}}).call(t);return`${t.hour}:${t.minute<10?"0"+t.minute:t.minute}`}}}return{export:{Validator:i,ColorValidator:r,DropDownValidator:s,OpacityValidator:a,TimeValidator:n}}}})(); @@ -1100,8 +1090,7 @@ offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/m offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/custom-control-background.min.js"] = (()=>{return(o,t)=>{if(o.customControlBackgroundOpacity>0){t.applyStyle("customControlBackgroundStyle");if(!o.touchVideoPlayer){t.applyImportantStyleFromText(`\n\n `)}}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/default-player-mode.min.js"] = (()=>{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"));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.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 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 e=()=>{if(a&&$("#bilibiliPlayer[class*=mode-]").length===0){a.action()}t();i.removeEventListener("play",e)};i.addEventListener("play",e)}}(Observer.childList||Observer.subtree)("#bofqi",()=>a())}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/default-video-quality.min.js"] = (()=>{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||Observer.subtree)("#bofqi",()=>i())}})(); -offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/combo-like.min.css"] = `.video-toolbar .ops{position:relative!important;}.video-toolbar .ops::after{content:"素质三连中";position:absolute;top:-8px;left:-16px;width:200px;background:#000a;height:calc(100% + 12px);padding-left:120px;padding-top:8px;transition:all .2s ease-out;opacity:0;pointer-events:none;}.video-toolbar .ops.combo-liking::after{opacity:1;pointer-events:initial;}`; -offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/combo-like.min.js"] = (()=>{return(n,e)=>{let t=false;const i=Symbol("executed");const o=Symbol("skipped");const c=Symbol("failed");async function s(){const[n]=await SpinQuery.any(()=>document.querySelectorAll("div.ops>span.like"));if(!n.classList.contains("on")){t=true;n.click();await SpinQuery.condition(()=>n,()=>n.classList.contains("on"));return i}return o}async function l(){const[e]=await SpinQuery.any(()=>document.querySelectorAll("div.ops>span.coin"));if(!e.classList.contains("on")){e.click();const t=await SpinQuery.any(()=>$(".mc-box"));const o=await SpinQuery.any(()=>$(".coin-operated-m"));const s=o.children().filter((n,e)=>e.innerText.indexOf("2硬币")).length!==0;const l=(()=>{if(n.doubleCoins&&s){return 2}else{return 1}})();const a=t.filter((n,e)=>e.innerText.indexOf(l)!==-1)[0];a.click();const r=$(".bi-btn").filter((n,e)=>e.innerText==="确定")[0];r.click();await SpinQuery.condition(()=>$(".bili-dialog-m"),n=>n.length===0&&e.classList.contains("on")||$(".bili-msg").text().indexOf("硬币不足")!==-1);const u=document.querySelector(".bili-dialog-m i.icon.close");if(u){u.click();await SpinQuery.condition(()=>$(".bili-dialog-m"),n=>n.length===0);return[c,0]}return[i,l]}return[o,0]}async function a(){const[n]=await SpinQuery.any(()=>document.querySelectorAll("div.ops>span.collect"));if(!n.classList.contains("on")){n.click();const e=await SpinQuery.any(()=>$(".group-list label:has(input)"));const t=e.filter((n,e)=>e.innerText.indexOf("默认收藏夹")!==-1).find("input")[0];if(!t.checked){t.checked=true;raiseEvent(t,"change");const n=$(".btn.submit-move")[0];n.disabled=false;n.click()}else{const n=$("i.close")[0];n.click()}await SpinQuery.condition(()=>$(".bili-dialog-m"),e=>e.length===0&&n.classList.contains("on"));return i}return o}async function r(){e.applyImportantStyleFromText(``);const n=document.querySelector(".video-toolbar .ops");n.classList.add("combo-liking");try{const e=await s();const[t]=await l();const r=await a();const u=(()=>{if([e,t,r].every(n=>n===i||n===o)){return null}if(t===c){return"已跳过投币阶段: 硬币不足."}})();if(u!==null){Toast.info(u,"素质三连",1e4);console.log(u)}}finally{n.classList.remove("combo-liking");$("#combo-like-temp-style").remove()}}(async()=>{const[n]=await SpinQuery.any(()=>document.querySelectorAll("div.ops>span.like"));n.style.userSelect="none";const e=1e3;n.addEventListener("pointerdown",n=>{t=true;if(n.type==="touch"){n.preventDefault()}setTimeout(()=>{if(t===true){t=false;r()}},e)});n.addEventListener("click",n=>{if(t===false){n.preventDefault();n.stopImmediatePropagation()}else{t=false}});n.addEventListener("touchend",n=>{if(t===false&&n.cancelable){n.preventDefault()}})})();return{widget:{content:`\n \n \n 素质三连\n `,condition:async()=>{const n=await SpinQuery.any(()=>document.querySelectorAll("div.ops>span.like"));return n!==undefined},success:()=>{$("#combo-like").on("click",()=>{r();$(".gui-settings-mask").click()})}}}}})(); +offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/combo-like.min.js"] = (()=>{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)}})})()}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/auto-continue.min.js"] = (()=>{return(e,t)=>{function i(e){const t=/((\d)*:)?(\d)*:(\d)*/g;const i=e.text();const n=i.match(t);if(!n){return}const r=n[0].split(":");const o=(()=>{if(r.length===3){const[e,t,i]=r.map(e=>parseInt(e));return e*60*60+t*60+i}else if(r.length===2){const[e,t]=r.map(e=>parseInt(e));return e*60+t}else{logError(`解析历史时间发生错误: historyTime=${JSON.stringify(r)}`);return NaN}})();const s=e.parent();const l=document.querySelector("video");if(o从头开始`);t.appendTo(s).on("click",()=>l.currentTime=0);e.html(`已跳转到上次历史记录${n[0]}`)}else{s.find(".bilibili-player-video-toast-item-close").get(0).click()}}function n(){SpinQuery.condition(()=>$(".bilibili-player-video-toast-item-text"),e=>e.text().indexOf("上次看到")!==-1,e=>i(e.filter((e,t)=>t.innerText.indexOf("上次看到")!==-1)))}(Observer.childList||Observer.subtree)("#bofqi",n)}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/expand-description.min.css"] = `.video-desc .info{height:auto!important;}.video-desc .btn{display:none!important;}`; offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/expand-description.min.js"] = (()=>{return(e,p)=>{p.applyStyle("expandDescriptionStyle")}})(); diff --git a/bilibili-evolved.preview-offline.user.js b/bilibili-evolved.preview-offline.user.js index 8e8a6e868..bc999c8b5 100644 --- a/bilibili-evolved.preview-offline.user.js +++ b/bilibili-evolved.preview-offline.user.js @@ -1,6 +1,6 @@ // ==UserScript== // @name Bilibili Evolved (Preview Offline) -// @version 169.22 +// @version 170.24 // @description 增强哔哩哔哩Web端体验(预览离线版): 修复界面瑕疵, 删除广告, 使用夜间模式浏览; 下载视频,封面,弹幕, 以及增加对触屏设备的支持等. // @author Grant Howard, Coulomb-G // @copyright 2018, Grant Howrad (https://github.com/the1812) @@ -70,6 +70,7 @@ }, defaultPlayerLayout: "新版", skipChargeList: false, + comboLike: false, autoLightOff: false, useCache: true, autoContinue: false, @@ -78,18 +79,14 @@ }; const fixedSettings = { guiSettings: true, - comboLike: false, - doubleCoins: false, viewCover: true, notifyNewVersion: true, clearCache: true, - fixFullscreen: false, downloadVideo: true, downloadDanmaku: true, useDefaultPlayerMode: true, useDefaultPlayerLayout: true, about: false, - blurSettingsPanel: false, latestVersionLink: "https://github.com/the1812/Bilibili-Evolved/raw/preview/bilibili-evolved.preview-offline.user.js", currentVersion: GM_info.script.version, }; @@ -541,17 +538,10 @@ items: ["1080P60", "1080P+", "1080P", "720P60", "720P", "480P", "360P", "自动"], }, }, - comboLikeStyle: { - path: "min/combo-like.min.css", - }, comboLike: { path: "min/combo-like.min.js", - styles: [ - "comboLikeStyle", - ], displayNames: { - comboLike: "启用素质三连", - doubleCoins: "为原创视频投2个币" + comboLike: "素质三连触摸支持", }, }, autoContinue: { @@ -1057,10 +1047,10 @@ offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/m offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/blur-video-control.min.css"] = `@supports (backdrop-filter: blur(48px)) or (-webkit-backdrop-filter: blur(48px)){.video-control-blur-layer{width:100%;height:100%;position:absolute;-webkit-backdrop-filter:blur(48px);backdrop-filter:blur(48px);z-index:-1;top:0;}.bilibili-player-video-control-mask{background:transparent!important;}.bilibili-player-video-control-bottom,.bui-slider .bui-track.bui-track-video-progress .bui-bar-wrap{background-color:transparent!important;}.bilibili-player-video-control-bottom{position:relative;}.bilibili-player-area .bilibili-player-video-control-wrap,.bilibili-player-area .bilibili-player-video-control-bottom{transition:none!important;}}`; offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/force-wide.min.css"] = `@media screen and (min-width: 1300px){.bili-wrapper{width:1160px;}.bili-wrapper .l-con{width:900px;}.bili-header-m .bili-wrapper{width:1160px;}.bili-header-m .bili-wrapper .l-con{width:900px;}.gg-floor-module{width:1160px;max-height:96px;}.bangumi-timing-module .headline .bili-tab{width:650px;}.bangumi-timing-module .headline .bili-tab .bili-tab-item{width:70px;}.bangumi-timing-module .card-timing:first-child:nth-child(4),.bangumi-timing-module .card-timing:nth-child(2):nth-child(4),.bangumi-timing-module .card-timing:nth-child(3):nth-child(4),.bangumi-timing-module .card-timing:nth-child(4):nth-child(4){padding-top:0;}.bangumi-timing-module .card-timing{padding:36px 34px 0 0;}.audio-list .song-list .song-li:nth-child(5n) .content .text{margin-right:0;}.audiolist-list .song-list .song-li:nth-child(5n) .content .text{margin-right:0;}.elevator-module{margin-left:590px;}#primary_menu,#primary_menu>ul.nav-menu,.uns_box li.u-i.b-post{display:flex;align-items:center;justify-content:space-between;}.primary-menu{width:100%;}.primary-menu .nav-menu{flex-grow:1;}.primary-menu .nav-gif{position:static;margin-left:2%;}.primary-menu .nav-menu>li{margin-right:0!important;}.primary-menu .nav-menu>li.home{padding-right:1%;}}`; offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/download-video.min.css"] = `.download-video-panel.opened{transform:scaleY(1);}.download-video-panel{position:absolute;top:calc(100% + 2px);transition:all .16s ease-out;transform-origin:top;transform:scaleY(0);background:white;box-shadow:0px 3px 20px 2px #0004;z-index:100;}ol.video-quality li,.video-action>div{cursor:pointer;align-items:center;margin:0;padding:8px 16px;transition:all .2s ease-out;text-align:center;}.video-action>div{padding:12px 24px;}ol.video-quality li:hover,.video-action>div:hover{background:rgba(0,0,0,0.16);}.video-quality,.video-progress,.video-action,.video-error{display:none;}.download-video-panel.quality:not(.error) .video-quality,.download-video-panel.progress:not(.error) .video-progress,.download-video-panel.action:not(.error) .video-action,.download-video-panel.error .video-error{display:block;}.download-progress-text{display:flex;}.download-progress-background{background-color:#8884;height:4px;width:100%;margin-top:4px;}.download-progress-foreground{background-color:var(--theme-color);transform-origin:left;transition:all .2s ease-out;transform:scaleX(0);height:100%;width:100%;}.download-progress-cancel{margin-top:8px;display:flex;justify-content:center;}.download-progress-cancel>span{background-color:#8884;padding:4px 8px;cursor:pointer;}.download-progress-cancel>span:hover{opacity:.9;}.download-progress-cancel>span:active{opacity:.8;}.video-error,.video-progress{padding:12px;}.video-progress{min-width:120px;}#video-complete{display:none;}`; -offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/gui-settings.min.html"] = `
附加功能
设置
    视频样式
  • 工具触摸其他
`; +offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/gui-settings.min.html"] = `
附加功能
设置
    视频样式
  • 工具触摸其他
`; offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/image-viewer.min.html"] = `
`; offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/download-video.min.html"] = `
下载视频
`; -offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/version.txt"] = `1.6.26`; +offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/version.txt"] = `1.6.27`; offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/icons.min.css"] = `.icons-enabled [class^=icon-]{width:24px;height:24px;display:inline-block;background-image:none;}.icons-enabled [class^=icon-]::after{content:"";width:24px;height:24px;display:inline-block;}.icons-enabled .icon-view::after{background-image:url('data:image/svg+xml;utf-8,');}.icons-enabled .icon-clear::after{background-image:url('data:image/svg+xml;utf-8,');}.icons-enabled .icon-download::after{background-image:url('data:image/svg+xml;utf-8,');}.icons-enabled .icon-update::after{background-image:url('data:image/svg+xml;utf-8,');}.icons-enabled .icon-info::after{background-image:url('data:image/svg+xml;utf-8,');}.icons-enabled .icon-settings::after{background-image:url('data:image/svg+xml;utf-8,');}.icons-enabled .icon-widgets::after{background-image:url('data:image/svg+xml;utf-8,');}.icons-enabled .icon-cancel::after{background-image:url('data:image/svg+xml;utf-8,');}.icons-enabled .icon-ok::after{background-image:url('data:image/svg+xml;utf-8,');}.icons-enabled .icon-video::after{background-image:url('data:image/svg+xml;utf-8, ');}.icons-enabled .icon-style::after{background-image:url('data:image/svg+xml;utf-8, ');}.icons-enabled .icon-tool::after{background-image:url('data:image/svg+xml;utf-8, ');}.icons-enabled .icon-touch::after{background-image:url('data:image/svg+xml;utf-8, ');}.icons-enabled .icon-other::after{background-image:url('data:image/svg+xml;utf-8, ');}.icons-enabled .icon-arrow::after{background-image:url('data:image/svg+xml;utf-8,');}.icons-enabled .icon-rank::after{background-image:url('data:image/svg+xml;utf-8, ');}.icons-enabled .icon-like::after{background-image:url('data:image/svg+xml;utf-8,');}.icons-enabled .icon-danmaku::after{background-image:url('data:image/svg+xml;utf-8,');}.icons-enabled .icon-search::after{background-image:url('data:image/svg+xml;utf-8, ');}`; offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/settings-side-bar.min.js"] = (()=>{return(i,s)=>{if($(".gui-settings-icon-panel").length===0){$("body").append(`\n
\n
\n \n
\n
\n \n
\n
`);$(".gui-settings").on("click",()=>{$(".gui-settings-box,.gui-settings-mask").addClass("opened")});$(".gui-settings-widgets").on("click",()=>{$(".gui-settings-widgets-box,.gui-settings-mask").addClass("opened")})}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/text-validate.min.js"] = (()=>{return(t,e)=>{class i{constructor(t){this.key=t}get originalValue(){return t[this.key]}static getValidator(t){switch(t){case"customStyleColor":return new r(t);case"blurBackgroundOpacity":case"customControlBackgroundOpacity":return new a(t);case"defaultPlayerMode":case"defaultVideoQuality":return new s(t);case"darkScheduleStart":case"darkScheduleEnd":return new n(t);default:return new i(t)}}isValidate(t){return t}validate(t){const e=this.isValidate(t);if(e===undefined){return this.originalValue}return e}}class r extends i{isValidate(t){if(/^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$/.test(t)){if(t.length<7){return`#${t[1]}${t[1]}${t[2]}${t[2]}${t[3]}${t[3]}`}else{return t}}}}class a extends i{isValidate(t){if(/^([-\+]?\d+)(\.\d+)?$/.test(t)){const e=parseFloat(t);if(e>=0&&e<=1){return t}}}}class s extends i{isValidate(t){const[e]=Object.values(Resource.manifest).filter(t=>t.dropdown&&t.dropdown.key===this.key).map(t=>t.dropdown);if(e.items.indexOf(t)!==-1){return t}}}class n extends i{isValidate(t){const e=t.match(/^([\d]{1,2}):([\d]{1,2})$/);if(e&&e.length>=3){const t={hour:parseInt(e[1]),minute:parseInt(e[2])};(function(){while(this.minute<0){this.minute+=60;this.hour-=1}while(this.minute>=60){this.minute-=60;this.hour+=1}while(this.hour<0){this.hour+=24}while(this.hour>=24){this.hour-=24}}).call(t);return`${t.hour}:${t.minute<10?"0"+t.minute:t.minute}`}}}return{export:{Validator:i,ColorValidator:r,DropDownValidator:s,OpacityValidator:a,TimeValidator:n}}}})(); @@ -1100,8 +1090,7 @@ offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/m offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/custom-control-background.min.js"] = (()=>{return(o,t)=>{if(o.customControlBackgroundOpacity>0){t.applyStyle("customControlBackgroundStyle");if(!o.touchVideoPlayer){t.applyImportantStyleFromText(`\n\n `)}}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/default-player-mode.min.js"] = (()=>{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"));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.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 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 e=()=>{if(a&&$("#bilibiliPlayer[class*=mode-]").length===0){a.action()}t();i.removeEventListener("play",e)};i.addEventListener("play",e)}}(Observer.childList||Observer.subtree)("#bofqi",()=>a())}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/default-video-quality.min.js"] = (()=>{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||Observer.subtree)("#bofqi",()=>i())}})(); -offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/combo-like.min.css"] = `.video-toolbar .ops{position:relative!important;}.video-toolbar .ops::after{content:"素质三连中";position:absolute;top:-8px;left:-16px;width:200px;background:#000a;height:calc(100% + 12px);padding-left:120px;padding-top:8px;transition:all .2s ease-out;opacity:0;pointer-events:none;}.video-toolbar .ops.combo-liking::after{opacity:1;pointer-events:initial;}`; -offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/combo-like.min.js"] = (()=>{return(n,e)=>{let t=false;const i=Symbol("executed");const o=Symbol("skipped");const c=Symbol("failed");async function s(){const[n]=await SpinQuery.any(()=>document.querySelectorAll("div.ops>span.like"));if(!n.classList.contains("on")){t=true;n.click();await SpinQuery.condition(()=>n,()=>n.classList.contains("on"));return i}return o}async function l(){const[e]=await SpinQuery.any(()=>document.querySelectorAll("div.ops>span.coin"));if(!e.classList.contains("on")){e.click();const t=await SpinQuery.any(()=>$(".mc-box"));const o=await SpinQuery.any(()=>$(".coin-operated-m"));const s=o.children().filter((n,e)=>e.innerText.indexOf("2硬币")).length!==0;const l=(()=>{if(n.doubleCoins&&s){return 2}else{return 1}})();const a=t.filter((n,e)=>e.innerText.indexOf(l)!==-1)[0];a.click();const r=$(".bi-btn").filter((n,e)=>e.innerText==="确定")[0];r.click();await SpinQuery.condition(()=>$(".bili-dialog-m"),n=>n.length===0&&e.classList.contains("on")||$(".bili-msg").text().indexOf("硬币不足")!==-1);const u=document.querySelector(".bili-dialog-m i.icon.close");if(u){u.click();await SpinQuery.condition(()=>$(".bili-dialog-m"),n=>n.length===0);return[c,0]}return[i,l]}return[o,0]}async function a(){const[n]=await SpinQuery.any(()=>document.querySelectorAll("div.ops>span.collect"));if(!n.classList.contains("on")){n.click();const e=await SpinQuery.any(()=>$(".group-list label:has(input)"));const t=e.filter((n,e)=>e.innerText.indexOf("默认收藏夹")!==-1).find("input")[0];if(!t.checked){t.checked=true;raiseEvent(t,"change");const n=$(".btn.submit-move")[0];n.disabled=false;n.click()}else{const n=$("i.close")[0];n.click()}await SpinQuery.condition(()=>$(".bili-dialog-m"),e=>e.length===0&&n.classList.contains("on"));return i}return o}async function r(){e.applyImportantStyleFromText(``);const n=document.querySelector(".video-toolbar .ops");n.classList.add("combo-liking");try{const e=await s();const[t]=await l();const r=await a();const u=(()=>{if([e,t,r].every(n=>n===i||n===o)){return null}if(t===c){return"已跳过投币阶段: 硬币不足."}})();if(u!==null){Toast.info(u,"素质三连",1e4);console.log(u)}}finally{n.classList.remove("combo-liking");$("#combo-like-temp-style").remove()}}(async()=>{const[n]=await SpinQuery.any(()=>document.querySelectorAll("div.ops>span.like"));n.style.userSelect="none";const e=1e3;n.addEventListener("pointerdown",n=>{t=true;if(n.type==="touch"){n.preventDefault()}setTimeout(()=>{if(t===true){t=false;r()}},e)});n.addEventListener("click",n=>{if(t===false){n.preventDefault();n.stopImmediatePropagation()}else{t=false}});n.addEventListener("touchend",n=>{if(t===false&&n.cancelable){n.preventDefault()}})})();return{widget:{content:`\n \n \n 素质三连\n `,condition:async()=>{const n=await SpinQuery.any(()=>document.querySelectorAll("div.ops>span.like"));return n!==undefined},success:()=>{$("#combo-like").on("click",()=>{r();$(".gui-settings-mask").click()})}}}}})(); +offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/combo-like.min.js"] = (()=>{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)}})})()}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/auto-continue.min.js"] = (()=>{return(e,t)=>{function i(e){const t=/((\d)*:)?(\d)*:(\d)*/g;const i=e.text();const n=i.match(t);if(!n){return}const r=n[0].split(":");const o=(()=>{if(r.length===3){const[e,t,i]=r.map(e=>parseInt(e));return e*60*60+t*60+i}else if(r.length===2){const[e,t]=r.map(e=>parseInt(e));return e*60+t}else{logError(`解析历史时间发生错误: historyTime=${JSON.stringify(r)}`);return NaN}})();const s=e.parent();const l=document.querySelector("video");if(o从头开始`);t.appendTo(s).on("click",()=>l.currentTime=0);e.html(`已跳转到上次历史记录${n[0]}`)}else{s.find(".bilibili-player-video-toast-item-close").get(0).click()}}function n(){SpinQuery.condition(()=>$(".bilibili-player-video-toast-item-text"),e=>e.text().indexOf("上次看到")!==-1,e=>i(e.filter((e,t)=>t.innerText.indexOf("上次看到")!==-1)))}(Observer.childList||Observer.subtree)("#bofqi",n)}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/expand-description.min.css"] = `.video-desc .info{height:auto!important;}.video-desc .btn{display:none!important;}`; offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/expand-description.min.js"] = (()=>{return(e,p)=>{p.applyStyle("expandDescriptionStyle")}})(); diff --git a/bilibili-evolved.preview.user.js b/bilibili-evolved.preview.user.js index d2748c1ea..9ad5b2e68 100644 --- a/bilibili-evolved.preview.user.js +++ b/bilibili-evolved.preview.user.js @@ -1,6 +1,6 @@ // ==UserScript== // @name Bilibili Evolved (Preview) -// @version 1.6.26 +// @version 1.6.27 // @description 增强哔哩哔哩Web端体验(预览版分支): 修复界面瑕疵, 删除广告, 使用夜间模式浏览; 下载视频,封面,弹幕, 以及增加对触屏设备的支持等. // @author Grant Howard, Coulomb-G // @copyright 2018, Grant Howrad (https://github.com/the1812) @@ -69,6 +69,7 @@ }, defaultPlayerLayout: "新版", skipChargeList: false, + comboLike: false, autoLightOff: false, useCache: true, autoContinue: false, @@ -77,18 +78,14 @@ }; const fixedSettings = { guiSettings: true, - comboLike: false, - doubleCoins: false, viewCover: true, notifyNewVersion: true, clearCache: true, - fixFullscreen: false, downloadVideo: true, downloadDanmaku: true, useDefaultPlayerMode: true, useDefaultPlayerLayout: true, about: false, - blurSettingsPanel: false, latestVersionLink: "https://github.com/the1812/Bilibili-Evolved/raw/preview/bilibili-evolved.preview.user.js", currentVersion: GM_info.script.version, }; @@ -540,17 +537,10 @@ items: ["1080P60", "1080P+", "1080P", "720P60", "720P", "480P", "360P", "自动"], }, }, - comboLikeStyle: { - path: "min/combo-like.min.css", - }, comboLike: { path: "min/combo-like.min.js", - styles: [ - "comboLikeStyle", - ], displayNames: { - comboLike: "启用素质三连", - doubleCoins: "为原创视频投2个币" + comboLike: "素质三连触摸支持", }, }, autoContinue: { diff --git a/bilibili-evolved.user.js b/bilibili-evolved.user.js index 715712743..9775e6e81 100644 --- a/bilibili-evolved.user.js +++ b/bilibili-evolved.user.js @@ -1,6 +1,6 @@ // ==UserScript== // @name Bilibili Evolved -// @version 1.6.26 +// @version 1.6.27 // @description 增强哔哩哔哩Web端体验: 修复界面瑕疵, 删除广告, 使用夜间模式浏览; 下载视频,封面,弹幕, 以及增加对触屏设备的支持等. // @author Grant Howard, Coulomb-G // @copyright 2018, Grant Howrad (https://github.com/the1812) @@ -69,6 +69,7 @@ }, defaultPlayerLayout: "新版", skipChargeList: false, + comboLike: false, autoLightOff: false, useCache: true, autoContinue: false, @@ -77,18 +78,14 @@ }; const fixedSettings = { guiSettings: true, - comboLike: false, - doubleCoins: false, viewCover: true, notifyNewVersion: true, clearCache: true, - fixFullscreen: false, downloadVideo: true, downloadDanmaku: true, useDefaultPlayerMode: true, useDefaultPlayerLayout: true, about: false, - blurSettingsPanel: false, latestVersionLink: "https://github.com/the1812/Bilibili-Evolved/raw/master/bilibili-evolved.user.js", currentVersion: GM_info.script.version, }; @@ -540,17 +537,10 @@ items: ["1080P60", "1080P+", "1080P", "720P60", "720P", "480P", "360P", "自动"], }, }, - comboLikeStyle: { - path: "min/combo-like.min.css", - }, comboLike: { path: "min/combo-like.min.js", - styles: [ - "comboLikeStyle", - ], displayNames: { - comboLike: "启用素质三连", - doubleCoins: "为原创视频投2个币" + comboLike: "素质三连触摸支持", }, }, autoContinue: { diff --git a/min/combo-like.min.js b/min/combo-like.min.js index a2d6e11d2..5c0fc24f7 100644 --- a/min/combo-like.min.js +++ b/min/combo-like.min.js @@ -1 +1 @@ -(()=>{return(n,e)=>{let t=false;const i=Symbol("executed");const o=Symbol("skipped");const c=Symbol("failed");async function s(){const[n]=await SpinQuery.any(()=>document.querySelectorAll("div.ops>span.like"));if(!n.classList.contains("on")){t=true;n.click();await SpinQuery.condition(()=>n,()=>n.classList.contains("on"));return i}return o}async function l(){const[e]=await SpinQuery.any(()=>document.querySelectorAll("div.ops>span.coin"));if(!e.classList.contains("on")){e.click();const t=await SpinQuery.any(()=>$(".mc-box"));const o=await SpinQuery.any(()=>$(".coin-operated-m"));const s=o.children().filter((n,e)=>e.innerText.indexOf("2硬币")).length!==0;const l=(()=>{if(n.doubleCoins&&s){return 2}else{return 1}})();const a=t.filter((n,e)=>e.innerText.indexOf(l)!==-1)[0];a.click();const r=$(".bi-btn").filter((n,e)=>e.innerText==="确定")[0];r.click();await SpinQuery.condition(()=>$(".bili-dialog-m"),n=>n.length===0&&e.classList.contains("on")||$(".bili-msg").text().indexOf("硬币不足")!==-1);const u=document.querySelector(".bili-dialog-m i.icon.close");if(u){u.click();await SpinQuery.condition(()=>$(".bili-dialog-m"),n=>n.length===0);return[c,0]}return[i,l]}return[o,0]}async function a(){const[n]=await SpinQuery.any(()=>document.querySelectorAll("div.ops>span.collect"));if(!n.classList.contains("on")){n.click();const e=await SpinQuery.any(()=>$(".group-list label:has(input)"));const t=e.filter((n,e)=>e.innerText.indexOf("默认收藏夹")!==-1).find("input")[0];if(!t.checked){t.checked=true;raiseEvent(t,"change");const n=$(".btn.submit-move")[0];n.disabled=false;n.click()}else{const n=$("i.close")[0];n.click()}await SpinQuery.condition(()=>$(".bili-dialog-m"),e=>e.length===0&&n.classList.contains("on"));return i}return o}async function r(){e.applyImportantStyleFromText(``);const n=document.querySelector(".video-toolbar .ops");n.classList.add("combo-liking");try{const e=await s();const[t]=await l();const r=await a();const u=(()=>{if([e,t,r].every(n=>n===i||n===o)){return null}if(t===c){return"已跳过投币阶段: 硬币不足."}})();if(u!==null){Toast.info(u,"素质三连",1e4);console.log(u)}}finally{n.classList.remove("combo-liking");$("#combo-like-temp-style").remove()}}(async()=>{const[n]=await SpinQuery.any(()=>document.querySelectorAll("div.ops>span.like"));n.style.userSelect="none";const e=1e3;n.addEventListener("pointerdown",n=>{t=true;if(n.type==="touch"){n.preventDefault()}setTimeout(()=>{if(t===true){t=false;r()}},e)});n.addEventListener("click",n=>{if(t===false){n.preventDefault();n.stopImmediatePropagation()}else{t=false}});n.addEventListener("touchend",n=>{if(t===false&&n.cancelable){n.preventDefault()}})})();return{widget:{content:`\n \n \n 素质三连\n `,condition:async()=>{const n=await SpinQuery.any(()=>document.querySelectorAll("div.ops>span.like"));return n!==undefined},success:()=>{$("#combo-like").on("click",()=>{r();$(".gui-settings-mask").click()})}}}}})(); \ No newline at end of file +(()=>{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)}})})()}})(); \ No newline at end of file diff --git a/min/gui-settings.min.html b/min/gui-settings.min.html index 9167dbb43..8d1586d87 100644 --- a/min/gui-settings.min.html +++ b/min/gui-settings.min.html @@ -1 +1 @@ -
附加功能
设置
    视频样式
  • 工具触摸其他
\ No newline at end of file +
附加功能
设置
    视频样式
  • 工具触摸其他
\ No newline at end of file diff --git a/touch/combo-like.js b/touch/combo-like.js new file mode 100644 index 000000000..be50e8e41 --- /dev/null +++ b/touch/combo-like.js @@ -0,0 +1,35 @@ +(() => +{ + return (settings, resources) => + { + (async () => + { + const likeButton = await SpinQuery.select(() => document.querySelector(".ops span.like")); + likeButton.style.userSelect = "none"; + function mountEvent(name, args) + { + const event = new CustomEvent(name, args); + likeButton.dispatchEvent(event); + } + + const clickInterval = 200; + let click = true; + likeButton.addEventListener("touchstart", e => + { + e.preventDefault(); + click = true; + setTimeout(() => click = false, clickInterval); + mountEvent("mousedown", e); + }); + likeButton.addEventListener("touchend", e => + { + e.preventDefault(); + mountEvent("mouseup", e); + if (click === true) + { + mountEvent("click", e); + } + }); + })(); + }; +})(); \ No newline at end of file diff --git a/utils/combo-like/combo-like.css b/utils/combo-like/combo-like.css deleted file mode 100644 index 47d7c82b2..000000000 --- a/utils/combo-like/combo-like.css +++ /dev/null @@ -1,24 +0,0 @@ -.video-toolbar .ops -{ - position: relative !important; -} -.video-toolbar .ops::after -{ - content: "素质三连中"; - position: absolute; - top: -8px; - left: -16px; - width: 200px; - background: #000a; - height: calc(100% + 12px); - padding-left: 120px; - padding-top: 8px; - transition: all .2s ease-out; - opacity: 0; - pointer-events: none; -} -.video-toolbar .ops.combo-liking::after -{ - opacity: 1; - pointer-events: initial; -} \ No newline at end of file diff --git a/utils/combo-like/combo-like.js b/utils/combo-like/combo-like.js deleted file mode 100644 index ac0e99a71..000000000 --- a/utils/combo-like/combo-like.js +++ /dev/null @@ -1,198 +0,0 @@ -(() => -{ - return (settings, resources) => - { - let trigger = false; - const executed = Symbol("executed"); - const skipped = Symbol("skipped"); - const failed = Symbol("failed"); - async function like() - { - const [likeButton] = await SpinQuery.any(() => document.querySelectorAll("div.ops>span.like")); - if (!likeButton.classList.contains("on")) - { - trigger = true; - likeButton.click(); - await SpinQuery.condition(() => likeButton, () => likeButton.classList.contains("on")); - return executed; - } - return skipped; - } - async function coin() - { - const [coinButton] = await SpinQuery.any(() => document.querySelectorAll("div.ops>span.coin")); - if (!coinButton.classList.contains("on")) - { - coinButton.click(); - const dialog = await SpinQuery.any(() => $(".mc-box")); - const coinsSpan = await SpinQuery.any(() => $(".coin-operated-m")); - const supportDoubleCoins = coinsSpan.children().filter((_, it) => it.innerText.indexOf("2硬币")).length !== 0; - const coins = (() => - { - if (settings.doubleCoins && supportDoubleCoins) - { - return 2; - } - else - { - return 1; - } - })(); - const coinSpan = dialog.filter((_, it) => it.innerText.indexOf(coins) !== -1)[0]; - coinSpan.click(); - const okButton = $(".bi-btn").filter((_, it) => it.innerText === "确定")[0]; - okButton.click(); - await SpinQuery.condition( - () => $(".bili-dialog-m"), - it => it.length === 0 && coinButton.classList.contains("on") - || $(".bili-msg").text().indexOf("硬币不足") !== -1, - ); - const closeButton = document.querySelector(".bili-dialog-m i.icon.close"); - if (closeButton) - { - closeButton.click(); - await SpinQuery.condition( - () => $(".bili-dialog-m"), - it => it.length === 0, - ); - return [failed, 0]; - } - return [executed, coins]; - } - return [skipped, 0]; - } - async function favorite() - { - const [favoriteButton] = await SpinQuery.any(() => document.querySelectorAll("div.ops>span.collect")); - if (!favoriteButton.classList.contains("on")) - { - favoriteButton.click(); - const dialog = await SpinQuery.any(() => $(".group-list label:has(input)")); - const defaultInput = dialog.filter((_, it) => it.innerText.indexOf("默认收藏夹") !== -1).find("input")[0]; - if (!defaultInput.checked) - { - defaultInput.checked = true; - raiseEvent(defaultInput, "change"); - const okButton = $(".btn.submit-move")[0]; - okButton.disabled = false; - okButton.click(); - } - else - { - const okButton = $("i.close")[0]; - okButton.click(); - } - await SpinQuery.condition( - () => $(".bili-dialog-m"), - it => it.length === 0 && favoriteButton.classList.contains("on"), - ); - return executed; - } - return skipped; - } - async function comboLike() - { - resources.applyImportantStyleFromText(``); - const operationArea = document.querySelector(".video-toolbar .ops"); - operationArea.classList.add("combo-liking"); - try - { - const likeResult = await like(); - const [coinResult] = await coin(); - const favoriteResult = await favorite(); - const message = (() => - { - if ([likeResult, coinResult, favoriteResult].every(it => it === executed || it === skipped)) - { - return null; - } - if (coinResult === failed) - { - return "已跳过投币阶段: 硬币不足."; - } - })(); - if (message !== null) - { - Toast.info(message, "素质三连", 10000); - console.log(message); - } - } - finally - { - operationArea.classList.remove("combo-liking"); - $("#combo-like-temp-style").remove(); - } - } - (async () => - { - const [likeButton] = await SpinQuery.any(() => document.querySelectorAll("div.ops>span.like")); - likeButton.style.userSelect = "none"; - const triggerTime = 1000; - likeButton.addEventListener("pointerdown", e => - { - trigger = true; - if (e.type === "touch") - { - e.preventDefault(); - } - setTimeout(() => - { - if (trigger === true) - { - trigger = false; - comboLike(); - } - }, triggerTime); - }); - likeButton.addEventListener("click", e => - { - if (trigger === false) - { - e.preventDefault(); - e.stopImmediatePropagation(); - } - else - { - trigger = false; - } - }); - likeButton.addEventListener("touchend", e => - { - if (trigger === false && e.cancelable) - { - e.preventDefault(); - } - }); - })(); - return { - widget: - { - content: ` - `, - condition: async () => - { - const likeButton = await SpinQuery.any(() => document.querySelectorAll("div.ops>span.like")); - return likeButton !== undefined; - }, - success: () => - { - $("#combo-like").on("click", () => - { - comboLike(); - $(".gui-settings-mask").click(); - }); - }, - }, - }; - }; -})(); \ No newline at end of file diff --git a/utils/gui-settings/gui-settings.html b/utils/gui-settings/gui-settings.html index 2d3547c30..c88ab71f4 100644 --- a/utils/gui-settings/gui-settings.html +++ b/utils/gui-settings/gui-settings.html @@ -62,10 +62,9 @@ - 触摸 + diff --git a/version.txt b/version.txt index 39e9542ad..6fc9d7416 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -1.6.26 \ No newline at end of file +1.6.27 \ No newline at end of file