diff --git a/bilibili-evolved.offline.user.js b/bilibili-evolved.offline.user.js index 6e6090891..f3d43d9d8 100644 --- a/bilibili-evolved.offline.user.js +++ b/bilibili-evolved.offline.user.js @@ -1,6 +1,6 @@ // ==UserScript== // @name Bilibili Evolved (Offline) -// @version 321.23 +// @version 321.26 // @description Bilibili Evolved 的离线版, 所有功能都已内置于脚本中. // @author Grant Howard, Coulomb-G // @copyright 2019, Grant Howard (https://github.com/the1812) & Coulomb-G (https://github.com/Coulomb-G) @@ -1138,7 +1138,7 @@ offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/m offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/settings-tooltip.zh-CN.min.js"] = (()=>{return(a,n)=>{const s=new Map([["useDefaultPlayerMode",`控制是否使用默认播放器模式, 可以为常规, 宽屏, 网页全屏全屏.`],["defaultPlayerMode",`设置默认的播放器模式.`],["applyPlayerModeOnPlay",`是否在播放时应用模式, 若选择否就会在未开始播放时就应用.`],["useDefaultPlayerLayout",`设置默认的播放器布局, 尽量在相应的页面里设置(比如在番剧播放页面设置番剧播放器布局), 否则可能没有效果.\n- 旧版: 传统布局\n- 新版: 视频区默认的新版布局\n注: 旧版布局中, 很多脚本功能将不适用.`],["defaultPlayerLayout",`设置视频区的布局.`],["defaultBangumiLayout",`设置番剧区的布局.`],["useDefaultVideoQuality",`进入视频时自动选择指定的画质, 若视频最高画质低于所选画质, 则使用视频的最高画质.`],["defaultVideoQuality",`设定自动选择的视频画质.`],["autoLightOff",`首次播放时, 自动进入关灯模式, 并在播放结束后自动开灯.`],["useDefaultDanmakuSettings",`设置默认是否开启弹幕, 以及是否记住防挡字幕和智能防挡弹幕.`],["enableDanmaku",`控制弹幕是否默认开启.`],["rememberDanmakuSettings",`控制是否记住弹幕设置, 包括防挡字幕和智能防挡弹幕. 在播放器中改动这些设置后, 每个视频都会默认使用这些设置.`],["expandDanmakuList",`新版播放页面中, 弹幕列表默认收起以显示推荐的其他视频. 启用此功能可在每次加载视频时自动展开弹幕列表.`],["expandDescription",`长的视频简介默认会被折叠, 启用此功能可以强制展开完整的视频简介.`],["autoPlay",`进入视频页面时自动开始播放视频.`],["autoContinue",`播放视频时如果检测到历史记录信息(上次看到...消息), 则自动跳转到相应的时间播放.`],["skipChargeList",`自动跳过视频结尾的充电鸣谢.`],["framePlayback",`在播放器的时间右边增加两个按钮, 用于精细调整视频时间. 支持键盘快捷键Shift+/. (旧版播放器只能用键盘快捷键, 不会显示按钮)`],["playerFocus",`进入视频/番剧页面时, 自动定位到播放器.`],["playerFocusOffset",`定位时的竖直偏移量, 单位为像素(px).`],["customStyleColor",`设定顶栏(自定义顶栏启用时)和夜间模式使用的主题色, 可以点击颜色预览的圆圈打开色板, 其中含有预定义的16种主题色, 也可以在右侧的文本框直接输入任何有效的16进制颜色值(#rrggbb#rgb).`],["useNewStyle",`主要会改变顶栏的样式, 并有一些其他地方的界面微调:\n- 为播放器增加主题色投影\n- 可控制顶栏对横幅的透明度\n- 使播放器按钮垂直对齐\n- 使部分搜索栏的提示文字的颜色更清晰\n- 隐藏播放页面的"返回旧版"侧栏\n- 修复直播间一些文字初始状态不正确\n- 窄屏幕下强制保留弹幕发送栏`],["blurBackgroundOpacity",`设置顶栏对横幅的透明度(0~1), 数值越高顶栏越淡, 当横幅关闭时此选项无效.`],["useDarkStyle",`夜间模式更适合光线暗的环境, 并会大量应用主题颜色.`],["darkSchedule",`设置一个使用夜间模式的时间段, 进入/离开此时间段时, 会自动开启/关闭夜间模式.\n结束时间小于起始时间时将视为次日, 如18:006:00表示晚上18:00到次日6:00.`],["darkScheduleStart",`设置计划时段的起始时间.`],["darkScheduleEnd",`设置计划时段的结束时间.`],["compactLayout",`设置首页是否使用紧凑布局, 视频的间距会减小并削去圆角, 分区栏的图标会使用高清重制版. 目前仅支持首页, 其他分区的样式后续会添加.`],["useCommentStyle",`- 删除热评头像下方的关注按钮\n- 删除用户的等级标识\n- 删除发送源信息(来自安卓客户端这种)\n- 发送时间移动到右上角\n- 位图图标全部换用矢量图标, 高分屏不会模糊\n注: 关注和等级可以通过鼠标停留在头像上, 在弹出的资料卡小窗中查看.`],["simplifyLiveroom",`- 隐藏姥爷图标\n- 隐藏粉丝勋章\n- 隐藏活动头衔\n- 隐藏用户等级\n- 隐藏舰长图标\n- 隐藏全区广播\n- 隐藏欢迎信息 (xxx姥爷进入直播间)\n- 隐藏抽奖提示 (开通舰长, 小飞船抽奖等)\n- 禁用直播间皮肤\n每一项都可以在附加功能中单独选择是否隐藏.`],["preserveRank",`控制是否在搜索框左侧显示排行榜图标.`],["blurVideoControl",`模糊视频控制栏背景, 原版的阴影效果将无效.`],["customControlBackground",`给视频控制栏附上半透明的黑色, 代替原来的阴影.`],["customControlBackgroundOpacity",`设置控制栏着色的黑色不透明度(0~1), 数值越大黑色越浓.`],["harunaScale",`根据屏幕DPI缩放直播看板娘的大小以提高像素的清晰度.`],["removeLiveWatermark",`删除观看直播时角落的水印.`],["removeVideoTopMask",`删除视频里鼠标经过时出现在右上角的覆盖层.`],["removeAds",`删除站内的各种广告. 包括首页的推广模块, 手机app推荐, 视频页面右侧的广告等.`],["watchLaterRedirect",`将稍后再看的链接重定向为普通播放网址, 以使用新版播放页面.`],["favoritesRedirect",`将个人空间收藏夹里的视频重定向为直链, 而不是收藏夹播单链接.`],["hideTopSearch",`将搜索框的推荐词替换为搜索.`],["fullTweetsTitle",`在顶栏的动态预览框中, 总是展开完整的标题.`],["fullPageTitle",`在视频选集列表中, 总是展开完整的标题.`],["showDeadVideoTitle",`在个人空间中, 为已失效视频恢复标题和封面.`],["useBiliplusRedirect",`将失效视频重定向到BiliPlus.`],["biliplusRedirect",`在视频/番剧/空间中, 附加功能"转到BiliPlus", 点击可以转到BiliPlus上对应的页面.`],["imageResolution",`根据屏幕DPI请求更高分辨率的图片, 例如DPI缩放200%则请求2倍的分辨率, 加载时间也会相应变长一些.`],["oldTweets",`将新版动态的链接换为旧版动态, 同时可在附加功能中在新旧动态间切换.`],["touchNavBar",`删除顶栏右侧的一级链接(从大会员历史), 以方便触屏设备快速预览信息. 被删除的链接可从各预览中的查看更多进入.`],["comboLike",`为素质三连(长按点赞)启用触摸支持.`],["touchVideoPlayer",`增大控制栏的按钮间距, 使触摸操作更准确. 并为播放器启用触摸支持:\n- 左右滑动可调整进度\n- 上下滑动可调整音量\n- 进度调整可在左上角和右上角取消\n- 在不同位置滑动, 可以使用3档不同的灵敏度.`],["touchVideoPlayerAnimation",`决定是否要对触摸调整的提示框使用出现/消失动画, 此动画可能导致掉帧.`],["touchVideoPlayerDoubleTapControl",`将操作方式更改为: 单击显示/隐藏控制栏, 双击播放/暂停.`],["toast",`允许在网页左下角显示来自本脚本的消息, 如更新提醒, 错误提示等.`],["toastInternalError",`开启后, 错误消息将显示详细的技术性错误信息及堆栈跟踪, 这通常用于准确地确定问题发生的原因, 所以报告问题时这些信息会非常有用.`],["useCache",`使用缓存以提高脚本的加载速度.`],["outerWatchlater",`将视频页面菜单里的稍后再看移到外面.`],["i18n",`为界面中一些常用文本提供翻译.`],["i18nLanguage",`翻译的目标语言.`],["customNavbar",`启用自定义顶栏, 替代原版的顶栏, 仅对主站生效, 不影响直播/相簿/会员购等.`],["customNavbarFill",`是否使用主题色填充顶栏.`],["allNavbarFill",`是否使用主题色填充其他的顶栏, 包括直播/相簿/会员购等.`],["customNavbarShadow",`是否为顶栏添加一层阴影效果.`],["customNavbarCompact",`是否为顶栏使用更紧凑的布局, 紧凑布局将使用更小的间距, 以及在视频标题过长时用...省略后面的部分.`],["customNavbarBlur",`是否在顶部横幅存在时, 使用背景模糊效果.`],["playerShadow",`为播放器添加主题色投影.`],["narrowDanmaku",`在网页全屏时, 即使宽度过小也强制保留弹幕发送栏, 注意这可能导致右侧的功能按钮挤出边界.`],["hideOldEntry",`隐藏播放页右侧的返回旧版入口.`],["hideBanner",`隐藏首页顶部横幅.`],["allowJumpContinue",`当历史记录的集数与当前打开的不一致时, 仍然自动跳转.`],["hideBangumiReviews",`隐藏番剧播放页面里的点评板块.`],["videoScreenshot",`启用视频快速截图, 将在播放器的时间右边增加一个截图按钮. 支持键盘快捷键Ctrl+Alt+C. (旧版播放器只能用键盘快捷键, 不会显示按钮)`],["filenameFormat",`自定义文件命名格式, 作用于下载弹幕, 下载视频, 视频截图, 查看封面.\n可以使用的变量有:\n- title: 视频标题/直播间标题\n- ep: 选集标题\n- aid: AV号\n- cid: CID (每个视频的唯一编号, AV号对应的视频可能有多集)\n- lid: 直播间号\n- y/M/d: 年/月/日\n- h/m/s/ms: 时/分/秒/毫秒\n\n默认的格式是[title][ - ep], 标题+选集标题, 当没有选集标题时则只有标题.\n\n变量要放在方括号里, 而方括号里的其他内容会在变量有效时出现. 比如格式如果写成[title] - [ep], 那么即使没有选集标题, 中间那个 - 也会出现在文件名里. 如果像默认那样放在方括号里, 没有选集标题时, - 也不会出现.\n\n例如, 想要标题+AV号+时间的格式, 可以设定为[title][ AVaid] [y]-[M]-[d] [h]-[m]-[s], 能够得到类似xxxx AV23333 2019-05-29 19-59-44的名字.`]]);return{export:{toolTips:s}}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/show-dead-video-title.min.js"] = (()=>{return(t,a)=>{function e(){const a=$(".disabled[data-aid]").removeClass("disabled");a.each(async(a,e)=>{const i=$(e);const r=i.attr("data-aid");let s=i.find("img").attr("alt");if(s==="已失效视频"){const t=JSON.parse(await Ajax.getText(`https://api.bilibili.com/x/player/pagelist?aid=${r}`));if(t.code===0){const a=t.data.map(t=>t.part);[s]=a}else{console.warn("[显示失效视频信息] Page List API 未成功.");console.warn(t)}}const l=(()=>{if(t.useBiliplusRedirect){return`https://hd.biliplus.com/video/av${r}`}else{return`//www.bilibili.com/video/av${r}`}})();i.find("a.cover").attr("target","_blank").attr("href",l);i.find("a.title").attr("title",s).attr("target","_blank").attr("href",l).text(s)})}SpinQuery.any(()=>$("#app>.s-space"),()=>{Observer.childListSubtree("#app>.s-space",e)})}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/simplify-liveroom.min.css"] = `.simplify-fansMedal .fans-medal-item-ctnr,.simplify-guard i.guard-icon,.simplify-popup .chat-popups-section,.simplify-popup .link-popup-ctnr,.simplify-systemMessage .system-msg,.simplify-title .title-label,.simplify-userLevel .user-level-icon,.simplify-vip .vip-icon,.simplify-welcomeMessage .welcome-guard,.simplify-welcomeMessage .welcome-msg{display:none!important}.simplify-skin #gift-control-vm,.simplify-skin #head-info-vm,.simplify-skin #rank-list-ctnr-box{background-image:none!important}.simplify-guard .guard-danmaku::before{border-image:none!important;background-color:transparent!important}.simplify-guard .guard-danmaku{margin:0!important;padding:4px 5px!important}.simplify-guard .guard-danmaku::after{background-image:none!important}.simplify-liveroom-settings>ul>li{padding:8px 12px;display:flex;align-items:center}.simplify-liveroom-settings>ul>li:hover{background:rgba(0,0,0,.16)}`; -offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/simplify-liveroom.min.js"] = (()=>{return(e,i)=>{const s={vip:"姥爷图标",fansMedal:"粉丝勋章",title:"活动头衔",userLevel:"用户等级",guard:"舰长图标",systemMessage:"全区广播",welcomeMessage:"欢迎信息",popup:"抽奖提示",skin:"房间皮肤"};return{widget:{condition:()=>document.URL.startsWith(`https://live.bilibili.com/`),content:`\n
\n \n 简化直播间\n \n
\n `,success:()=>{const i=document.querySelector("#simplify-liveroom");const t=document.querySelector(".gui-settings-mask");i.addEventListener("click",e=>{const i=document.querySelector(".simplify-liveroom-settings");if(i.contains(e.target)||e.target===i){return}i.classList.toggle("opened")});i.addEventListener("mouseenter",()=>t.classList.add("transparent"));i.addEventListener("mouseleave",()=>t.classList.remove("transparent"));let n=e.simplifyLiveroomSettings.skin;const c=["#head-info-vm","#gift-control-vm","#rank-list-vm","#rank-list-ctnr-box",".gift-panel.base-panel",".gift-panel.extend-panel",".seeds-wrap>div:first-child",".gift-section>div:last-child",".z-gift-package>div>div",".right-action"];const o="live-skin-coloration-area";c.forEach(e=>{SpinQuery.select(e,i=>{Observer.attributes(e,e=>{e.forEach(e=>{if(e.attributeName==="class"){if(n&&i.classList.contains(o)){i.classList.remove(o)}else if(!n&&!i.classList.contains(o)){i.classList.add(o)}}})})})});const a=(e,i)=>{document.body.classList[e?"add":"remove"](`simplify-${i}`);if(i==="skin"){n=e;c.forEach(i=>{SpinQuery.select(i,i=>i.classList[e?"remove":"add"]("live-skin-coloration-area"))})}};new Vue({el:".simplify-liveroom-settings",data:{items:Object.entries(s).map(([i,s])=>{const t=e.simplifyLiveroomSettings[i];a(t,i);return{key:i,name:s,checked:t}})},methods:{itemClick(i){i.checked=!i.checked;a(i.checked,i.key);e.simplifyLiveroomSettings=Object.assign(e.simplifyLiveroomSettings,{[i.key]:i.checked})}}})}}}}})(); +offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/simplify-liveroom.min.js"] = (()=>{return(e,i)=>{const s={vip:"老爷图标",fansMedal:"粉丝勋章",title:"活动头衔",userLevel:"用户等级",guard:"舰长图标",systemMessage:"全区广播",welcomeMessage:"欢迎信息",popup:"抽奖提示",skin:"房间皮肤"};return{widget:{condition:()=>document.URL.startsWith(`https://live.bilibili.com/`),content:`\n
\n \n 简化直播间\n \n
\n `,success:()=>{const i=document.querySelector("#simplify-liveroom");const t=document.querySelector(".gui-settings-mask");i.addEventListener("click",e=>{const i=document.querySelector(".simplify-liveroom-settings");if(i.contains(e.target)||e.target===i){return}i.classList.toggle("opened")});i.addEventListener("mouseenter",()=>t.classList.add("transparent"));i.addEventListener("mouseleave",()=>t.classList.remove("transparent"));let n=e.simplifyLiveroomSettings.skin;const c=["#head-info-vm","#gift-control-vm","#rank-list-vm","#rank-list-ctnr-box",".gift-panel.base-panel",".gift-panel.extend-panel",".seeds-wrap>div:first-child",".gift-section>div:last-child",".z-gift-package>div>div",".right-action"];const o="live-skin-coloration-area";c.forEach(e=>{SpinQuery.select(e,i=>{Observer.attributes(e,e=>{e.forEach(e=>{if(e.attributeName==="class"){if(n&&i.classList.contains(o)){i.classList.remove(o)}else if(!n&&!i.classList.contains(o)){i.classList.add(o)}}})})})});const a=(e,i)=>{document.body.classList[e?"add":"remove"](`simplify-${i}`);if(i==="skin"){n=e;c.forEach(i=>{SpinQuery.select(i,i=>i.classList[e?"remove":"add"]("live-skin-coloration-area"))})}};new Vue({el:".simplify-liveroom-settings",data:{items:Object.entries(s).map(([i,s])=>{const t=e.simplifyLiveroomSettings[i];a(t,i);return{key:i,name:s,checked:t}})},methods:{itemClick(i){i.checked=!i.checked;a(i.checked,i.key);e.simplifyLiveroomSettings=Object.assign(e.simplifyLiveroomSettings,{[i.key]:i.checked})}}})}}}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/skip-charge-list.min.css"] = `.bilibili-player .bilibili-player-area .bilibili-player-electric-panel{display:none!important}`; offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/skip-charge-list.min.js"] = (()=>{return(e,i)=>{async function n(){const e=await SpinQuery.select(()=>document.querySelector("video"));e&&e.addEventListener("ended",async()=>{const e=await SpinQuery.select(()=>document.querySelector(".bilibili-player-electric-panel-jump"));e&&e.click()})}if(Observer.videoChange){Observer.videoChange(n)}else{Observer.childList("#bofqi",n)}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/slip.min.js"] = (()=>{return(t,e)=>{window["Slip"]=function(){"use strict";var t={container:{ariaRole:"listbox",tabIndex:0,focus:false},items:{ariaRole:"option",tabIndex:-1,focus:false}};var e=/Chrome\/[3-5]/.test(navigator.userAgent);var i=e;var n=e;var s=document.createElement("div").style;var o="transition"in s?"transition":"webkitTransition";var a="transform"in s?"transform":"webkitTransform";var r=a==="webkitTransform"?"-webkit-transform":"transform";var h="userSelect"in s?"userSelect":"webkitUserSelect";s[a]="translateZ(0)";var l=s[a]?"translateZ(0) ":"";var c=s[a]?"translateZ(1px) ":"";s=null;var u=0;var d=false;var f=function(){};function g(t,e){if("string"===typeof t)t=document.querySelector(t);if(!t||!t.addEventListener)throw new Error("Please specify DOM node to attach to");if(!this||this===window)return new g(t,e);this.options=e=e||{};this.options.keepSwipingPercent=e.keepSwipingPercent||0;this.options.minimumSwipeVelocity=e.minimumSwipeVelocity||1;this.options.minimumSwipeTime=e.minimumSwipeTime||110;this.options.ignoredElements=e.ignoredElements||[];if(!Array.isArray(this.options.ignoredElements))throw new Error("ignoredElements must be an Array");this.cancel=this.setState.bind(this,this.states.idle);this.onTouchStart=this.onTouchStart.bind(this);this.onTouchMove=this.onTouchMove.bind(this);this.onTouchEnd=this.onTouchEnd.bind(this);this.onMouseDown=this.onMouseDown.bind(this);this.onMouseMove=this.onMouseMove.bind(this);this.onMouseUp=this.onMouseUp.bind(this);this.onMouseLeave=this.onMouseLeave.bind(this);this.onSelection=this.onSelection.bind(this);this.onContainerFocus=this.onContainerFocus.bind(this);this.setState(this.states.idle);this.attach(t)}function m(t){var e=t.style[a];if(e){return{value:e,original:e}}if(window.getComputedStyle){var i=window.getComputedStyle(t).getPropertyValue(r);if(i&&i!=="none")return{value:i,original:""}}return{value:"",original:""}}function v(t,e){var i=0;var n=0;for(var s=0;s20&&t.y20){this.setState(this.states.idle)}if(t.x>t.y*1.2)return false},onLeave:function(){this.setState(this.states.idle)},onEnd:function(){var t=this.dispatch(this.target.originalTarget,"tap");this.setState(this.states.idle);return t}}},swipe:function t(){var e=false;var i=this.container;var n=v(this.target,this.container.childNodes);i.classList.add("slip-swiping-container");function s(){i.classList.remove("slip-swiping-container")}this.target.height=this.target.node.offsetHeight;return{leaveState:function(){if(e){this.animateSwipe(function(t){t.node.style[a]=t.baseTransform.original;if(this.dispatch(t.node,"afterswipe")){s();return true}else{this.animateToZero(undefined,t)}}.bind(this))}else{this.animateToZero(s)}},onMove:function(){var t=this.getTotalMovement();if(Math.abs(t.y)this.options.minimumSwipeVelocity&&t.time>this.options.minimumSwipeTime||this.options.keepSwipingPercent&&s>this.options.keepSwipingPercent;if(o){if(this.dispatch(this.target.node,"swipe",{direction:t.directionX,originalIndex:n})){e=true}}else{this.dispatch(this.target.node,"cancelswipe")}this.setState(this.states.idle);return!o}}},reorder:function e(){if(this.target.node.focus&&t.items.focus){this.target.node.focus()}this.target.height=this.target.node.offsetHeight;var i;if(this.options.ignoredElements.length){var s=this.container;var o=s.tagName.toLowerCase();if(s.getAttribute("id")){o="#"+s.getAttribute("id")}else if(s.classList.length){o+="."+s.getAttribute("class").replace(" ",".")}o+=" > ";this.options.ignoredElements.forEach(function(t){o+=":not("+t+")"});try{i=s.parentNode.querySelectorAll(o)}catch(t){if(t instanceof DOMException&&t.name==="SyntaxError")throw new Error("ignoredElements you specified contain invalid query");else throw t}}else{i=this.container.childNodes}var r=v(this.target,i);var u;var d=this.target.node.offsetTop+this.target.height/2;var f=[];for(var g=0;gt.y){n=e}else if(i.pos>0&&t.y>0&&i.post.y){break}}i=e}else{for(e=f.length-1;e>=0;e--){if(f[e].pos1){this.setState(this.states.idle);return}if(!this.setTarget(t))return;this.startAtPosition({x:t.touches[0].clientX,y:t.touches[0].clientY,time:t.timeStamp})},setTarget:function(t){var e=this.findTargetNode(t.target);if(!e){this.setState(this.states.idle);return false}var i=this.options.scrollContainer;if(!i){var n=document.scrollingElement||document.documentElement;i=e.parentNode;while(i){if(i==n)break;if(i!=document.body&&i.scrollHeight>i.clientHeight&&window.getComputedStyle(i)["overflow-y"]!="visible")break;i=i.parentNode}i=i||n}this.target={originalTarget:t.target,node:e,scrollContainer:i,origScrollTop:i.scrollTop,origScrollHeight:i.scrollHeight,baseTransform:m(e)};return true},startAtPosition:function(t){this.startPosition=this.previousPosition=this.latestPosition=t;this.setState(this.states.undecided)},updatePosition:function(t,e){if(this.target==null){return}this.latestPosition=e;if(this.state.onMove){if(this.state.onMove.call(this)===false){t.preventDefault()}}if(this.latestPosition.time-this.previousPosition.time>100){this.previousPosition=this.latestPosition}},onMouseMove:function(t){t.stopPropagation();this.updatePosition(t,{x:t.clientX,y:t.clientY,time:t.timeStamp})},onTouchMove:function(t){t.stopPropagation();this.updatePosition(t,{x:t.touches[0].clientX,y:t.touches[0].clientY,time:t.timeStamp});this.canPreventScrolling=false},onMouseUp:function(t){t.stopPropagation();if(this.usingTouch||t.button!==0)return;if(this.state.onEnd&&false===this.state.onEnd.call(this)){t.preventDefault()}},onTouchEnd:function(t){t.stopPropagation();if(t.touches.length>1){this.cancel()}else if(this.state.onEnd&&false===this.state.onEnd.call(this)){t.preventDefault()}},getTotalMovement:function(){var t=this.target.scrollContainer.scrollTop-this.target.origScrollTop;return{x:this.latestPosition.x-this.startPosition.x,y:this.latestPosition.y-this.startPosition.y+t,time:this.latestPosition.time-this.startPosition.time}},getAbsoluteMovement:function(){var t=this.getTotalMovement();return{x:Math.abs(t.x),y:Math.abs(t.y),time:t.time,directionX:t.x<0?"left":"right",directionY:t.y<0?"up":"down"}},updateScrolling:function(){var t=40,e=0;var i=this.target.scrollContainer,n=i.getBoundingClientRect(),s=this.target.node.getBoundingClientRect(),o=Math.min(n.bottom,window.innerHeight)-s.bottom,a=s.top-Math.max(n.top,0),r=this.target.origScrollHeight-Math.min(i.clientHeight,window.innerHeight);if(o0?"":"-")+"100%,0) "+l+e.baseTransform.value;setTimeout(function(){if(t.call(this,e)){i.forEach(function(t){t.node.style[a]=n+t.baseTransform.value});setTimeout(function(){i.forEach(function(t){t.node.style[a]="translate(0,0) "+l+t.baseTransform.value});setTimeout(function(){i.forEach(function(t){t.node.style[a]=t.baseTransform.original})},101)},1)}}.bind(this),101)}};if("function"===typeof define&&define.amd){define(function(){return g})}if("object"===typeof module&&module.exports){module.exports=g}return g}()}})(); diff --git a/bilibili-evolved.preview-offline.user.js b/bilibili-evolved.preview-offline.user.js index b3f8dae05..252005272 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 321.23 +// @version 321.26 // @description Bilibili Evolved 的预览离线版, 可以抢先体验新功能, 并且所有功能都已内置于脚本中. // @author Grant Howard, Coulomb-G // @copyright 2019, Grant Howard (https://github.com/the1812) & Coulomb-G (https://github.com/Coulomb-G) @@ -1138,7 +1138,7 @@ offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/m offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/settings-tooltip.zh-CN.min.js"] = (()=>{return(a,n)=>{const s=new Map([["useDefaultPlayerMode",`控制是否使用默认播放器模式, 可以为常规, 宽屏, 网页全屏全屏.`],["defaultPlayerMode",`设置默认的播放器模式.`],["applyPlayerModeOnPlay",`是否在播放时应用模式, 若选择否就会在未开始播放时就应用.`],["useDefaultPlayerLayout",`设置默认的播放器布局, 尽量在相应的页面里设置(比如在番剧播放页面设置番剧播放器布局), 否则可能没有效果.\n- 旧版: 传统布局\n- 新版: 视频区默认的新版布局\n注: 旧版布局中, 很多脚本功能将不适用.`],["defaultPlayerLayout",`设置视频区的布局.`],["defaultBangumiLayout",`设置番剧区的布局.`],["useDefaultVideoQuality",`进入视频时自动选择指定的画质, 若视频最高画质低于所选画质, 则使用视频的最高画质.`],["defaultVideoQuality",`设定自动选择的视频画质.`],["autoLightOff",`首次播放时, 自动进入关灯模式, 并在播放结束后自动开灯.`],["useDefaultDanmakuSettings",`设置默认是否开启弹幕, 以及是否记住防挡字幕和智能防挡弹幕.`],["enableDanmaku",`控制弹幕是否默认开启.`],["rememberDanmakuSettings",`控制是否记住弹幕设置, 包括防挡字幕和智能防挡弹幕. 在播放器中改动这些设置后, 每个视频都会默认使用这些设置.`],["expandDanmakuList",`新版播放页面中, 弹幕列表默认收起以显示推荐的其他视频. 启用此功能可在每次加载视频时自动展开弹幕列表.`],["expandDescription",`长的视频简介默认会被折叠, 启用此功能可以强制展开完整的视频简介.`],["autoPlay",`进入视频页面时自动开始播放视频.`],["autoContinue",`播放视频时如果检测到历史记录信息(上次看到...消息), 则自动跳转到相应的时间播放.`],["skipChargeList",`自动跳过视频结尾的充电鸣谢.`],["framePlayback",`在播放器的时间右边增加两个按钮, 用于精细调整视频时间. 支持键盘快捷键Shift+/. (旧版播放器只能用键盘快捷键, 不会显示按钮)`],["playerFocus",`进入视频/番剧页面时, 自动定位到播放器.`],["playerFocusOffset",`定位时的竖直偏移量, 单位为像素(px).`],["customStyleColor",`设定顶栏(自定义顶栏启用时)和夜间模式使用的主题色, 可以点击颜色预览的圆圈打开色板, 其中含有预定义的16种主题色, 也可以在右侧的文本框直接输入任何有效的16进制颜色值(#rrggbb#rgb).`],["useNewStyle",`主要会改变顶栏的样式, 并有一些其他地方的界面微调:\n- 为播放器增加主题色投影\n- 可控制顶栏对横幅的透明度\n- 使播放器按钮垂直对齐\n- 使部分搜索栏的提示文字的颜色更清晰\n- 隐藏播放页面的"返回旧版"侧栏\n- 修复直播间一些文字初始状态不正确\n- 窄屏幕下强制保留弹幕发送栏`],["blurBackgroundOpacity",`设置顶栏对横幅的透明度(0~1), 数值越高顶栏越淡, 当横幅关闭时此选项无效.`],["useDarkStyle",`夜间模式更适合光线暗的环境, 并会大量应用主题颜色.`],["darkSchedule",`设置一个使用夜间模式的时间段, 进入/离开此时间段时, 会自动开启/关闭夜间模式.\n结束时间小于起始时间时将视为次日, 如18:006:00表示晚上18:00到次日6:00.`],["darkScheduleStart",`设置计划时段的起始时间.`],["darkScheduleEnd",`设置计划时段的结束时间.`],["compactLayout",`设置首页是否使用紧凑布局, 视频的间距会减小并削去圆角, 分区栏的图标会使用高清重制版. 目前仅支持首页, 其他分区的样式后续会添加.`],["useCommentStyle",`- 删除热评头像下方的关注按钮\n- 删除用户的等级标识\n- 删除发送源信息(来自安卓客户端这种)\n- 发送时间移动到右上角\n- 位图图标全部换用矢量图标, 高分屏不会模糊\n注: 关注和等级可以通过鼠标停留在头像上, 在弹出的资料卡小窗中查看.`],["simplifyLiveroom",`- 隐藏姥爷图标\n- 隐藏粉丝勋章\n- 隐藏活动头衔\n- 隐藏用户等级\n- 隐藏舰长图标\n- 隐藏全区广播\n- 隐藏欢迎信息 (xxx姥爷进入直播间)\n- 隐藏抽奖提示 (开通舰长, 小飞船抽奖等)\n- 禁用直播间皮肤\n每一项都可以在附加功能中单独选择是否隐藏.`],["preserveRank",`控制是否在搜索框左侧显示排行榜图标.`],["blurVideoControl",`模糊视频控制栏背景, 原版的阴影效果将无效.`],["customControlBackground",`给视频控制栏附上半透明的黑色, 代替原来的阴影.`],["customControlBackgroundOpacity",`设置控制栏着色的黑色不透明度(0~1), 数值越大黑色越浓.`],["harunaScale",`根据屏幕DPI缩放直播看板娘的大小以提高像素的清晰度.`],["removeLiveWatermark",`删除观看直播时角落的水印.`],["removeVideoTopMask",`删除视频里鼠标经过时出现在右上角的覆盖层.`],["removeAds",`删除站内的各种广告. 包括首页的推广模块, 手机app推荐, 视频页面右侧的广告等.`],["watchLaterRedirect",`将稍后再看的链接重定向为普通播放网址, 以使用新版播放页面.`],["favoritesRedirect",`将个人空间收藏夹里的视频重定向为直链, 而不是收藏夹播单链接.`],["hideTopSearch",`将搜索框的推荐词替换为搜索.`],["fullTweetsTitle",`在顶栏的动态预览框中, 总是展开完整的标题.`],["fullPageTitle",`在视频选集列表中, 总是展开完整的标题.`],["showDeadVideoTitle",`在个人空间中, 为已失效视频恢复标题和封面.`],["useBiliplusRedirect",`将失效视频重定向到BiliPlus.`],["biliplusRedirect",`在视频/番剧/空间中, 附加功能"转到BiliPlus", 点击可以转到BiliPlus上对应的页面.`],["imageResolution",`根据屏幕DPI请求更高分辨率的图片, 例如DPI缩放200%则请求2倍的分辨率, 加载时间也会相应变长一些.`],["oldTweets",`将新版动态的链接换为旧版动态, 同时可在附加功能中在新旧动态间切换.`],["touchNavBar",`删除顶栏右侧的一级链接(从大会员历史), 以方便触屏设备快速预览信息. 被删除的链接可从各预览中的查看更多进入.`],["comboLike",`为素质三连(长按点赞)启用触摸支持.`],["touchVideoPlayer",`增大控制栏的按钮间距, 使触摸操作更准确. 并为播放器启用触摸支持:\n- 左右滑动可调整进度\n- 上下滑动可调整音量\n- 进度调整可在左上角和右上角取消\n- 在不同位置滑动, 可以使用3档不同的灵敏度.`],["touchVideoPlayerAnimation",`决定是否要对触摸调整的提示框使用出现/消失动画, 此动画可能导致掉帧.`],["touchVideoPlayerDoubleTapControl",`将操作方式更改为: 单击显示/隐藏控制栏, 双击播放/暂停.`],["toast",`允许在网页左下角显示来自本脚本的消息, 如更新提醒, 错误提示等.`],["toastInternalError",`开启后, 错误消息将显示详细的技术性错误信息及堆栈跟踪, 这通常用于准确地确定问题发生的原因, 所以报告问题时这些信息会非常有用.`],["useCache",`使用缓存以提高脚本的加载速度.`],["outerWatchlater",`将视频页面菜单里的稍后再看移到外面.`],["i18n",`为界面中一些常用文本提供翻译.`],["i18nLanguage",`翻译的目标语言.`],["customNavbar",`启用自定义顶栏, 替代原版的顶栏, 仅对主站生效, 不影响直播/相簿/会员购等.`],["customNavbarFill",`是否使用主题色填充顶栏.`],["allNavbarFill",`是否使用主题色填充其他的顶栏, 包括直播/相簿/会员购等.`],["customNavbarShadow",`是否为顶栏添加一层阴影效果.`],["customNavbarCompact",`是否为顶栏使用更紧凑的布局, 紧凑布局将使用更小的间距, 以及在视频标题过长时用...省略后面的部分.`],["customNavbarBlur",`是否在顶部横幅存在时, 使用背景模糊效果.`],["playerShadow",`为播放器添加主题色投影.`],["narrowDanmaku",`在网页全屏时, 即使宽度过小也强制保留弹幕发送栏, 注意这可能导致右侧的功能按钮挤出边界.`],["hideOldEntry",`隐藏播放页右侧的返回旧版入口.`],["hideBanner",`隐藏首页顶部横幅.`],["allowJumpContinue",`当历史记录的集数与当前打开的不一致时, 仍然自动跳转.`],["hideBangumiReviews",`隐藏番剧播放页面里的点评板块.`],["videoScreenshot",`启用视频快速截图, 将在播放器的时间右边增加一个截图按钮. 支持键盘快捷键Ctrl+Alt+C. (旧版播放器只能用键盘快捷键, 不会显示按钮)`],["filenameFormat",`自定义文件命名格式, 作用于下载弹幕, 下载视频, 视频截图, 查看封面.\n可以使用的变量有:\n- title: 视频标题/直播间标题\n- ep: 选集标题\n- aid: AV号\n- cid: CID (每个视频的唯一编号, AV号对应的视频可能有多集)\n- lid: 直播间号\n- y/M/d: 年/月/日\n- h/m/s/ms: 时/分/秒/毫秒\n\n默认的格式是[title][ - ep], 标题+选集标题, 当没有选集标题时则只有标题.\n\n变量要放在方括号里, 而方括号里的其他内容会在变量有效时出现. 比如格式如果写成[title] - [ep], 那么即使没有选集标题, 中间那个 - 也会出现在文件名里. 如果像默认那样放在方括号里, 没有选集标题时, - 也不会出现.\n\n例如, 想要标题+AV号+时间的格式, 可以设定为[title][ AVaid] [y]-[M]-[d] [h]-[m]-[s], 能够得到类似xxxx AV23333 2019-05-29 19-59-44的名字.`]]);return{export:{toolTips:s}}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/show-dead-video-title.min.js"] = (()=>{return(t,a)=>{function e(){const a=$(".disabled[data-aid]").removeClass("disabled");a.each(async(a,e)=>{const i=$(e);const r=i.attr("data-aid");let s=i.find("img").attr("alt");if(s==="已失效视频"){const t=JSON.parse(await Ajax.getText(`https://api.bilibili.com/x/player/pagelist?aid=${r}`));if(t.code===0){const a=t.data.map(t=>t.part);[s]=a}else{console.warn("[显示失效视频信息] Page List API 未成功.");console.warn(t)}}const l=(()=>{if(t.useBiliplusRedirect){return`https://hd.biliplus.com/video/av${r}`}else{return`//www.bilibili.com/video/av${r}`}})();i.find("a.cover").attr("target","_blank").attr("href",l);i.find("a.title").attr("title",s).attr("target","_blank").attr("href",l).text(s)})}SpinQuery.any(()=>$("#app>.s-space"),()=>{Observer.childListSubtree("#app>.s-space",e)})}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/simplify-liveroom.min.css"] = `.simplify-fansMedal .fans-medal-item-ctnr,.simplify-guard i.guard-icon,.simplify-popup .chat-popups-section,.simplify-popup .link-popup-ctnr,.simplify-systemMessage .system-msg,.simplify-title .title-label,.simplify-userLevel .user-level-icon,.simplify-vip .vip-icon,.simplify-welcomeMessage .welcome-guard,.simplify-welcomeMessage .welcome-msg{display:none!important}.simplify-skin #gift-control-vm,.simplify-skin #head-info-vm,.simplify-skin #rank-list-ctnr-box{background-image:none!important}.simplify-guard .guard-danmaku::before{border-image:none!important;background-color:transparent!important}.simplify-guard .guard-danmaku{margin:0!important;padding:4px 5px!important}.simplify-guard .guard-danmaku::after{background-image:none!important}.simplify-liveroom-settings>ul>li{padding:8px 12px;display:flex;align-items:center}.simplify-liveroom-settings>ul>li:hover{background:rgba(0,0,0,.16)}`; -offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/simplify-liveroom.min.js"] = (()=>{return(e,i)=>{const s={vip:"姥爷图标",fansMedal:"粉丝勋章",title:"活动头衔",userLevel:"用户等级",guard:"舰长图标",systemMessage:"全区广播",welcomeMessage:"欢迎信息",popup:"抽奖提示",skin:"房间皮肤"};return{widget:{condition:()=>document.URL.startsWith(`https://live.bilibili.com/`),content:`\n
\n \n 简化直播间\n \n
\n `,success:()=>{const i=document.querySelector("#simplify-liveroom");const t=document.querySelector(".gui-settings-mask");i.addEventListener("click",e=>{const i=document.querySelector(".simplify-liveroom-settings");if(i.contains(e.target)||e.target===i){return}i.classList.toggle("opened")});i.addEventListener("mouseenter",()=>t.classList.add("transparent"));i.addEventListener("mouseleave",()=>t.classList.remove("transparent"));let n=e.simplifyLiveroomSettings.skin;const c=["#head-info-vm","#gift-control-vm","#rank-list-vm","#rank-list-ctnr-box",".gift-panel.base-panel",".gift-panel.extend-panel",".seeds-wrap>div:first-child",".gift-section>div:last-child",".z-gift-package>div>div",".right-action"];const o="live-skin-coloration-area";c.forEach(e=>{SpinQuery.select(e,i=>{Observer.attributes(e,e=>{e.forEach(e=>{if(e.attributeName==="class"){if(n&&i.classList.contains(o)){i.classList.remove(o)}else if(!n&&!i.classList.contains(o)){i.classList.add(o)}}})})})});const a=(e,i)=>{document.body.classList[e?"add":"remove"](`simplify-${i}`);if(i==="skin"){n=e;c.forEach(i=>{SpinQuery.select(i,i=>i.classList[e?"remove":"add"]("live-skin-coloration-area"))})}};new Vue({el:".simplify-liveroom-settings",data:{items:Object.entries(s).map(([i,s])=>{const t=e.simplifyLiveroomSettings[i];a(t,i);return{key:i,name:s,checked:t}})},methods:{itemClick(i){i.checked=!i.checked;a(i.checked,i.key);e.simplifyLiveroomSettings=Object.assign(e.simplifyLiveroomSettings,{[i.key]:i.checked})}}})}}}}})(); +offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/simplify-liveroom.min.js"] = (()=>{return(e,i)=>{const s={vip:"老爷图标",fansMedal:"粉丝勋章",title:"活动头衔",userLevel:"用户等级",guard:"舰长图标",systemMessage:"全区广播",welcomeMessage:"欢迎信息",popup:"抽奖提示",skin:"房间皮肤"};return{widget:{condition:()=>document.URL.startsWith(`https://live.bilibili.com/`),content:`\n
\n \n 简化直播间\n \n
\n `,success:()=>{const i=document.querySelector("#simplify-liveroom");const t=document.querySelector(".gui-settings-mask");i.addEventListener("click",e=>{const i=document.querySelector(".simplify-liveroom-settings");if(i.contains(e.target)||e.target===i){return}i.classList.toggle("opened")});i.addEventListener("mouseenter",()=>t.classList.add("transparent"));i.addEventListener("mouseleave",()=>t.classList.remove("transparent"));let n=e.simplifyLiveroomSettings.skin;const c=["#head-info-vm","#gift-control-vm","#rank-list-vm","#rank-list-ctnr-box",".gift-panel.base-panel",".gift-panel.extend-panel",".seeds-wrap>div:first-child",".gift-section>div:last-child",".z-gift-package>div>div",".right-action"];const o="live-skin-coloration-area";c.forEach(e=>{SpinQuery.select(e,i=>{Observer.attributes(e,e=>{e.forEach(e=>{if(e.attributeName==="class"){if(n&&i.classList.contains(o)){i.classList.remove(o)}else if(!n&&!i.classList.contains(o)){i.classList.add(o)}}})})})});const a=(e,i)=>{document.body.classList[e?"add":"remove"](`simplify-${i}`);if(i==="skin"){n=e;c.forEach(i=>{SpinQuery.select(i,i=>i.classList[e?"remove":"add"]("live-skin-coloration-area"))})}};new Vue({el:".simplify-liveroom-settings",data:{items:Object.entries(s).map(([i,s])=>{const t=e.simplifyLiveroomSettings[i];a(t,i);return{key:i,name:s,checked:t}})},methods:{itemClick(i){i.checked=!i.checked;a(i.checked,i.key);e.simplifyLiveroomSettings=Object.assign(e.simplifyLiveroomSettings,{[i.key]:i.checked})}}})}}}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/skip-charge-list.min.css"] = `.bilibili-player .bilibili-player-area .bilibili-player-electric-panel{display:none!important}`; offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/skip-charge-list.min.js"] = (()=>{return(e,i)=>{async function n(){const e=await SpinQuery.select(()=>document.querySelector("video"));e&&e.addEventListener("ended",async()=>{const e=await SpinQuery.select(()=>document.querySelector(".bilibili-player-electric-panel-jump"));e&&e.click()})}if(Observer.videoChange){Observer.videoChange(n)}else{Observer.childList("#bofqi",n)}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/slip.min.js"] = (()=>{return(t,e)=>{window["Slip"]=function(){"use strict";var t={container:{ariaRole:"listbox",tabIndex:0,focus:false},items:{ariaRole:"option",tabIndex:-1,focus:false}};var e=/Chrome\/[3-5]/.test(navigator.userAgent);var i=e;var n=e;var s=document.createElement("div").style;var o="transition"in s?"transition":"webkitTransition";var a="transform"in s?"transform":"webkitTransform";var r=a==="webkitTransform"?"-webkit-transform":"transform";var h="userSelect"in s?"userSelect":"webkitUserSelect";s[a]="translateZ(0)";var l=s[a]?"translateZ(0) ":"";var c=s[a]?"translateZ(1px) ":"";s=null;var u=0;var d=false;var f=function(){};function g(t,e){if("string"===typeof t)t=document.querySelector(t);if(!t||!t.addEventListener)throw new Error("Please specify DOM node to attach to");if(!this||this===window)return new g(t,e);this.options=e=e||{};this.options.keepSwipingPercent=e.keepSwipingPercent||0;this.options.minimumSwipeVelocity=e.minimumSwipeVelocity||1;this.options.minimumSwipeTime=e.minimumSwipeTime||110;this.options.ignoredElements=e.ignoredElements||[];if(!Array.isArray(this.options.ignoredElements))throw new Error("ignoredElements must be an Array");this.cancel=this.setState.bind(this,this.states.idle);this.onTouchStart=this.onTouchStart.bind(this);this.onTouchMove=this.onTouchMove.bind(this);this.onTouchEnd=this.onTouchEnd.bind(this);this.onMouseDown=this.onMouseDown.bind(this);this.onMouseMove=this.onMouseMove.bind(this);this.onMouseUp=this.onMouseUp.bind(this);this.onMouseLeave=this.onMouseLeave.bind(this);this.onSelection=this.onSelection.bind(this);this.onContainerFocus=this.onContainerFocus.bind(this);this.setState(this.states.idle);this.attach(t)}function m(t){var e=t.style[a];if(e){return{value:e,original:e}}if(window.getComputedStyle){var i=window.getComputedStyle(t).getPropertyValue(r);if(i&&i!=="none")return{value:i,original:""}}return{value:"",original:""}}function v(t,e){var i=0;var n=0;for(var s=0;s20&&t.y20){this.setState(this.states.idle)}if(t.x>t.y*1.2)return false},onLeave:function(){this.setState(this.states.idle)},onEnd:function(){var t=this.dispatch(this.target.originalTarget,"tap");this.setState(this.states.idle);return t}}},swipe:function t(){var e=false;var i=this.container;var n=v(this.target,this.container.childNodes);i.classList.add("slip-swiping-container");function s(){i.classList.remove("slip-swiping-container")}this.target.height=this.target.node.offsetHeight;return{leaveState:function(){if(e){this.animateSwipe(function(t){t.node.style[a]=t.baseTransform.original;if(this.dispatch(t.node,"afterswipe")){s();return true}else{this.animateToZero(undefined,t)}}.bind(this))}else{this.animateToZero(s)}},onMove:function(){var t=this.getTotalMovement();if(Math.abs(t.y)this.options.minimumSwipeVelocity&&t.time>this.options.minimumSwipeTime||this.options.keepSwipingPercent&&s>this.options.keepSwipingPercent;if(o){if(this.dispatch(this.target.node,"swipe",{direction:t.directionX,originalIndex:n})){e=true}}else{this.dispatch(this.target.node,"cancelswipe")}this.setState(this.states.idle);return!o}}},reorder:function e(){if(this.target.node.focus&&t.items.focus){this.target.node.focus()}this.target.height=this.target.node.offsetHeight;var i;if(this.options.ignoredElements.length){var s=this.container;var o=s.tagName.toLowerCase();if(s.getAttribute("id")){o="#"+s.getAttribute("id")}else if(s.classList.length){o+="."+s.getAttribute("class").replace(" ",".")}o+=" > ";this.options.ignoredElements.forEach(function(t){o+=":not("+t+")"});try{i=s.parentNode.querySelectorAll(o)}catch(t){if(t instanceof DOMException&&t.name==="SyntaxError")throw new Error("ignoredElements you specified contain invalid query");else throw t}}else{i=this.container.childNodes}var r=v(this.target,i);var u;var d=this.target.node.offsetTop+this.target.height/2;var f=[];for(var g=0;gt.y){n=e}else if(i.pos>0&&t.y>0&&i.post.y){break}}i=e}else{for(e=f.length-1;e>=0;e--){if(f[e].pos1){this.setState(this.states.idle);return}if(!this.setTarget(t))return;this.startAtPosition({x:t.touches[0].clientX,y:t.touches[0].clientY,time:t.timeStamp})},setTarget:function(t){var e=this.findTargetNode(t.target);if(!e){this.setState(this.states.idle);return false}var i=this.options.scrollContainer;if(!i){var n=document.scrollingElement||document.documentElement;i=e.parentNode;while(i){if(i==n)break;if(i!=document.body&&i.scrollHeight>i.clientHeight&&window.getComputedStyle(i)["overflow-y"]!="visible")break;i=i.parentNode}i=i||n}this.target={originalTarget:t.target,node:e,scrollContainer:i,origScrollTop:i.scrollTop,origScrollHeight:i.scrollHeight,baseTransform:m(e)};return true},startAtPosition:function(t){this.startPosition=this.previousPosition=this.latestPosition=t;this.setState(this.states.undecided)},updatePosition:function(t,e){if(this.target==null){return}this.latestPosition=e;if(this.state.onMove){if(this.state.onMove.call(this)===false){t.preventDefault()}}if(this.latestPosition.time-this.previousPosition.time>100){this.previousPosition=this.latestPosition}},onMouseMove:function(t){t.stopPropagation();this.updatePosition(t,{x:t.clientX,y:t.clientY,time:t.timeStamp})},onTouchMove:function(t){t.stopPropagation();this.updatePosition(t,{x:t.touches[0].clientX,y:t.touches[0].clientY,time:t.timeStamp});this.canPreventScrolling=false},onMouseUp:function(t){t.stopPropagation();if(this.usingTouch||t.button!==0)return;if(this.state.onEnd&&false===this.state.onEnd.call(this)){t.preventDefault()}},onTouchEnd:function(t){t.stopPropagation();if(t.touches.length>1){this.cancel()}else if(this.state.onEnd&&false===this.state.onEnd.call(this)){t.preventDefault()}},getTotalMovement:function(){var t=this.target.scrollContainer.scrollTop-this.target.origScrollTop;return{x:this.latestPosition.x-this.startPosition.x,y:this.latestPosition.y-this.startPosition.y+t,time:this.latestPosition.time-this.startPosition.time}},getAbsoluteMovement:function(){var t=this.getTotalMovement();return{x:Math.abs(t.x),y:Math.abs(t.y),time:t.time,directionX:t.x<0?"left":"right",directionY:t.y<0?"up":"down"}},updateScrolling:function(){var t=40,e=0;var i=this.target.scrollContainer,n=i.getBoundingClientRect(),s=this.target.node.getBoundingClientRect(),o=Math.min(n.bottom,window.innerHeight)-s.bottom,a=s.top-Math.max(n.top,0),r=this.target.origScrollHeight-Math.min(i.clientHeight,window.innerHeight);if(o0?"":"-")+"100%,0) "+l+e.baseTransform.value;setTimeout(function(){if(t.call(this,e)){i.forEach(function(t){t.node.style[a]=n+t.baseTransform.value});setTimeout(function(){i.forEach(function(t){t.node.style[a]="translate(0,0) "+l+t.baseTransform.value});setTimeout(function(){i.forEach(function(t){t.node.style[a]=t.baseTransform.original})},101)},1)}}.bind(this),101)}};if("function"===typeof define&&define.amd){define(function(){return g})}if("object"===typeof module&&module.exports){module.exports=g}return g}()}})(); diff --git a/min/simplify-liveroom.min.js b/min/simplify-liveroom.min.js index cf1b2885d..76d30d004 100644 --- a/min/simplify-liveroom.min.js +++ b/min/simplify-liveroom.min.js @@ -1 +1 @@ -(()=>{return(e,i)=>{const s={vip:"姥爷图标",fansMedal:"粉丝勋章",title:"活动头衔",userLevel:"用户等级",guard:"舰长图标",systemMessage:"全区广播",welcomeMessage:"欢迎信息",popup:"抽奖提示",skin:"房间皮肤"};return{widget:{condition:()=>document.URL.startsWith(`https://live.bilibili.com/`),content:`\n
\n \n 简化直播间\n \n
\n `,success:()=>{const i=document.querySelector("#simplify-liveroom");const t=document.querySelector(".gui-settings-mask");i.addEventListener("click",e=>{const i=document.querySelector(".simplify-liveroom-settings");if(i.contains(e.target)||e.target===i){return}i.classList.toggle("opened")});i.addEventListener("mouseenter",()=>t.classList.add("transparent"));i.addEventListener("mouseleave",()=>t.classList.remove("transparent"));let n=e.simplifyLiveroomSettings.skin;const c=["#head-info-vm","#gift-control-vm","#rank-list-vm","#rank-list-ctnr-box",".gift-panel.base-panel",".gift-panel.extend-panel",".seeds-wrap>div:first-child",".gift-section>div:last-child",".z-gift-package>div>div",".right-action"];const o="live-skin-coloration-area";c.forEach(e=>{SpinQuery.select(e,i=>{Observer.attributes(e,e=>{e.forEach(e=>{if(e.attributeName==="class"){if(n&&i.classList.contains(o)){i.classList.remove(o)}else if(!n&&!i.classList.contains(o)){i.classList.add(o)}}})})})});const a=(e,i)=>{document.body.classList[e?"add":"remove"](`simplify-${i}`);if(i==="skin"){n=e;c.forEach(i=>{SpinQuery.select(i,i=>i.classList[e?"remove":"add"]("live-skin-coloration-area"))})}};new Vue({el:".simplify-liveroom-settings",data:{items:Object.entries(s).map(([i,s])=>{const t=e.simplifyLiveroomSettings[i];a(t,i);return{key:i,name:s,checked:t}})},methods:{itemClick(i){i.checked=!i.checked;a(i.checked,i.key);e.simplifyLiveroomSettings=Object.assign(e.simplifyLiveroomSettings,{[i.key]:i.checked})}}})}}}}})(); \ No newline at end of file +(()=>{return(e,i)=>{const s={vip:"老爷图标",fansMedal:"粉丝勋章",title:"活动头衔",userLevel:"用户等级",guard:"舰长图标",systemMessage:"全区广播",welcomeMessage:"欢迎信息",popup:"抽奖提示",skin:"房间皮肤"};return{widget:{condition:()=>document.URL.startsWith(`https://live.bilibili.com/`),content:`\n
\n \n 简化直播间\n \n
\n `,success:()=>{const i=document.querySelector("#simplify-liveroom");const t=document.querySelector(".gui-settings-mask");i.addEventListener("click",e=>{const i=document.querySelector(".simplify-liveroom-settings");if(i.contains(e.target)||e.target===i){return}i.classList.toggle("opened")});i.addEventListener("mouseenter",()=>t.classList.add("transparent"));i.addEventListener("mouseleave",()=>t.classList.remove("transparent"));let n=e.simplifyLiveroomSettings.skin;const c=["#head-info-vm","#gift-control-vm","#rank-list-vm","#rank-list-ctnr-box",".gift-panel.base-panel",".gift-panel.extend-panel",".seeds-wrap>div:first-child",".gift-section>div:last-child",".z-gift-package>div>div",".right-action"];const o="live-skin-coloration-area";c.forEach(e=>{SpinQuery.select(e,i=>{Observer.attributes(e,e=>{e.forEach(e=>{if(e.attributeName==="class"){if(n&&i.classList.contains(o)){i.classList.remove(o)}else if(!n&&!i.classList.contains(o)){i.classList.add(o)}}})})})});const a=(e,i)=>{document.body.classList[e?"add":"remove"](`simplify-${i}`);if(i==="skin"){n=e;c.forEach(i=>{SpinQuery.select(i,i=>i.classList[e?"remove":"add"]("live-skin-coloration-area"))})}};new Vue({el:".simplify-liveroom-settings",data:{items:Object.entries(s).map(([i,s])=>{const t=e.simplifyLiveroomSettings[i];a(t,i);return{key:i,name:s,checked:t}})},methods:{itemClick(i){i.checked=!i.checked;a(i.checked,i.key);e.simplifyLiveroomSettings=Object.assign(e.simplifyLiveroomSettings,{[i.key]:i.checked})}}})}}}}})(); \ No newline at end of file diff --git a/style/simplify-liveroom/simplify-liveroom.js b/style/simplify-liveroom/simplify-liveroom.js index 5bf5a8da2..c361e689a 100644 --- a/style/simplify-liveroom/simplify-liveroom.js +++ b/style/simplify-liveroom/simplify-liveroom.js @@ -1,5 +1,5 @@ const displayNames = { - vip: "姥爷图标", + vip: "老爷图标", fansMedal: "粉丝勋章", title: "活动头衔", userLevel: "用户等级",