115+

为115网盘添加一些功能

当前为 2024-07-02 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name 115+
  3. // @namespace https://github.com/lvzhenbo/115-plus
  4. // @version 1.1.3
  5. // @author lvzhenbo
  6. // @description 为115网盘添加一些功能
  7. // @license MIT
  8. // @icon https://115.com/favicon.ico
  9. // @supportURL https://github.com/lvzhenbo/115-plus/issues
  10. // @match https://115.com/*
  11. // @require https://cdn.jsdelivr.net/npm/vue@3.4.31/dist/vue.global.prod.js
  12. // @require data:application/javascript,%3Bwindow.Vue%3DVue%3B
  13. // @require https://cdn.jsdelivr.net/npm/naive-ui@2.38.2/dist/index.prod.js
  14. // @require https://cdn.jsdelivr.net/npm/xgplayer@3.0.18/dist/index.min.js
  15. // @require https://cdn.jsdelivr.net/npm/xgplayer-hls.js@3.0.18/dist/index.min.js
  16. // @require https://cdn.jsdelivr.net/npm/big-integer@1.6.52/BigInteger.min.js
  17. // @require https://cdn.jsdelivr.net/npm/crypto-js@4.2.0/crypto-js.min.js
  18. // @connect proapi.115.com
  19. // @connect v.anxia.com
  20. // @grant GM_addStyle
  21. // @grant GM_cookie
  22. // @grant GM_getValue
  23. // @grant GM_setValue
  24. // @grant GM_xmlhttpRequest
  25. // ==/UserScript==
  26.  
  27. (e=>{if(typeof GM_addStyle=="function"){GM_addStyle(e);return}const r=document.createElement("style");r.textContent=e,document.head.append(r)})(' @charset "UTF-8";.main[data-v-e1033040]{border-right:1px solid #edeeef;height:100%}.xgplayer.not-allow-autoplay .xgplayer-controls,.xgplayer.xgplayer-nostart .xgplayer-controls,.xgplayer.xgplayer-inactive .controls-autohide{pointer-events:none;visibility:hidden;cursor:default;opacity:0}.xgplayer.not-allow-autoplay .xgplayer-controls-initshow,.xgplayer.xgplayer-nostart .xgplayer-controls-initshow{pointer-events:auto;visibility:visible;opacity:1}.xgplayer .xgplayer-controls{display:block;position:absolute;visibility:visible;height:48px;left:0;right:0;bottom:0;opacity:1;z-index:10;background-image:linear-gradient(180deg,transparent,rgba(0,0,0,.37),rgba(0,0,0,.75),rgba(0,0,0,.75));transition:opacity .5s ease,visibility .5s ease}.xgplayer .xgplayer-controls.show{display:block;opacity:1;visibility:visible;pointer-events:auto}.xgplayer .xg-inner-controls{position:absolute;height:40px;bottom:0;justify-content:space-between;display:flex}.xgplayer .xg-left-grid,.xgplayer .xg-right-grid{position:relative;display:flex;flex-wrap:wrap;flex-shrink:1;height:100%;z-index:1}.xgplayer .xg-right-grid{flex-direction:row-reverse}.xgplayer .xg-right-grid>:first-child{margin-right:0}.xgplayer .xg-right-grid xg-icon{margin-left:0}.xgplayer .xg-left-grid>:first-child{margin-left:0}.xgplayer .xg-left-grid xg-icon{margin-right:0}.xgplayer .xg-center-grid{display:block;position:absolute;left:0;right:0;outline:none;top:-20px;padding:5px 0;text-align:center}.xgplayer .flex-controls .xg-inner-controls{justify-content:space-around;display:flex;bottom:8px}.xgplayer .flex-controls .xg-center-grid{display:flex;flex:1;position:relative;top:0;height:100%;justify-content:space-between;align-items:center;left:0;right:0;padding:0 16px}.xgplayer.xgplayer-mobile .xg-center-grid{z-index:2}.xgplayer.xgplayer-mobile .flex-controls .xg-center-grid{padding:0 8px}.xgplayer .bottom-controls .xg-center-grid{top:20px;padding:0}.xgplayer .bottom-controls .xg-left-grid,.xgplayer .bottom-controls .xg-right-grid{bottom:10px}.xgplayer .mini-controls{background-image:none}.xgplayer .mini-controls .xg-inner-controls{bottom:0;left:0;right:0}.xgplayer .mini-controls .xg-center-grid{bottom:-28px;top:auto;padding:0}.xgplayer .mini-controls .xg-left-grid,.xgplayer .mini-controls .xg-right-grid{display:none}.xgplayer .controls-follow{bottom:70px;transition:bottom .3s ease}.xgplayer.flex-controls .controls-follow{bottom:45px}.xgplayer.xgplayer-inactive .controls-follow,.xgplayer.no-controls .controls-follow,.xgplayer.mini-controls .controls-follow{bottom:10px}.xgplayer-fullscreen-parent{position:fixed;left:0;top:0;width:100%;height:100%;z-index:9999}.xgplayer-fullscreen-parent .xgplayer.xgplayer-is-cssfullscreen,.xgplayer-fullscreen-parent .xgplayer.xgplayer-is-fullscreen{z-index:10;position:absolute}.xgplayer-rotate-parent{position:fixed;top:0;left:100%;bottom:0;right:0;width:100vh;height:100vw;z-index:9999;transform-origin:top left;transform:rotate(90deg)}.xgplayer-rotate-parent .xgplayer.xgplayer-rotate-fullscreen{position:absolute;top:0;left:0;z-index:10;margin:0;padding:0;width:100%;height:100%;transform:rotate(0)}.xgplayer-rotate-parent .xgplayer-mobile video{z-index:-1}.xgplayer{position:relative;width:100%;height:100%;overflow:hidden;font-family:PingFang SC,Helvetica Neue,Helvetica,STHeiTi,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif;font-size:14px;font-weight:400;background:#000;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer}.xgplayer *{margin:0;padding:0;border:0;vertical-align:baseline;white-space:normal;word-wrap:normal;overflow-wrap:normal}.xgplayer ul,.xgplayer li{list-style:none}.xgplayer .xgplayer-none{display:none}.xgplayer.xgplayer-is-fullscreen{position:fixed;top:0;left:0;width:100%;height:100%;margin:0;padding:0;z-index:9999}.xgplayer.xgplayer-is-cssfullscreen{position:fixed;left:0;top:0;width:100%;height:100%;z-index:9999}.xgplayer.xgplayer-rotate-fullscreen{position:fixed;top:0;left:100%;bottom:0;right:0;width:100vh;height:100vw;transform-origin:top left;transform:rotate(90deg);z-index:9999}.xgplayer.xgplayer-rotate-fullscreen.xgplayer-mobile video{z-index:-1}.xgplayer xg-video-container.xg-video-container{position:absolute;top:0;bottom:48px;display:block;width:100%}.xgplayer video{position:absolute;top:0;left:0;width:100%;height:100%;outline:none}.xgplayer[data-xgfill=contain] video{-o-object-fit:contain;object-fit:contain}.xgplayer[data-xgfill=cover] video{-o-object-fit:cover;object-fit:cover}.xgplayer[data-xgfill=fill] video{-o-object-fit:fill;object-fit:fill}.xgplayer .xg-pos{left:10px;right:10px}.xgplayer .xg-margin{margin-left:16px;margin-right:16px}.xgplayer .xg-bottom{bottom:0}.xgplayer .btn-text{position:relative;top:50%;height:24px;font-size:13px;text-align:center}.xgplayer .btn-text span{display:inline-block;min-width:52px;height:24px;line-height:24px;background:#00000061;border-radius:12px}.xgplayer xg-icon{position:relative;box-sizing:border-box;height:40px;margin-left:16px;margin-right:16px;cursor:pointer;color:#fffc;fill:#fff}.xgplayer xg-icon.xg-icon-disable{cursor:not-allowed}.xgplayer xg-icon .xg-tips{top:-30px;left:50%;transform:translate(-50%)}.xgplayer xg-icon:active .xg-tips,.xgplayer xg-icon:hover .xg-tips{display:block}.xgplayer xg-icon:active .xg-tips.hide,.xgplayer xg-icon:hover .xg-tips.hide{display:none}.xgplayer xg-icon .xgplayer-icon{position:relative;top:50%;transform:translateY(-50%);cursor:pointer}.xgplayer xg-icon .xg-icon-disable{cursor:not-allowed}.xgplayer xg-icon .xg-img{width:100%}.xgplayer xg-icon svg,.xgplayer xg-icon img{height:100%;display:block}.xgplayer xg-bar{display:block}.xgplayer.xgplayer-inactive xg-bar,.xgplayer.xgplayer-mini xg-bar{display:none}.xgplayer.xgplayer-inactive .xg-top-bar{display:flex}.xgplayer.xgplayer-inactive .xg-top-bar.top-bar-autohide{display:none}.xgplayer .xg-top-bar{position:absolute;z-index:10;top:0;padding:0 16px;display:flex;height:50px}.xgplayer .xg-top-bar xg-icon{position:relative;top:10px;left:0;width:34px;margin-top:0}.xgplayer .xg-top-bar xg-icon:first-child{margin-left:0}.xgplayer .xg-left-bar,.xgplayer .xg-right-bar{position:absolute;z-index:9;top:50px;bottom:50px;width:50px}.xgplayer .xg-left-bar{left:0}.xgplayer .xg-right-bar{right:0}.xgplayer .xg-tips{display:none;position:absolute;padding:4px 6px;background:#0000008a;border-radius:4px;font-size:12px;color:#fff;text-align:center;white-space:nowrap;opacity:.85}.xgplayer .xg-margin{left:0;right:0}.xgplayer-mobile{-webkit-tap-highlight-color:rgba(0,0,0,0)}.xgplayer-mobile *{text-decoration:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.xgplayer-mobile.xgplayer-rotate-fullscreen .xg-top-bar,.xgplayer-mobile.xgplayer-rotate-fullscreen .xg-pos{left:6%;right:6%}.xgplayer-mobile xg-icon:hover .xg-tips{display:none}.xg-list-slide-scroll::-webkit-scrollbar-track{background-color:transparent;display:none}.xg-list-slide-scroll:hover::-webkit-scrollbar-track{display:block}.xg-list-slide-scroll::-webkit-scrollbar{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#0000;height:4px;width:4px}.xg-list-slide-scroll::-webkit-scrollbar-corner{background:transparent;display:none}.xg-list-slide-scroll::-webkit-scrollbar-thumb{background:#ffffff80;border-radius:3px;display:none;width:4px}.xg-list-slide-scroll:hover::-webkit-scrollbar-thumb{display:block}@media only screen and (max-width: 480px){.xgplayer-mobile xg-icon{margin-right:10px;margin-left:10px}.xgplayer-mobile .xg-top-bar{left:10px;right:10px}}@media screen and (orientation: portrait){.xgplayer-mobile.xgplayer-is-fullscreen .xgplayer-controls,.xgplayer-mobile.xgplayer-is-cssfullscreen .xgplayer-controls{bottom:34px;bottom:constant(safe-area-inset-bottom);bottom:env(safe-area-inset-bottom)}.xgplayer-mobile.xgplayer-is-fullscreen .xg-top-bar,.xgplayer-mobile.xgplayer-is-cssfullscreen .xg-top-bar{top:34px;top:constant(safe-area-inset-top);top:env(safe-area-inset-top)}}@media only screen and (orientation: landscape){.xgplayer-mobile.xgplayer-is-fullscreen .xg-top-bar,.xgplayer-mobile.xgplayer-is-fullscreen .xg-pos{left:6%;right:6%}.xgplayer-mobile.xgplayer-rotate-fullscreen{left:0;width:100vw;height:100vh;transform:rotate(0)}}.xgplayer .xgplayer-screen-container{display:block;width:100%}.xgplayer .xg-options-icon{display:none;cursor:pointer}.xgplayer .xg-options-icon.show{display:block}@keyframes xg_right_options_active{0%{transform:translate(50%)}to{transform:translate(-50%)}}@keyframes xg_right_options_hide{0%{transform:translate(-50%)}to{transform:translate(50%)}}@keyframes xg_left_options_active{0%{transform:translate(-50%)}to{transform:translate(50%)}}@keyframes xg_left_options_hide{0%{transform:translate(50%)}to{transform:translate(-50%)}}.xgplayer .xg-options-list{display:none;position:absolute;z-index:5;width:78px;right:50%;bottom:100%;background:#0000008a;border-radius:1px;transform:translate(50%);cursor:pointer;overflow:auto;height:0;opacity:.85;font-size:14px;color:#fffc}.xgplayer .xg-options-list li{height:20px;line-height:20px;position:relative;padding:4px 0;text-align:center;color:#fffc}.xgplayer .xg-options-list li:hover,.xgplayer .xg-options-list li.selected{color:red;opacity:1}.xgplayer .xg-options-list li:nth-child(1){position:relative;margin-top:12px}.xgplayer .xg-options-list li:last-child{position:relative;margin-bottom:12px}.xgplayer .xg-options-list:hover{opacity:1}.xgplayer .xg-options-list.active{display:block;height:auto}.xgplayer .xg-options-list.xg-side-list{width:20%;height:100%;bottom:0;background:#000000e6;display:flex;flex-direction:column;box-sizing:border-box}.xgplayer .xg-options-list.xg-side-list li{flex:1;width:100%;padding:0;position:relative}.xgplayer .xg-options-list.xg-side-list li span{display:block;position:relative;top:50%;transform:translateY(-50%);pointer-events:none}.xgplayer .xg-options-list.xg-side-list li:nth-child(1){margin-top:20px}.xgplayer .xg-options-list.xg-side-list li:last-child{margin-bottom:20px}.xgplayer .xg-options-list.xg-right-side{right:-10.5%}.xgplayer .xg-options-list.xg-right-side.active{height:100%;animation:xg_right_options_active .2s ease-out forwards}.xgplayer .xg-options-list.xg-right-side.hide{height:100%;animation:xg_right_options_hide .2s ease-in forwards}.xgplayer .xg-options-list.xg-left-side{left:-10.5%;transform:translate(-50%)}.xgplayer .xg-options-list.xg-left-side.active{height:100%;animation:xg_left_options_active .2s ease-out forwards}.xgplayer .xg-options-list.xg-left-side.hide{height:100%;animation:xg_left_options_hide .2s ease-in forwards}@media only screen and (max-width: 480px){.xgplayer-mobile .xg-options-icon.portrait{display:none}.xgplayer-mobile .xg-options-list li:hover{color:#fffc}.xgplayer-mobile .xg-options-list li.selected{color:red}}.xgplayer-replay{display:none}.xgplayer .xgplayer-replay{display:none;position:absolute;left:50%;top:50%;width:100px;height:100px;justify-content:center;align-items:center;flex-direction:column;z-index:5;transform:translate(-50%,-50%);cursor:pointer}.xgplayer .xgplayer-replay .xgplayer-replay-txt{display:inline-block;font-size:14px;color:#fff;line-height:34px;text-align:center}.xgplayer.xgplayer-mobile .xgplayer-replay-svg{width:50px;height:50px}.xgplayer.xgplayer-mobile .xgplayer-replay-txt{line-height:24px;font-size:12px}.xgplayer .xgplayer-poster{display:block;opacity:1;visibility:visible;position:absolute;left:0;top:0;width:100%;height:100%;background-position:center center;background-size:100% auto;background-repeat:no-repeat;transition:opacity .3s ease,visibility .3s ease;pointer-events:none}.xgplayer .xgplayer-poster.hide,.xgplayer.xgplayer-playing .xgplayer-poster{opacity:0;visibility:hidden}.xgplayer.xgplayer-playing .xg-not-hidden,.xgplayer.xgplayer-is-enter .xgplayer-poster.xg-showplay,.xgplayer.xgplayer-playing .xgplayer-poster.xg-showplay,.xgplayer.xgplayer-nostart .xgplayer-poster,.xgplayer.xgplayer-ended .xgplayer-poster,.xgplayer.not-allow-autoplay .xgplayer-poster{opacity:1;visibility:visible}.xgplayer.xgplayer-nostart .xgplayer-poster.hide,.xgplayer.xgplayer-ended .xgplayer-poster.hide,.xgplayer.not-allow-autoplay .xgplayer-poster.hide{opacity:0;visibility:hidden}@keyframes playPause{0%{transform:scale(1);opacity:1}99%{transform:scale(1.3);opacity:0}to{transform:scale(1);opacity:0}}.xgplayer xg-start-inner{display:block;width:100%;height:100%;overflow:hidden;border-radius:50%;background:#00000061}.xgplayer .xgplayer-start{width:70px;height:70px;position:absolute;left:50%;top:50%;z-index:5;transform:translate(-50%,-50%);cursor:pointer}.xgplayer .xgplayer-start svg{width:100%;height:100%}.xgplayer .xgplayer-start.hide,.xgplayer .xgplayer-start.focus-hide{display:none;pointer-events:none}.xgplayer .xgplayer-start:hover{opacity:.85}.xgplayer .xgplayer-start .xg-icon-play{display:block}.xgplayer .xgplayer-start .xg-icon-pause,.xgplayer .xgplayer-start[data-state=pause] .xg-icon-play{display:none}.xgplayer .xgplayer-start[data-state=pause] .xg-icon-pause,.xgplayer .xgplayer-start.interact{display:block}.xgplayer .xgplayer-start.interact xg-start-inner{animation:playPause .4s .1s ease-out forwards}.xgplayer .xgplayer-start.show{display:block}.xgplayer.xgplayer-mobile xg-start-inner{background:initial;border-radius:0}.xgplayer.xgplayer-mobile .xgplayer-start{height:50px;width:50px}.xgplayer.xgplayer-mobile .xgplayer-start:hover{opacity:1}.xgplayer.xgplayer-inactive .xgplayer-start.auto-hide,.xgplayer.xgplayer-is-enter .xgplayer-start.auto-hide,.xgplayer.xgplayer-isloading.xgplayer-playing .xgplayer-start,.xgplayer.xgplayer-is-enter .xgplayer-start,.xgplayer.xgplayer-is-error .xgplayer-start,.xgplayer.xgplayer-is-enter .xgplayer-start.show,.xgplayer.xgplayer-is-error .xgplayer-start.show{display:none}.xgplayer-enter{display:none;position:absolute;left:0;top:0;width:100%;height:100%;background:#000c;z-index:5;pointer-events:none}.xgplayer-enter .show{display:block}.xgplayer-enter .xgplayer-enter-spinner{display:block;position:absolute;z-index:1;left:50%;top:50%;height:100px;width:100px;transform:translate(-50%,-50%)}.xgplayer-enter .xgplayer-enter-spinner div{width:6%;height:13%;background-color:#ffffffb3;position:absolute;left:45%;top:45%;opacity:0;border-radius:30px;animation:fade 1s linear infinite}.xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar1{transform:rotate(0) translateY(-140%);animation-delay:-0s}.xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar2{transform:rotate(30deg) translateY(-140%);animation-delay:-.9163s}.xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar3{transform:rotate(60deg) translateY(-140%);animation-delay:-.833s}.xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar4{transform:rotate(90deg) translateY(-140%);animation-delay:-.7497s}.xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar5{transform:rotate(120deg) translateY(-140%);animation-delay:-.6664s}.xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar6{transform:rotate(150deg) translateY(-140%);animation-delay:-.5831s}.xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar7{transform:rotate(180deg) translateY(-140%);animation-delay:-.4998s}.xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar8{transform:rotate(210deg) translateY(-140%);animation-delay:-.4165s}.xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar9{transform:rotate(240deg) translateY(-140%);animation-delay:-.3332s}.xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar10{transform:rotate(270deg) translateY(-140%);animation-delay:-.2499s}.xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar11{transform:rotate(300deg) translateY(-140%);animation-delay:-.1666s}.xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar12{transform:rotate(330deg) translateY(-142%);animation-delay:-.0833s}@keyframes fade{0%{opacity:1}to{opacity:.25}}.xgplayer.xgplayer-is-enter .xgplayer-enter{display:block;opacity:1;transition:opacity .3s}.xgplayer.xgplayer-nostart .xgplayer-enter{display:none}.xgplayer.xgplayer-mobile .xgplayer-enter .xgplayer-enter-spinner{width:70px;height:70px}.xg-mini-layer{display:none;position:absolute;top:0;left:0;width:100%;height:100%;z-index:11;background:linear-gradient(180deg,#393939e6,#39393900 50.27%)}.xg-mini-layer .mask{pointer-events:none;position:absolute;top:0;left:0;height:100%;width:100%;background-color:#0006}.xg-mini-layer xg-mini-header{display:flex;top:0;left:0;right:40px;box-sizing:border-box;padding:10px 3px 0 8px;justify-content:space-between;color:#fff;font-size:14px;position:absolute;z-index:22}.xg-mini-layer xg-mini-header .xgplayer-pip-disableBtn{pointer-events:all}.xg-mini-layer xg-mini-header #disabledMini{display:none;position:relative}.xg-mini-layer xg-mini-header #disabledMini+label{cursor:pointer;position:relative;display:flex;align-items:center}.xg-mini-layer xg-mini-header #disabledMini+label:before{content:"";color:#ff142b;background-color:transparent;border-radius:2px;border:solid 1px #cdcdcd;width:16px;height:16px;display:inline-block;text-align:center;vertical-align:middle;line-height:16px;margin-right:7px}.xg-mini-layer xg-mini-header #disabledMini:checked+label{color:#ff142b}.xg-mini-layer xg-mini-header #disabledMini:checked+label:before{border-color:#ff142b}.xg-mini-layer xg-mini-header #disabledMini:checked+label:after{content:"";position:absolute;width:4px;height:8px;border-color:#ff142b;border-style:solid;border-width:0px 2px 2px 0px;transform:rotate(45deg);left:6px;top:5px}.xg-mini-layer xg-mini-header .xgplayer-mini-disableBtn xg-tips{position:absolute;padding:4px 6px;white-space:nowrap;bottom:-30px;right:15px;border-radius:4px;background-color:#0000008a;display:none}.xg-mini-layer xg-mini-header .xgplayer-mini-disableBtn:hover #disabledMini+label:before{border-color:#ff142b}.xg-mini-layer xg-mini-header .xgplayer-mini-disableBtn:hover #disabledMini+label{color:#ff142b}.xg-mini-layer xg-mini-header .xgplayer-mini-disableBtn:hover xg-tips{display:block}.xg-mini-layer .mini-cancel-btn{cursor:pointer;display:block;color:#fff;width:40px;height:38px;position:absolute;right:0;top:0;text-align:center;line-height:38px}.xg-mini-layer .play-icon{cursor:pointer;height:48px;width:48px;position:absolute;background:#0000008a;border-radius:24px;top:50%;left:50%;margin:-24px 0 0 -24px}.xg-mini-layer .play-icon svg,.xg-mini-layer .play-icon img{width:50px;height:50px;fill:#faf7f7}.xg-mini-layer .xg-icon-play{display:none}.xg-mini-layer .xg-icon-pause,.xg-mini-layer[data-state=pause] .xg-icon-play{display:block}.xg-mini-layer[data-state=pause] .xg-icon-pause{display:none}.xgplayer-miniicon{position:relative;outline:none;display:block}.xgplayer-miniicon .name{text-align:center;font-size:13px;line-height:20px;height:20px;color:#fffc;line-height:40px}.xgplayer-miniicon .name span{font-size:13px;width:60px;height:20px;line-height:20px;background:#00000061;border-radius:10px;display:inline-block;vertical-align:middle}.xgplayer-mini{position:fixed;width:320px;height:180px;z-index:91;box-shadow:0 4px 7px 2px #0003}.xgplayer-mini:hover{cursor:move}.xgplayer-mini:hover .xg-mini-layer{display:block}.xgplayer-mini.xgplayer-ended .xg-mini-layer{display:none}.xgplayer-mobile .xg-mini-layer .play-icon{background:none;border-radius:initial}.xgplayer.xgplayer-inactive{cursor:none}.xgplayer xg-thumbnail{display:block}.xgplayer xg-trigger{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:absolute;top:0;left:0;height:100%;width:100%}.xgplayer xg-trigger .time-preview{display:none;position:absolute;width:200px;margin:0 auto;padding:0 20px 30px;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;text-shadow:0 0 1px rgba(0,0,0,.54);font-size:18px;text-align:center;pointer-events:none}.xgplayer xg-trigger .time-preview span{line-height:24px}.xgplayer xg-trigger .time-preview .xg-cur{color:red}.xgplayer xg-trigger .time-preview .xg-separator{font-size:14px}.xgplayer xg-trigger .time-preview .xg-seek-show{transform:translate(-10px)}.xgplayer xg-trigger .time-preview .xg-seek-show.xg-back .xg-seek-pre{transform:rotate(180deg) translate(-5px)}.xgplayer xg-trigger .time-preview .xg-seek-show.hide-seek-icon .xg-seek-icon{display:none}.xgplayer xg-trigger .time-preview .xg-bar{width:96px;height:2px;margin:8px auto 0;border-radius:10px;box-sizing:content-box;background:#ffffff4d}.xgplayer xg-trigger .time-preview .xg-bar .xg-curbar{width:0;height:100%;background-color:red}.xgplayer xg-trigger .time-preview .xg-bar.hide{display:none}.xgplayer xg-trigger .mobile-thumbnail{position:relative;left:50%;transform:translate(-50%)}.xgplayer xg-trigger .xg-top-note{position:absolute;height:32px;width:135px;top:26px;left:50%;margin-left:-78px;background:#0000004d;border-radius:100px;color:#fff}.xgplayer xg-trigger .xg-top-note span{display:block;line-height:32px;height:32px;font-size:13px;text-align:center}.xgplayer xg-trigger .xg-top-note i{color:red;margin:0 5px}.xgplayer xg-trigger .xg-playbackrate{display:none}.xgplayer xg-trigger[data-xg-action=seeking] .time-preview{display:block}.xgplayer xg-trigger[data-xg-action=playbackrate] .xg-playbackrate{display:block}.xgplayer .gradient{display:none;position:absolute;top:0;left:0;height:100%;width:100%;pointer-events:none;background-image:linear-gradient(#0009,#0000005c 20%,#0000 36%,#0000 70%,#0000003d 77%,#0000005c 83%,#0009)}.xgplayer .gradient.top{background-image:linear-gradient(#0009,#0000005c 20%,#0000 36%,#0000 70%)}.xgplayer .gradient.bottom{background-image:linear-gradient(#0000 70%,#0000003d 77%,#0000005c 83%,#0009)}.xgplayer .gradient.none,.xgplayer-mobile .xgplayer-controls{background-image:initial}.xgplayer-mobile.xgplayer-playing .gradient{display:block}.xgplayer-mobile.xgplayer-inactive .gradient{background-image:initial}.xgplayer-mobile .xgmask{position:absolute;height:100%;z-index:10;top:0;left:0;width:100%;pointer-events:none;background-color:#0000}@media (prefers-color-scheme: dark){.xgplayer-mobile xg-trigger .time-preview{color:#fff}.xgplayer-mobile xg-trigger .time-preview span.xg-cur{color:red}.xgplayer-mobile xg-trigger .time-preview .xg-bar{background-color:#ffffff4d}.xgplayer-mobile xg-trigger .time-preview .xg-bar.xg-curbar{background-color:red}}@keyframes loadingRotate{0%{transform:rotate(0)}25%{transform:rotate(90deg)}50%{transform:rotate(180deg)}75%{transform:rotate(270deg)}to{transform:rotate(360deg)}}@keyframes loadingDashOffset{0%{stroke-dashoffset:236}to{stroke-dashoffset:0}}xg-loading-inner{display:block;height:100%;width:100%;transform-origin:center;animation:loadingRotate 1s .1s linear infinite}.xgplayer-loading{display:none;width:70px;height:70px;overflow:hidden;position:absolute;z-index:10;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none}.xgplayer-loading svg,.xgplayer-loading img{width:100%;height:100%}.xgplayer-mobile .xgplayer-loading{width:50px;height:50px}.xgplayer-isloading .xgplayer-loading{display:block}.xgplayer-nostart .xgplayer-loading,.xgplayer-pause .xgplayer-loading,.xgplayer-is-enter .xgplayer-loading,.xgplayer-is-ended .xgplayer-loading,.xgplayer-is-error .xgplayer-loading{display:none}.xgplayer .xgplayer-progress{display:flex;align-items:center;position:relative;min-width:10px;height:20px;left:0;right:0;top:0;outline:none;flex:1;cursor:pointer}.xgplayer .xgplayer-progress-outer{position:relative;width:100%;height:2px;border-radius:3px;cursor:pointer}.xgplayer .progress-list{display:flex;height:100%;width:100%;border-radius:inherit}.xgplayer .xgplayer-progress-inner{position:relative;flex:1;height:100%;background:#ffffff4d;transition:height .2s ease-in,opacity .2s ease-out;border-radius:inherit;margin-right:2px;pointer-events:none}.xgplayer .xgplayer-progress-inner:last-child,.xgplayer .xgplayer-progress-inner:only-child{margin-right:0}.xgplayer .inner-focus-point{background:#fff;position:relative}.xgplayer .inner-focus-point:before,.xgplayer .inner-focus-point:after{position:absolute;content:" ";display:block;width:2px;height:300%;top:50%;z-index:1;transform:translateY(-50%);border-radius:3px;background:#fff}.xgplayer .inner-focus-point:before{left:0}.xgplayer .inner-focus-point:after{right:0}.xgplayer .xgplayer-progress-cache,.xgplayer .xgplayer-progress-played{display:block;height:100%;width:0;position:absolute;top:0;left:0;border-radius:inherit}.xgplayer .xgplayer-progress-played{background:linear-gradient(-90deg,#fa1f41,#e31106)}.xgplayer .xgplayer-progress-cache{background:#ffffff80}.xgplayer .xgplayer-progress-btn{display:block;background:#ff5e5e4e;border:.5px solid rgba(255,94,94,.056545);box-shadow:0 0 1px #ff000062;width:20px;height:20px;border-radius:30px;left:0;top:50%;position:absolute;z-index:1;transform:translate(-50%,-50%);box-sizing:border-box;pointer-events:none}.xgplayer .xgplayer-progress-btn:before{content:" ";display:block;position:relative;width:12px;height:12px;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:30px;background:#fff}.xgplayer .xgplayer-progress-btn.active{border:4px solid rgba(255,94,94,.064057)}.xgplayer .xgplayer-progress-btn.active:before{box-shadow:0 0 3px #f85959b0}.xgplayer .xgplayer-progress-dot{display:inline-block;position:absolute;height:100%;width:5px;top:0;background:#fff;border-radius:6px;z-index:16}.xgplayer .xgplayer-progress-dot .xgplayer-progress-tip{position:absolute;left:25%;top:-40px;height:auto;line-height:30px;width:auto;transform:scale(.8) translate(-50%);background:#0000004d;border-radius:6px;border:1px solid rgba(0,0,0,.8);cursor:default;white-space:nowrap;display:none}.xgplayer .xgplayer-progress-dot:hover .xgplayer-progress-tip{display:block}.xgplayer .flex-controls .xgplayer-progress{transform:translateY(0)}.xgplayer.xgplayer-pc .xgplayer-progress-btn{transform:translate(-50%,-50%) scale(0)}.xgplayer.xgplayer-pc .xgplayer-progress-outer{height:3px}.xgplayer.xgplayer-pc .xgplayer-progress-inner{margin-right:4px}.xgplayer.xgplayer-pc .xgplayer-progress-inner:last-child,.xgplayer.xgplayer-pc .xgplayer-progress-inner:only-child{margin-right:0}.xgplayer.xgplayer-pc .inner-focus-point:before,.xgplayer.xgplayer-pc .inner-focus-point:after{width:3px}.xgplayer.xgplayer-pc .inner-focus-highlight{background:#fffc}.xgplayer.xgplayer-pc .xgplayer-progress.active .xgplayer-progress-outer{height:6px;margin-bottom:3px;transition:height .3s ease,margin-bottom .3s ease}.xgplayer.xgplayer-pc .xgplayer-progress.active .xgplayer-progress-btn{transform:translate(-50%,-50%) scale(1)}.xgplayer.xgplayer-pc .xgplayer-progress.active .inner-focus-point:before,.xgplayer.xgplayer-pc .xgplayer-progress.active .inner-focus-point:after{width:6px}.xgplayer .xgplayer-progress-bottom .xgplayer-progress-outer{top:9px}.xgplayer .xgplayer-progress-bottom .xgplayer-progress-btn:before{height:6px;width:6px}.xgplayer.xgplayer-mobile .xgplayer-progress-bottom .xgplayer-progress-outer{height:4px}@media (prefers-color-scheme: dark){.xgplayer .xgplayer-progress .xgplayer-progress-inner{background-color:#ffffff4d}.xgplayer .xgplayer-progress .inner-focus-highlight{background:#fffc}.xgplayer .xgplayer-progress .xgplayer-progress-btn{background:#ff5e5e4e;border:.5px solid rgba(255,94,94,.056545);box-shadow:0 0 1px #ff000062}.xgplayer .xgplayer-progress .xgplayer-progress-btn:before{background-color:#fff}.xgplayer .xgplayer-progress .xgplayer-progress-played{background-color:linear-gradient(-90deg,#FA1F41 0%,#E31106 100%)}.xgplayer .xgplayer-progress .xgplayer-progress-cache{background-color:#ffffff80}}.xg-mini-progress{display:none;position:absolute;height:2px;left:0;right:0;bottom:0;pointer-events:none}.xg-mini-progress xg-mini-progress-played,.xg-mini-progress xg-mini-progress-cache{height:100%;width:0;position:absolute;top:0;left:0;border-radius:inherit}.xg-mini-progress xg-mini-progress-played{background:linear-gradient(-90deg,#fa1f41,#e31106)}.xg-mini-progress xg-mini-progress-cache{background:#ffffff80}.xg-mini-progress-show,.xgplayer-inactive .xg-mini-progress,.xgplayer-mini .xg-mini-progress{display:block}.xgplayer .xgplayer-play .xg-icon-play{display:none}.xgplayer .xgplayer-play .xg-icon-pause,.xgplayer .xgplayer-play[data-state=pause] .xg-icon-play{display:block}.xgplayer .xgplayer-play[data-state=pause] .xg-icon-pause,.xgplayer .xgplayer-fullscreen .xg-exit-fullscreen{display:none}.xgplayer .xgplayer-fullscreen .xg-get-fullscreen,.xgplayer .xgplayer-fullscreen[data-state=full] .xg-exit-fullscreen{display:block}.xgplayer .xgplayer-fullscreen[data-state=full] .xg-get-fullscreen{display:none}.xgplayer .xg-top-bar .xgplayer-back{position:relative;left:0;top:16px;width:34px;height:40px;display:none}.xgplayer .xg-top-bar .xgplayer-back.show{display:block}.xgplayer .xgplayer-time{pointer-events:none;min-width:40px;font-size:14px;font-family:PingFangSC-Semibold;color:#fff;text-align:center;display:inline-block;line-height:40px}.xgplayer .xgplayer-time span{display:inline-block;line-height:40px;height:40px}.xgplayer .xgplayer-time span .time-min-width{text-align:center;min-width:2ch}.xgplayer .xgplayer-time span .time-min-width:first-child{text-align:right}.xgplayer .xgplayer-time span .time-min-width:last-child{text-align:left}.xgplayer .xgplayer-time .time-duration{color:#ffffff80}.xgplayer .xgplayer-time .time-live-tag{display:none}.xgplayer .xgplayer-time.xg-time-left{margin-left:0}.xgplayer .xgplayer-time.xg-time-right{margin-right:0}.xgplayer.xgplayer-mobile .xgplayer-time{min-width:30px;font-size:12px}.xgplayer.xgplayer-mobile .xgplayer-time.xg-time-left{margin-right:8px}.xgplayer.xgplayer-mobile .xgplayer-time.xg-time-right{margin-left:8px}.xgplayer .xgplayer-volume.slide-show .xgplayer-slider{display:block}.xgplayer .xgplayer-slider{display:none;position:absolute;width:28px;height:92px;background:#0000008a;border-radius:1px;bottom:40px;outline:none}.xgplayer .xgplayer-slider:after{content:" ";display:block;height:15px;width:28px;position:absolute;bottom:-15px;left:0;z-index:20;cursor:initial}.xgplayer .xgplayer-value-label{position:absolute;left:0;right:0;bottom:100%;padding:5px 0 0;font-size:12px;background-color:#0000008a;color:#fff;text-align:center}.xgplayer .xgplayer-bar,.xgplayer .xgplayer-drag{display:block;position:absolute;bottom:6px;left:12px;background:#ffffff4d;border-radius:100px;width:4px;height:76px;outline:none;cursor:pointer}.xgplayer .xgplayer-drag{bottom:0;left:0;background:#fa1f41;max-height:76px}.xgplayer .xgplayer-drag:after{content:" ";display:inline-block;width:8px;height:8px;background:#fff;box-shadow:0 0 5px #00000042;position:absolute;border-radius:50%;left:-2px;top:-4px}.xgplayer .xgplayer-volume[data-state=normal] .xg-volume{display:block}.xgplayer .xgplayer-volume[data-state=normal] .xg-volume-small,.xgplayer .xgplayer-volume[data-state=normal] .xg-volume-mute,.xgplayer .xgplayer-volume[data-state=small] .xg-volume{display:none}.xgplayer .xgplayer-volume[data-state=small] .xg-volume-small{display:block}.xgplayer .xgplayer-volume[data-state=small] .xg-volume-mute,.xgplayer .xgplayer-volume[data-state=mute] .xg-volume,.xgplayer .xgplayer-volume[data-state=mute] .xg-volume-small{display:none}.xgplayer .xgplayer-volume[data-state=mute] .xg-volume-mute{display:block}.xgplayer.xgplayer-mobile .xgplayer-volume .xgplayer-slider,.xgplayer .xgplayer-pip .xg-exit-pip{display:none}.xgplayer .xgplayer-pip .xg-get-pip,.xgplayer .xgplayer-pip[data-state=pip] .xg-exit-pip{display:block}.xgplayer .xgplayer-pip[data-state=pip] .xg-get-pip{display:none}.xgplayer .xgplayer-playnext{position:relative;display:none;cursor:pointer}.xgplayer .xgplayer-playnext .xgplayer-tips .xgplayer-tip-playnext{display:block}.xgplayer .xgplayer-playnext:hover{opacity:.85}.xgplayer .xgplayer-playnext:hover .xgplayer-tips{display:block}.lang-is-en .xgplayer-playnext .xgplayer-tips{margin-left:-25px}.lang-is-jp .xgplayer-playnext .xgplayer-tips{margin-left:-38px}.xgplayer .xgplayer-download{position:relative;display:block;cursor:pointer}.lang-is-en .xgplayer-download .xgplayer-tips{margin-left:-32px}.lang-is-jp .xgplayer-download .xgplayer-tips{margin-left:-40px}.xgplayer .xgplayer-shot{display:none}.xgplayer-definition{display:none;cursor:pointer}.xgplayer .xgplayer-playbackrate{display:none;cursor:default}.xgplayer .xgplayer-cssfullscreen .xg-get-cssfull{display:block}.xgplayer .xgplayer-cssfullscreen .xg-exit-cssfull,.xgplayer .xgplayer-cssfullscreen[data-state=full] .xg-get-cssfull{display:none}.xgplayer .xgplayer-cssfullscreen[data-state=full] .xg-exit-cssfull{display:block}.xgplayer-error{background:#000;display:none;position:absolute;left:0;top:0;width:100%;height:100%;z-index:6;color:#fff;text-align:center;line-height:100%;justify-content:center;align-items:center}.xgplayer-error .xgplayer-error-refresh{color:#fa1f41;padding:0 3px;cursor:pointer}.xgplayer-error .xgplayer-error-text{line-height:18px;margin:auto 6px 20px;display:block}.xgplayer-is-error .xgplayer-error{display:flex}.xgplayer .xgplayer-prompt{display:block;pointer-events:none;position:absolute;z-index:1;padding:6px 12px 5px;opacity:0;left:10px;background:#00000080;border-radius:50px;font-size:12px;line-height:17px;text-align:center;color:#fff}.xgplayer .xgplayer-prompt.show{display:block;opacity:1;z-index:10;pointer-events:initial}.xgplayer .xgplayer-prompt.arrow{transform:translate(-50%)}.xgplayer .xgplayer-prompt.arrow:after{content:"";display:block;position:absolute;left:50%;bottom:0;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:8px solid rgba(0,0,0,.5);transform:translate(-50%,100%)}.xgplayer .xgplayer-prompt .highlight{display:inline-block;margin-left:6px;color:red;cursor:pointer}.xgplayer.xgplayer-is-error .xgplayer-prompt.show{display:none;opacity:1}.xgplayer .xgplayer-spot{position:absolute;top:0;left:0;height:100%;background:#fff;border-radius:12px}.xgplayer .xgplayer-spot.mini{min-width:6px;transform:translate(-50%)}.xgplayer .xgplayer-spot.active .xgplayer-spot-pop{display:block;opacity:1;pointer-events:initial}.xgplayer .xgplayer-spot-pop{display:block;opacity:0;pointer-events:none;position:absolute;left:50%;bottom:5px;padding-bottom:5px;transform:translate(-50%)}.xgplayer-mobile .xgplayer-spot{height:3px;min-width:3px;top:50%;opacity:1;transform:translateY(-50%)}.xgplayer-mobile .xgplayer-spot.mini{min-width:3px;transform:translate(-50%,-50%)}.xgplayer .xgplayer-progress.active .xgplayer-spot{opacity:1;transition:opacity .3s;visibility:visible}.xgplayer .xg-spot-info{position:absolute;left:0;bottom:100%;display:none}.xgplayer .xg-spot-info.short-line .xg-spot-line{height:6px}.xgplayer .xg-spot-info.short-line .xg-spot-content{bottom:-4px}.xgplayer .xg-spot-info.no-thumbnail .xg-spot-thumbnail{display:none}.xgplayer .xg-spot-info.no-thumbnail .xgplayer-progress-point{display:block}.xgplayer .xg-spot-info.no-timepoint .xgplayer-progress-point,.xgplayer .xg-spot-info.hide{display:none}.xgplayer .xgplayer-progress.active .xg-spot-info{display:block}.xgplayer .xgplayer-progress.active .xg-spot-info.hide{display:none}.xgplayer .xg-spot-line{position:relative;bottom:-7px;margin-left:50%;display:block;width:1px;height:41px;background-color:#fff;pointer-events:none}.xgplayer .xgplayer-progress-point{display:none;position:relative;bottom:-4px;left:50%;transform:translate(-50%);background:#0000008a;font-size:11px;color:#fff;padding:4px 6px;border-radius:4px;text-align:center;opacity:.85;white-space:nowrap}.xgplayer .xg-spot-content{position:relative;bottom:-7px;color:#fff;border-radius:2px 2px 0 0}.xgplayer .xg-spot-ext-text{position:relative;bottom:-7px}.xgplayer .xg-spot-thumbnail{position:relative;background-color:#111010;pointer-events:none;border-radius:2px 2px 0 0}.xgplayer .xg-spot-time{position:absolute;bottom:2px;font-size:12px;line-height:16.8px;left:50%;transform:translate(-50%);pointer-events:none}.xgplayer .progress-thumbnail{margin:0 auto;display:block}.xgplayer .xg-spot-text{display:none;padding:5px 8px;background:#000c;border-radius:0 0 2px 2px;pointer-events:none;box-sizing:border-box}.xgplayer .spot-inner-text{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:20px;font-size:12px;max-height:40px}.xgplayer .xg-spot-content.show-text .xg-spot-text{display:block}.xgplayer .product .xg-spot-text{background:#3370ff}.xgplayer .product .xg-spot-line{border-left:10px solid transparent;border-right:10px solid transparent;border-top:7px solid #3370FF;width:0;height:15px;left:-10px;background:none}.xgplayer .xgvideo-preview{position:absolute;width:100%;height:100%;top:0;left:0;opacity:0;visibility:hidden;transition:visibility .3s,opacity .3s;background-color:#000}.xgplayer .xgvideo-preview .xgvideo-thumbnail{position:relative;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:0}.xgplayer .xgvideo-preview.show{opacity:1;visibility:visible}.xgplayer-dynamic-bg,.xgplayer-dynamic-bg canvas,.xgplayer-dynamic-bg xgmask,.xgplayer-dynamic-bg xgfilter{display:block;position:absolute;top:0;left:0;height:100%;width:100%;pointer-events:none}.xgplayer-dynamic-bg canvas{transform:translateZ(0)}.xgplayer-dynamic-bg xgmask{background:#000000b3}[data-v-c584e7c8] .n-base-icon,[data-v-ca066951] .n-base-icon{font-size:18px}[data-v-ca066951] .n-button__content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px} ');
  28.  
  29. (function (vue, naiveUi, CryptoJS, bigInt, Player, HlsJsPlugin) {
  30. 'use strict';
  31.  
  32. const _hoisted_1$2 = {
  33. class: "main"
  34. };
  35. const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
  36. __name: "Sidebar",
  37. setup(__props) {
  38. const menuThemeOverrides = {
  39. itemColorActive: "#EEF0FF",
  40. itemColorActiveHover: "#EEF0FF",
  41. itemTextColorActive: "#2777F8",
  42. itemTextColorActiveHover: "#2777F8"
  43. };
  44. const menuOptions = [{
  45. label: () => vue.createVNode("a", {
  46. "href": "//115.com/?cid=0&offset=0&mode=wangpan"
  47. }, [vue.createTextVNode("全部文件")]),
  48. key: "all"
  49. }, {
  50. label: () => vue.createVNode("a", {
  51. "href": "//115.com/?tab=upload&mode=wangpan"
  52. }, [vue.createTextVNode("最近上传")]),
  53. key: "upload"
  54. }, {
  55. label: () => vue.createVNode("a", {
  56. "href": "//115.com/?tab=offline&mode=wangpan"
  57. }, [vue.createTextVNode("云下载")]),
  58. key: "offline"
  59. }];
  60. const menuValue = vue.ref("all");
  61. const url = new URL(window.location.href);
  62. if (url.searchParams.has("cid")) {
  63. menuValue.value = "all";
  64. } else if (url.searchParams.has("tab")) {
  65. const tab = url.searchParams.get("tab");
  66. if (tab === "upload") {
  67. menuValue.value = "upload";
  68. } else if (tab === "offline") {
  69. menuValue.value = "offline";
  70. }
  71. }
  72. return (_ctx, _cache) => {
  73. const _component_NMenu = naiveUi.NMenu;
  74. return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$2, [vue.createVNode(_component_NMenu, {
  75. value: vue.unref(menuValue),
  76. "onUpdate:value": _cache[0] || (_cache[0] = ($event) => vue.isRef(menuValue) ? menuValue.value = $event : null),
  77. options: menuOptions,
  78. "theme-overrides": menuThemeOverrides
  79. }, null, 8, ["value"])]);
  80. };
  81. }
  82. });
  83. const _export_sfc = (sfc, props) => {
  84. const target = sfc.__vccOpts || sfc;
  85. for (const [key, val] of props) {
  86. target[key] = val;
  87. }
  88. return target;
  89. };
  90. const Sidebar = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-e1033040"]]);
  91. function tryOnScopeDispose(fn) {
  92. if (vue.getCurrentScope()) {
  93. vue.onScopeDispose(fn);
  94. return true;
  95. }
  96. return false;
  97. }
  98. function toValue(r) {
  99. return typeof r === "function" ? r() : vue.unref(r);
  100. }
  101. const isClient = typeof window !== "undefined" && typeof document !== "undefined";
  102. typeof WorkerGlobalScope !== "undefined" && globalThis instanceof WorkerGlobalScope;
  103. const toString = Object.prototype.toString;
  104. const isObject = (val) => toString.call(val) === "[object Object]";
  105. const noop = () => {
  106. };
  107. function unrefElement(elRef) {
  108. var _a;
  109. const plain = toValue(elRef);
  110. return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain;
  111. }
  112. const defaultWindow = isClient ? window : void 0;
  113. function useEventListener(...args) {
  114. let target;
  115. let events2;
  116. let listeners;
  117. let options;
  118. if (typeof args[0] === "string" || Array.isArray(args[0])) {
  119. [events2, listeners, options] = args;
  120. target = defaultWindow;
  121. } else {
  122. [target, events2, listeners, options] = args;
  123. }
  124. if (!target)
  125. return noop;
  126. if (!Array.isArray(events2))
  127. events2 = [events2];
  128. if (!Array.isArray(listeners))
  129. listeners = [listeners];
  130. const cleanups = [];
  131. const cleanup = () => {
  132. cleanups.forEach((fn) => fn());
  133. cleanups.length = 0;
  134. };
  135. const register = (el, event, listener, options2) => {
  136. el.addEventListener(event, listener, options2);
  137. return () => el.removeEventListener(event, listener, options2);
  138. };
  139. const stopWatch = vue.watch(
  140. () => [unrefElement(target), toValue(options)],
  141. ([el, options2]) => {
  142. cleanup();
  143. if (!el)
  144. return;
  145. const optionsClone = isObject(options2) ? { ...options2 } : options2;
  146. cleanups.push(
  147. ...events2.flatMap((event) => {
  148. return listeners.map((listener) => register(el, event, listener, optionsClone));
  149. })
  150. );
  151. },
  152. { immediate: true, flush: "post" }
  153. );
  154. const stop = () => {
  155. stopWatch();
  156. cleanup();
  157. };
  158. tryOnScopeDispose(stop);
  159. return stop;
  160. }
  161. const DefaultMagicKeysAliasMap = {
  162. ctrl: "control",
  163. command: "meta",
  164. cmd: "meta",
  165. option: "alt",
  166. up: "arrowup",
  167. down: "arrowdown",
  168. left: "arrowleft",
  169. right: "arrowright"
  170. };
  171. function useMagicKeys(options = {}) {
  172. const {
  173. reactive: useReactive = false,
  174. target = defaultWindow,
  175. aliasMap = DefaultMagicKeysAliasMap,
  176. passive = true,
  177. onEventFired = noop
  178. } = options;
  179. const current = vue.reactive(/* @__PURE__ */ new Set());
  180. const obj = {
  181. toJSON() {
  182. return {};
  183. },
  184. current
  185. };
  186. const refs = useReactive ? vue.reactive(obj) : obj;
  187. const metaDeps = /* @__PURE__ */ new Set();
  188. const usedKeys = /* @__PURE__ */ new Set();
  189. function setRefs(key, value) {
  190. if (key in refs) {
  191. if (useReactive)
  192. refs[key] = value;
  193. else
  194. refs[key].value = value;
  195. }
  196. }
  197. function reset() {
  198. current.clear();
  199. for (const key of usedKeys)
  200. setRefs(key, false);
  201. }
  202. function updateRefs(e, value) {
  203. var _a, _b;
  204. const key = (_a = e.key) == null ? void 0 : _a.toLowerCase();
  205. const code = (_b = e.code) == null ? void 0 : _b.toLowerCase();
  206. const values = [code, key].filter(Boolean);
  207. if (key) {
  208. if (value)
  209. current.add(key);
  210. else
  211. current.delete(key);
  212. }
  213. for (const key2 of values) {
  214. usedKeys.add(key2);
  215. setRefs(key2, value);
  216. }
  217. if (key === "meta" && !value) {
  218. metaDeps.forEach((key2) => {
  219. current.delete(key2);
  220. setRefs(key2, false);
  221. });
  222. metaDeps.clear();
  223. } else if (typeof e.getModifierState === "function" && e.getModifierState("Meta") && value) {
  224. [...current, ...values].forEach((key2) => metaDeps.add(key2));
  225. }
  226. }
  227. useEventListener(target, "keydown", (e) => {
  228. updateRefs(e, true);
  229. return onEventFired(e);
  230. }, { passive });
  231. useEventListener(target, "keyup", (e) => {
  232. updateRefs(e, false);
  233. return onEventFired(e);
  234. }, { passive });
  235. useEventListener("blur", reset, { passive: true });
  236. useEventListener("focus", reset, { passive: true });
  237. const proxy = new Proxy(
  238. refs,
  239. {
  240. get(target2, prop, rec) {
  241. if (typeof prop !== "string")
  242. return Reflect.get(target2, prop, rec);
  243. prop = prop.toLowerCase();
  244. if (prop in aliasMap)
  245. prop = aliasMap[prop];
  246. if (!(prop in refs)) {
  247. if (/[+_-]/.test(prop)) {
  248. const keys2 = prop.split(/[+_-]/g).map((i) => i.trim());
  249. refs[prop] = vue.computed(() => keys2.every((key) => toValue(proxy[key])));
  250. } else {
  251. refs[prop] = vue.ref(false);
  252. }
  253. }
  254. const r = Reflect.get(target2, prop, rec);
  255. return useReactive ? toValue(r) : r;
  256. }
  257. }
  258. );
  259. return proxy;
  260. }
  261. var _GM_cookie = /* @__PURE__ */ (() => typeof GM_cookie != "undefined" ? GM_cookie : void 0)();
  262. var _GM_getValue = /* @__PURE__ */ (() => typeof GM_getValue != "undefined" ? GM_getValue : void 0)();
  263. var _GM_setValue = /* @__PURE__ */ (() => typeof GM_setValue != "undefined" ? GM_setValue : void 0)();
  264. var _GM_xmlhttpRequest = /* @__PURE__ */ (() => typeof GM_xmlhttpRequest != "undefined" ? GM_xmlhttpRequest : void 0)();
  265. const gKts = [
  266. 240,
  267. 229,
  268. 105,
  269. 174,
  270. 191,
  271. 220,
  272. 191,
  273. 138,
  274. 26,
  275. 69,
  276. 232,
  277. 190,
  278. 125,
  279. 166,
  280. 115,
  281. 184,
  282. 222,
  283. 143,
  284. 231,
  285. 196,
  286. 69,
  287. 218,
  288. 134,
  289. 196,
  290. 155,
  291. 100,
  292. 139,
  293. 20,
  294. 106,
  295. 180,
  296. 241,
  297. 170,
  298. 56,
  299. 1,
  300. 53,
  301. 158,
  302. 38,
  303. 105,
  304. 44,
  305. 134,
  306. 0,
  307. 107,
  308. 79,
  309. 165,
  310. 54,
  311. 52,
  312. 98,
  313. 166,
  314. 42,
  315. 150,
  316. 104,
  317. 24,
  318. 242,
  319. 74,
  320. 253,
  321. 189,
  322. 107,
  323. 151,
  324. 143,
  325. 77,
  326. 143,
  327. 137,
  328. 19,
  329. 183,
  330. 108,
  331. 142,
  332. 147,
  333. 237,
  334. 14,
  335. 13,
  336. 72,
  337. 62,
  338. 215,
  339. 47,
  340. 136,
  341. 216,
  342. 254,
  343. 254,
  344. 126,
  345. 134,
  346. 80,
  347. 149,
  348. 79,
  349. 209,
  350. 235,
  351. 131,
  352. 38,
  353. 52,
  354. 219,
  355. 102,
  356. 123,
  357. 156,
  358. 126,
  359. 157,
  360. 122,
  361. 129,
  362. 50,
  363. 234,
  364. 182,
  365. 51,
  366. 222,
  367. 58,
  368. 169,
  369. 89,
  370. 52,
  371. 102,
  372. 59,
  373. 170,
  374. 186,
  375. 129,
  376. 96,
  377. 72,
  378. 185,
  379. 213,
  380. 129,
  381. 156,
  382. 248,
  383. 108,
  384. 132,
  385. 119,
  386. 255,
  387. 84,
  388. 120,
  389. 38,
  390. 95,
  391. 190,
  392. 232,
  393. 30,
  394. 54,
  395. 159,
  396. 52,
  397. 128,
  398. 92,
  399. 69,
  400. 44,
  401. 155,
  402. 118,
  403. 213,
  404. 27,
  405. 143,
  406. 204,
  407. 195,
  408. 184,
  409. 245
  410. ];
  411. const gKeyS = [41, 35, 33, 94];
  412. const gKeyL = [120, 6, 173, 76, 51, 134, 93, 24, 76, 1, 63, 70];
  413. const md5 = CryptoJS.MD5;
  414. const getDownLoadUrl = (file) => {
  415. const time = Math.floor((/* @__PURE__ */ new Date()).getTime() / 1e3);
  416. const { data, key } = m115Encode(
  417. JSON.stringify({
  418. pickcode: file.code
  419. }),
  420. time
  421. );
  422. const download = {
  423. name: "",
  424. url: ""
  425. };
  426. return new Promise((resolve, reject) => {
  427. _GM_xmlhttpRequest({
  428. method: "POST",
  429. url: `http://proapi.115.com/app/chrome/downurl?t=${time}`,
  430. data: `data=${encodeURIComponent(data)}`,
  431. headers: {
  432. "Content-Type": "application/x-www-form-urlencoded"
  433. },
  434. onload: (response) => {
  435. const json = JSON.parse(response.responseText);
  436. if (!json.state) {
  437. reject(json.msg);
  438. } else {
  439. const data2 = Object.values(JSON.parse(m115Decode(json.data, key)))[0];
  440. download.name = data2.file_name;
  441. download.url = data2.url.url;
  442. resolve(download);
  443. }
  444. },
  445. onerror: (error) => {
  446. reject(error);
  447. }
  448. });
  449. });
  450. };
  451. const m115Encode = (code, time) => {
  452. const key = stringToBytes(md5(`!@###@#${time}DFDR@#@#`).toString());
  453. const bytes = stringToBytes(code);
  454. const tmp1 = m115SymEncode(bytes, bytes.length, key);
  455. const tmp2 = key.slice(0, 16).concat(tmp1);
  456. return {
  457. data: m115AsymEncode(tmp2, tmp2.length),
  458. key
  459. };
  460. };
  461. const m115Decode = function(src, key) {
  462. const bytes = stringToBytes(window.atob(src));
  463. const tmp = m115AsymDecode(bytes, bytes.length);
  464. return bytesToString(m115SymDecode(tmp.slice(16), tmp.length - 16, key, tmp.slice(0, 16)));
  465. };
  466. const stringToBytes = (str) => {
  467. const arr = [];
  468. const strLength = str.length;
  469. for (let i = 0; i < strLength; i++) {
  470. arr.push(str.charCodeAt(i));
  471. }
  472. return arr;
  473. };
  474. const m115SymEncode = (src, srclen, key1) => {
  475. let ret;
  476. const k1 = m115Getkey(4, key1);
  477. const k2 = m115Getkey(12, null);
  478. ret = xor115Enc(src, srclen, k1, 4);
  479. ret.reverse();
  480. ret = xor115Enc(ret, srclen, k2, 12);
  481. return ret;
  482. };
  483. const m115SymDecode = (src, srclen, key1, key2) => {
  484. const k1 = m115Getkey(4, key1);
  485. const k2 = m115Getkey(12, key2);
  486. let ret = xor115Enc(src, srclen, k2, 12);
  487. ret.reverse();
  488. ret = xor115Enc(ret, srclen, k1, 4);
  489. return ret;
  490. };
  491. const m115Getkey = (length, key) => {
  492. if (key != null) {
  493. const results = [];
  494. for (let i = 0; i < length; i++) {
  495. results.push(key[i] + gKts[length * i] & 255 ^ gKts[length * (length - 1 - i)]);
  496. }
  497. return results;
  498. }
  499. if (length === 12) {
  500. return gKeyL.slice(0);
  501. }
  502. return gKeyS.slice(0);
  503. };
  504. const xor115Enc = (src, srclen, key, keylen) => {
  505. const mod4 = srclen % 4;
  506. const ret = [];
  507. if (mod4 !== 0) {
  508. for (let i = 0, j = 0; 0 <= mod4 ? j < mod4 : j > mod4; i = 0 <= mod4 ? ++j : --j) {
  509. ret.push(src[i] ^ key[i % keylen]);
  510. }
  511. }
  512. for (let i = mod4, k = mod4; mod4 <= srclen ? k < srclen : k > srclen; i = mod4 <= srclen ? ++k : --k) {
  513. ret.push(src[i] ^ key[(i - mod4) % keylen]);
  514. }
  515. return ret;
  516. };
  517. const m115AsymEncode = (src, srclen) => {
  518. const m = 128 - 11;
  519. let ret = "";
  520. const ref2 = Math.floor((srclen + m - 1) / m);
  521. for (let i = 0, j = 0; 0 <= ref2 ? j < ref2 : j > ref2; i = 0 <= ref2 ? ++j : --j) {
  522. ret += RSA().encrypt(bytesToString(src.slice(i * m, Math.min((i + 1) * m, srclen))));
  523. }
  524. return window.btoa(RSA().hex2a(ret));
  525. };
  526. const m115AsymDecode = function(src, srclen) {
  527. const m = 128;
  528. let ret = "";
  529. const ref2 = Math.floor((srclen + m - 1) / m);
  530. for (let i = 0, j = 0; 0 <= ref2 ? j < ref2 : j > ref2; i = 0 <= ref2 ? ++j : --j) {
  531. ret += RSA().decrypt(bytesToString(src.slice(i * m, Math.min((i + 1) * m, srclen))));
  532. }
  533. return stringToBytes(ret);
  534. };
  535. const bytesToString = (b) => {
  536. let ret = "";
  537. for (let j = 0; j < b.length; j++) {
  538. ret += String.fromCharCode(b[j]);
  539. }
  540. return ret;
  541. };
  542. const RSA = () => {
  543. const n = bigInt(
  544. "8686980c0f5a24c4b9d43020cd2c22703ff3f450756529058b1cf88f09b8602136477198a6e2683149659bd122c33592fdb5ad47944ad1ea4d36c6b172aad6338c3bb6ac6227502d010993ac967d1aef00f0c8e038de2e4d3bc2ec368af2e9f10a6f1eda4f7262f136420c07c331b871bf139f74f3010e3c4fe57df3afb71683",
  545. 16
  546. );
  547. const e = bigInt("10001", 16);
  548. const pkcs1pad2 = (s, n2) => {
  549. if (n2 < s.length + 11) {
  550. return null;
  551. }
  552. const ba = [];
  553. let i = s.length - 1;
  554. while (i >= 0 && n2 > 0) {
  555. ba[--n2] = s.charCodeAt(i--);
  556. }
  557. ba[--n2] = 0;
  558. while (n2 > 2) {
  559. ba[--n2] = 255;
  560. }
  561. ba[--n2] = 2;
  562. ba[--n2] = 0;
  563. const c = a2hex(ba);
  564. return bigInt(c, 16);
  565. };
  566. const pkcs1unpad2 = (a) => {
  567. let b = a.toString(16);
  568. if (b.length % 2 !== 0) {
  569. b = "0" + b;
  570. }
  571. const c = hex2a(b);
  572. let i = 1;
  573. while (c.charCodeAt(i) !== 0) {
  574. i++;
  575. }
  576. return c.slice(i + 1);
  577. };
  578. const a2hex = (byteArray) => {
  579. let hexString = "";
  580. for (let i = 0; i < byteArray.length; i++) {
  581. let nextHexByte = byteArray[i].toString(16);
  582. if (nextHexByte.length < 2) {
  583. nextHexByte = "0" + nextHexByte;
  584. }
  585. hexString += nextHexByte;
  586. }
  587. return hexString;
  588. };
  589. const hex2a = (hex) => {
  590. let str = "";
  591. for (let i = 0; i < hex.length; i += 2) {
  592. str += String.fromCharCode(parseInt(hex.substr(i, 2), 16));
  593. }
  594. return str;
  595. };
  596. const encrypt = (text) => {
  597. const m = pkcs1pad2(text, 128);
  598. if (m === null) {
  599. return null;
  600. }
  601. let h = m.modPow(e, n).toString(16);
  602. while (h.length < 128 * 2) {
  603. h = "0" + h;
  604. }
  605. return h;
  606. };
  607. const decrypt = (text) => {
  608. const ba = [];
  609. let i = 0;
  610. while (i < text.length) {
  611. ba[i] = text.charCodeAt(i);
  612. i += 1;
  613. }
  614. const c = bigInt(a2hex(ba), 16).modPow(e, n);
  615. const d = pkcs1unpad2(c);
  616. return d;
  617. };
  618. return {
  619. encrypt,
  620. decrypt,
  621. hex2a
  622. };
  623. };
  624. const settings = _GM_getValue("settings", null);
  625. const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
  626. __name: "DownloadContent",
  627. setup(__props) {
  628. const message = naiveUi.useMessage();
  629. const showModal = vue.ref(false);
  630. const showVideo = vue.ref(false);
  631. const buttonThemeOverrides = {
  632. textColorTextHover: "#2777F8",
  633. textColorTextPressed: "#2777F8",
  634. textColorTextFocus: "#2777F8"
  635. };
  636. const menuThemeOverrides = {
  637. itemColorActive: "#EEF0FF",
  638. itemColorActiveHover: "#EEF0FF",
  639. itemTextColorActive: "#2777F8",
  640. itemTextColorActiveHover: "#2777F8"
  641. };
  642. const downloads = vue.ref([]);
  643. const keys = useMagicKeys();
  644. const ctrlAltD = keys["Ctrl+Alt+D"];
  645. const ctrlAltO = keys["Ctrl+Alt+O"];
  646. const videoRef = vue.ref(null);
  647. const videoList = vue.ref([]);
  648. const player = vue.ref(null);
  649. const saveTimer = vue.ref(null);
  650. const layoutMaxHeight = vue.ref("800px");
  651. const menuOptions = vue.ref([]);
  652. const menuValue = vue.ref("");
  653. vue.watch(ctrlAltD, (v) => {
  654. if (v) {
  655. handleDownload();
  656. }
  657. });
  658. vue.watch(ctrlAltO, (v) => {
  659. if (v) {
  660. openFile();
  661. }
  662. });
  663. const getSelectFile = () => {
  664. const files = [];
  665. downloads.value = [];
  666. const lists = document.querySelectorAll(".list-contents > ul > li");
  667. lists.forEach((item) => {
  668. const checkbox = item.querySelector('input[type="checkbox"]');
  669. if (checkbox && checkbox.checked) {
  670. files.push({
  671. name: item.getAttribute("title"),
  672. isDir: item.getAttribute("file_type") === "0" ? true : false,
  673. code: item.getAttribute("pick_code"),
  674. cateId: item.getAttribute("cate_id") || "",
  675. fileMode: item.getAttribute("file_mode") || ""
  676. });
  677. }
  678. });
  679. if (files.length === 0) {
  680. message.destroyAll();
  681. message.warning("请选择文件");
  682. return false;
  683. }
  684. return files;
  685. };
  686. const handleDownload = async () => {
  687. try {
  688. const files = getSelectFile();
  689. if (!files) return;
  690. const loading = message.loading("获取下载链接中...");
  691. for (const file of files) {
  692. if (file.isDir) {
  693. loading.destroy();
  694. message.error("暂不支持下载文件夹,请勿选择文件夹");
  695. return;
  696. }
  697. const download = await getDownLoadUrl(file);
  698. downloads.value.push(download);
  699. }
  700. if (downloads.value.length === 0) {
  701. loading.destroy();
  702. message.error("获取下载链接失败");
  703. return;
  704. } else {
  705. loading.destroy();
  706. showModal.value = true;
  707. }
  708. } catch (error) {
  709. console.error(error);
  710. message.error(`获取信息失败,错误信息:${error}`);
  711. }
  712. };
  713. const openFile = () => {
  714. const files = getSelectFile();
  715. if (!files) return;
  716. message.warning("浏览器可能会拦截弹出窗口,请允许弹出窗口权限");
  717. files.forEach((file) => {
  718. if (file.isDir) {
  719. window.open(`https://115.com/?cid=${file.cateId}&offset=0&tab=&mode=wangpan`);
  720. } else if (file.fileMode === "9") {
  721. window.open(`https://v.anxia.com/?pickcode=${file.code}&share_id=0`);
  722. }
  723. });
  724. };
  725. const handleClose = () => {
  726. showModal.value = false;
  727. };
  728. const handlePlay = async () => {
  729. try {
  730. const files = getSelectFile();
  731. if (!files) return;
  732. videoList.value = [];
  733. for (const file of files) {
  734. if (file.isDir) {
  735. message.error("暂不支持播放文件夹,请勿选择文件夹");
  736. return;
  737. }
  738. if (file.fileMode === "9") {
  739. videoList.value.push({
  740. name: file.name,
  741. code: file.code
  742. });
  743. }
  744. }
  745. if (videoList.value.length === 0) {
  746. message.error("未选择视频文件");
  747. return;
  748. }
  749. menuOptions.value = videoList.value.map((item) => {
  750. return {
  751. label: item.name,
  752. key: item.code
  753. };
  754. });
  755. menuValue.value = videoList.value[0].code;
  756. videoList.value[0].url = await getVideoUrl(videoList.value[0].code);
  757. videoList.value[0].time = await getVideoHistory(videoList.value[0].code) || 0;
  758. showVideo.value = true;
  759. vue.nextTick(() => {
  760. if (videoRef.value) {
  761. if (document.createElement("video").canPlayType("application/vnd.apple.mpegurl")) {
  762. player.value = new Player({
  763. el: videoRef.value,
  764. url: videoList.value[0].url,
  765. autoplay: settings ? settings.video.autoplay : true,
  766. fluid: true,
  767. volume: settings ? settings.video.volume : 1,
  768. defaultPlaybackRate: settings ? settings.video.defaultPlaybackRate : 1,
  769. playbackRate: {
  770. list: [5, 4, 3, 2, 1.5, 1.25, 1, 0.75, 0.5]
  771. },
  772. rotate: true,
  773. pip: true,
  774. dynamicBg: {
  775. disable: false
  776. }
  777. });
  778. } else if (HlsJsPlugin.isSupported()) {
  779. player.value = new Player({
  780. el: videoRef.value,
  781. isLive: false,
  782. url: videoList.value[0].url,
  783. plugins: [HlsJsPlugin],
  784. autoplay: settings ? settings.video.autoplay : true,
  785. fluid: true,
  786. volume: settings ? settings.video.volume : 1,
  787. defaultPlaybackRate: settings ? settings.video.defaultPlaybackRate : 1,
  788. playbackRate: {
  789. list: [5, 4, 3, 2, 1.5, 1.25, 1, 0.75, 0.5]
  790. },
  791. rotate: true,
  792. pip: true,
  793. dynamicBg: {
  794. disable: false
  795. }
  796. });
  797. }
  798. if (player.value) {
  799. if (!settings || settings.video.history) {
  800. player.value.currentTime = videoList.value[0].time;
  801. saveTimer.value = setInterval(() => {
  802. if (player.value.paused) {
  803. return;
  804. }
  805. const time = player.value.currentTime;
  806. if (time && Math.floor(time) !== videoList.value[0].time) {
  807. videoList.value[0].time = Math.floor(time);
  808. setVideoHistory(files[0].code, Math.floor(time));
  809. }
  810. }, 5e3);
  811. }
  812. player.value.on(Player.Events.VIDEO_RESIZE, () => {
  813. var _a;
  814. layoutMaxHeight.value = ((_a = videoRef.value) == null ? void 0 : _a.clientHeight) + "px";
  815. });
  816. }
  817. }
  818. });
  819. } catch (error) {
  820. console.error(error);
  821. message.error(`视频播放失败,错误信息:${error}`);
  822. }
  823. };
  824. const getVideoUrl = (code) => {
  825. return new Promise((resolve, reject) => {
  826. getCookie().then((cookie) => {
  827. var _a, _b, _c;
  828. _GM_xmlhttpRequest({
  829. method: "GET",
  830. url: `https://v.anxia.com/webapi/files/video?pickcode=${code}&share_id=0&local=1`,
  831. headers: {
  832. Cookie: `CID=${(_a = cookie.find((item) => item.name === "CID")) == null ? void 0 : _a.value};SEID=${(_b = cookie.find((item) => item.name === "SEID")) == null ? void 0 : _b.value};UID=${(_c = cookie.find((item) => item.name === "UID")) == null ? void 0 : _c.value}`
  833. },
  834. onload: (response) => {
  835. const json = JSON.parse(response.responseText);
  836. if (json.state) {
  837. if (json.video_url) {
  838. resolve(json.video_url.replace("http://", "https://"));
  839. } else {
  840. reject("视频地址获取失败");
  841. }
  842. } else {
  843. reject(json.error);
  844. }
  845. },
  846. onerror: (error) => {
  847. reject(error);
  848. }
  849. });
  850. }).catch((error) => {
  851. reject(error);
  852. });
  853. });
  854. };
  855. const getVideoHistory = (code) => {
  856. return new Promise((resolve, reject) => {
  857. getCookie().then((cookie) => {
  858. var _a, _b, _c;
  859. _GM_xmlhttpRequest({
  860. method: "GET",
  861. url: `https://v.anxia.com/webapi/files/history?pick_code=${code}&fetch=one&category=1&share_id=0`,
  862. headers: {
  863. Cookie: `CID=${(_a = cookie.find((item) => item.name === "CID")) == null ? void 0 : _a.value};SEID=${(_b = cookie.find((item) => item.name === "SEID")) == null ? void 0 : _b.value};UID=${(_c = cookie.find((item) => item.name === "UID")) == null ? void 0 : _c.value}`
  864. },
  865. onload: (response) => {
  866. const json = JSON.parse(response.responseText);
  867. if (json.state) {
  868. resolve(json.data.time ? json.data.time : 0);
  869. } else {
  870. if (json.error) {
  871. reject(json.error);
  872. } else {
  873. resolve(0);
  874. }
  875. }
  876. },
  877. onerror: (error) => {
  878. reject(error);
  879. }
  880. });
  881. }).catch((error) => {
  882. reject(error);
  883. });
  884. });
  885. };
  886. const handleVideoClose = () => {
  887. if (saveTimer.value) {
  888. clearInterval(saveTimer.value);
  889. saveTimer.value = null;
  890. }
  891. if (player.value) {
  892. player.value.destroy();
  893. player.value = null;
  894. }
  895. showVideo.value = false;
  896. };
  897. const setVideoHistory = (code, time) => {
  898. getCookie().then((cookie) => {
  899. var _a, _b, _c;
  900. _GM_xmlhttpRequest({
  901. method: "POST",
  902. url: "https://v.anxia.com/webapi/files/history",
  903. headers: {
  904. "Content-Type": "application/x-www-form-urlencoded",
  905. Cookie: `CID=${(_a = cookie.find((item) => item.name === "CID")) == null ? void 0 : _a.value};SEID=${(_b = cookie.find((item) => item.name === "SEID")) == null ? void 0 : _b.value};UID=${(_c = cookie.find((item) => item.name === "UID")) == null ? void 0 : _c.value}`
  906. },
  907. data: `op=update&pick_code=${code}&time=${time}&definition=0&category=1&share_id=0`
  908. });
  909. });
  910. };
  911. const handleMenuUpdate = async (value) => {
  912. try {
  913. if (player.value) {
  914. const videoIndex = videoList.value.findIndex((item) => item.code === value);
  915. if (!videoList.value[videoIndex].url) {
  916. videoList.value[videoIndex].url = await getVideoUrl(value);
  917. videoList.value[videoIndex].time = await getVideoHistory(value) || 0;
  918. }
  919. if (saveTimer.value) {
  920. clearInterval(saveTimer.value);
  921. saveTimer.value = null;
  922. }
  923. player.value.src = videoList.value[videoIndex].url;
  924. if (!settings || settings.video.autoplay) {
  925. player.value.play();
  926. }
  927. if (!settings || settings.video.history) {
  928. player.value.currentTime = videoList.value[videoIndex].time;
  929. saveTimer.value = setInterval(() => {
  930. if (player.value.paused) {
  931. return;
  932. }
  933. const time = player.value.currentTime;
  934. if (time && Math.floor(time) !== videoList.value[videoIndex].time) {
  935. videoList.value[videoIndex].time = Math.floor(time);
  936. setVideoHistory(value, Math.floor(time));
  937. }
  938. }, 5e3);
  939. }
  940. }
  941. } catch (error) {
  942. console.error(error);
  943. message.error(`视频播放失败,错误信息:${error}`);
  944. }
  945. };
  946. const getCookie = () => {
  947. return new Promise((resolve, reject) => {
  948. _GM_cookie.list({
  949. domain: "115.com"
  950. }, (cookie, error) => {
  951. if (error) {
  952. reject(error);
  953. } else {
  954. resolve(cookie);
  955. }
  956. });
  957. });
  958. };
  959. return (_ctx, _cache) => {
  960. const _component_NButton = naiveUi.NButton;
  961. const _component_NListItem = naiveUi.NListItem;
  962. const _component_NList = naiveUi.NList;
  963. const _component_NCard = naiveUi.NCard;
  964. const _component_NModal = naiveUi.NModal;
  965. const _component_NMenu = naiveUi.NMenu;
  966. const _component_NLayoutSider = naiveUi.NLayoutSider;
  967. const _component_NLayout = naiveUi.NLayout;
  968. return vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [(vue.unref(settings) ? vue.unref(settings).download.enable : true) ? (vue.openBlock(), vue.createBlock(_component_NButton, {
  969. key: 0,
  970. text: "",
  971. "theme-overrides": buttonThemeOverrides,
  972. onClick: handleDownload
  973. }, {
  974. default: vue.withCtx(() => [vue.createTextVNode(" 下载 ")]),
  975. _: 1
  976. })) : vue.createCommentVNode("", true), (vue.unref(settings) ? vue.unref(settings).openNewTab.enable : true) ? (vue.openBlock(), vue.createBlock(_component_NButton, {
  977. key: 1,
  978. text: "",
  979. "theme-overrides": buttonThemeOverrides,
  980. style: {
  981. "margin-left": "1rem"
  982. },
  983. onClick: openFile
  984. }, {
  985. default: vue.withCtx(() => [vue.createTextVNode(" 批量新标签打开 ")]),
  986. _: 1
  987. })) : vue.createCommentVNode("", true), (vue.unref(settings) ? vue.unref(settings).video.enable : true) ? (vue.openBlock(), vue.createBlock(_component_NButton, {
  988. key: 2,
  989. text: "",
  990. "theme-overrides": buttonThemeOverrides,
  991. style: {
  992. "margin-left": "1rem"
  993. },
  994. onClick: handlePlay
  995. }, {
  996. default: vue.withCtx(() => [vue.createTextVNode(" 播放 ")]),
  997. _: 1
  998. })) : vue.createCommentVNode("", true), vue.createVNode(_component_NModal, {
  999. show: showModal.value,
  1000. "onUpdate:show": _cache[0] || (_cache[0] = ($event) => showModal.value = $event)
  1001. }, {
  1002. default: vue.withCtx(() => [vue.createVNode(_component_NCard, {
  1003. style: {
  1004. "width": "40%"
  1005. },
  1006. title: "文件下载",
  1007. bordered: false,
  1008. role: "dialog",
  1009. closable: "",
  1010. onClose: handleClose
  1011. }, {
  1012. default: vue.withCtx(() => [vue.createVNode(_component_NList, {
  1013. hoverable: ""
  1014. }, {
  1015. default: vue.withCtx(() => [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(downloads.value, (item, index) => {
  1016. return vue.openBlock(), vue.createBlock(_component_NListItem, {
  1017. key: index
  1018. }, {
  1019. default: vue.withCtx(() => [vue.createVNode(_component_NButton, {
  1020. text: "",
  1021. tag: "a",
  1022. href: item.url,
  1023. target: "_blank",
  1024. "theme-overrides": buttonThemeOverrides
  1025. }, {
  1026. default: vue.withCtx(() => [vue.createTextVNode(vue.toDisplayString(item.name), 1)]),
  1027. _: 2
  1028. }, 1032, ["href"])]),
  1029. _: 2
  1030. }, 1024);
  1031. }), 128))]),
  1032. _: 1
  1033. })]),
  1034. _: 1
  1035. })]),
  1036. _: 1
  1037. }, 8, ["show"]), vue.createVNode(_component_NModal, {
  1038. show: showVideo.value,
  1039. "onUpdate:show": _cache[2] || (_cache[2] = ($event) => showVideo.value = $event),
  1040. onAfterLeave: handleVideoClose
  1041. }, {
  1042. default: vue.withCtx(() => [vue.createVNode(_component_NCard, {
  1043. style: {
  1044. "width": "60%"
  1045. },
  1046. title: "视频播放",
  1047. bordered: false,
  1048. role: "dialog",
  1049. closable: "",
  1050. onClose: handleVideoClose
  1051. }, {
  1052. default: vue.withCtx(() => [vue.createVNode(_component_NLayout, {
  1053. "has-sider": "",
  1054. "content-style": {
  1055. "max-height": layoutMaxHeight.value
  1056. }
  1057. }, {
  1058. default: vue.withCtx(() => [vue.createVNode(_component_NLayoutSider, {
  1059. "native-scrollbar": false,
  1060. bordered: ""
  1061. }, {
  1062. default: vue.withCtx(() => [vue.createVNode(_component_NMenu, {
  1063. value: menuValue.value,
  1064. "onUpdate:value": [_cache[1] || (_cache[1] = ($event) => menuValue.value = $event), handleMenuUpdate],
  1065. options: menuOptions.value,
  1066. "theme-overrides": menuThemeOverrides
  1067. }, null, 8, ["value", "options"])]),
  1068. _: 1
  1069. }), vue.createVNode(_component_NLayout, {
  1070. "native-scrollbar": false
  1071. }, {
  1072. default: vue.withCtx(() => [vue.createElementVNode("div", {
  1073. ref_key: "videoRef",
  1074. ref: videoRef,
  1075. class: "video-js"
  1076. }, null, 512)]),
  1077. _: 1
  1078. })]),
  1079. _: 1
  1080. }, 8, ["content-style"])]),
  1081. _: 1
  1082. })]),
  1083. _: 1
  1084. }, 8, ["show"])], 64);
  1085. };
  1086. }
  1087. });
  1088. const __unplugin_components_0 = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-c584e7c8"]]);
  1089. const _sfc_main$1 = {};
  1090. const _hoisted_1$1 = { style: { "height": "100%", "display": "flex", "align-items": "center", "margin-left": "1rem" } };
  1091. function _sfc_render(_ctx, _cache) {
  1092. const _component_DownloadContent = __unplugin_components_0;
  1093. const _component_NMessageProvider = naiveUi.NMessageProvider;
  1094. const _component_NModalProvider = naiveUi.NModalProvider;
  1095. return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$1, [
  1096. vue.createVNode(_component_NModalProvider, null, {
  1097. default: vue.withCtx(() => [
  1098. vue.createVNode(_component_NMessageProvider, null, {
  1099. default: vue.withCtx(() => [
  1100. vue.createVNode(_component_DownloadContent)
  1101. ]),
  1102. _: 1
  1103. })
  1104. ]),
  1105. _: 1
  1106. })
  1107. ]);
  1108. }
  1109. const Download = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render]]);
  1110. const _withScopeId = (n) => (vue.pushScopeId("data-v-ca066951"), n = n(), vue.popScopeId(), n);
  1111. const _hoisted_1 = { style: { "display": "flex", "justify-content": "center", "margin-top": "8px" } };
  1112. const _hoisted_2 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ vue.createElementVNode("svg", {
  1113. xmlns: "http://www.w3.org/2000/svg",
  1114. "xmlns:xlink": "http://www.w3.org/1999/xlink",
  1115. viewBox: "0 0 1024 1024"
  1116. }, [
  1117. /* @__PURE__ */ vue.createElementVNode("path", {
  1118. d: "M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 0 0 9.3-35.2l-.9-2.6a443.74 443.74 0 0 0-79.7-137.9l-1.8-2.1a32.12 32.12 0 0 0-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 0 0-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 0 0-25.8 25.7l-15.8 85.4a351.86 351.86 0 0 0-99 57.4l-81.9-29.1a32 32 0 0 0-35.1 9.5l-1.8 2.1a446.02 446.02 0 0 0-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1c0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 0 0-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0 0 35.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0 0 25.8 25.7l2.7.5a449.4 449.4 0 0 0 159 0l2.7-.5a32.05 32.05 0 0 0 25.8-25.7l15.7-85a350 350 0 0 0 99.7-57.6l81.3 28.9a32 32 0 0 0 35.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1l74.7 63.9a370.03 370.03 0 0 1-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3l-17.9 97a377.5 377.5 0 0 1-85 0l-17.9-97.2l-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9l-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5l-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5c0-15.3 1.2-30.6 3.7-45.5l6.5-40l-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2l31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3l17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97l38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8l92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176s176-78.8 176-176s-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 0 1 512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 0 1 400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 0 1 624 502c0 29.9-11.7 58-32.8 79.2z",
  1119. fill: "currentColor"
  1120. })
  1121. ], -1));
  1122. const _hoisted_3 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ vue.createElementVNode("div", null, " 115+ 设置 ", -1));
  1123. const _hoisted_4 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ vue.createElementVNode("svg", {
  1124. xmlns: "http://www.w3.org/2000/svg",
  1125. "xmlns:xlink": "http://www.w3.org/1999/xlink",
  1126. viewBox: "0 0 1024 1024"
  1127. }, [
  1128. /* @__PURE__ */ vue.createElementVNode("path", {
  1129. d: "M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448s448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372s372 166.6 372 372s-166.6 372-372 372z",
  1130. fill: "currentColor"
  1131. }),
  1132. /* @__PURE__ */ vue.createElementVNode("path", {
  1133. d: "M464 336a48 48 0 1 0 96 0a48 48 0 1 0-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z",
  1134. fill: "currentColor"
  1135. })
  1136. ], -1));
  1137. const _hoisted_5 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ vue.createElementVNode("span", null, "删除离线下载项时可默认选择删除源文件", -1));
  1138. const _hoisted_6 = { style: { "display": "flex", "justify-content": "end" } };
  1139. const _sfc_main = /* @__PURE__ */ vue.defineComponent({
  1140. __name: "Setting",
  1141. setup(__props) {
  1142. const buttonThemeOverrides = {
  1143. textColorTextHover: "#2777F8",
  1144. textColorTextPressed: "#2777F8",
  1145. textColorTextFocus: "#2777F8"
  1146. };
  1147. const showModal = vue.ref(false);
  1148. const settingsRef = vue.ref(
  1149. settings ?? {
  1150. sidebar: {
  1151. enable: true
  1152. },
  1153. deleteSource: {
  1154. enable: true
  1155. },
  1156. download: {
  1157. enable: true
  1158. },
  1159. openNewTab: {
  1160. enable: true
  1161. },
  1162. oldButton: {
  1163. enable: true
  1164. },
  1165. video: {
  1166. enable: true,
  1167. volume: 1,
  1168. defaultPlaybackRate: 1,
  1169. autoplay: true,
  1170. history: true
  1171. }
  1172. }
  1173. );
  1174. const handleOpen = () => {
  1175. showModal.value = true;
  1176. };
  1177. const handleClose = () => {
  1178. showModal.value = false;
  1179. };
  1180. const handleSave = () => {
  1181. _GM_setValue("settings", settingsRef.value);
  1182. showModal.value = false;
  1183. history.go(0);
  1184. };
  1185. return (_ctx, _cache) => {
  1186. const _component_NIcon = naiveUi.NIcon;
  1187. const _component_NButton = naiveUi.NButton;
  1188. const _component_NSwitch = naiveUi.NSwitch;
  1189. const _component_NFormItem = naiveUi.NFormItem;
  1190. const _component_NPopover = naiveUi.NPopover;
  1191. const _component_NForm = naiveUi.NForm;
  1192. const _component_NTabPane = naiveUi.NTabPane;
  1193. const _component_NSlider = naiveUi.NSlider;
  1194. const _component_NRadio = naiveUi.NRadio;
  1195. const _component_NSpace = naiveUi.NSpace;
  1196. const _component_NRadioGroup = naiveUi.NRadioGroup;
  1197. const _component_NTabs = naiveUi.NTabs;
  1198. const _component_NCard = naiveUi.NCard;
  1199. const _component_NModal = naiveUi.NModal;
  1200. return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
  1201. vue.createVNode(_component_NButton, {
  1202. text: "",
  1203. style: { "font-size": "12px" },
  1204. "theme-overrides": buttonThemeOverrides,
  1205. onClick: handleOpen
  1206. }, {
  1207. default: vue.withCtx(() => [
  1208. vue.createElementVNode("div", null, [
  1209. vue.createVNode(_component_NIcon, { size: "24" }, {
  1210. default: vue.withCtx(() => [
  1211. _hoisted_2
  1212. ]),
  1213. _: 1
  1214. })
  1215. ]),
  1216. _hoisted_3
  1217. ]),
  1218. _: 1
  1219. }),
  1220. vue.createVNode(_component_NModal, {
  1221. show: vue.unref(showModal),
  1222. "onUpdate:show": _cache[10] || (_cache[10] = ($event) => vue.isRef(showModal) ? showModal.value = $event : null)
  1223. }, {
  1224. default: vue.withCtx(() => [
  1225. vue.createVNode(_component_NCard, {
  1226. style: { "width": "40%" },
  1227. title: "115+ 设置",
  1228. bordered: false,
  1229. role: "dialog",
  1230. closable: "",
  1231. onClose: handleClose
  1232. }, {
  1233. action: vue.withCtx(() => [
  1234. vue.createElementVNode("div", _hoisted_6, [
  1235. vue.createVNode(_component_NButton, {
  1236. type: "primary",
  1237. onClick: handleSave
  1238. }, {
  1239. default: vue.withCtx(() => [
  1240. vue.createTextVNode("保存")
  1241. ]),
  1242. _: 1
  1243. })
  1244. ])
  1245. ]),
  1246. default: vue.withCtx(() => [
  1247. vue.createVNode(_component_NTabs, {
  1248. type: "segment",
  1249. animated: ""
  1250. }, {
  1251. default: vue.withCtx(() => [
  1252. vue.createVNode(_component_NTabPane, {
  1253. name: "functionSwitch",
  1254. tab: "功能开关"
  1255. }, {
  1256. default: vue.withCtx(() => [
  1257. vue.createVNode(_component_NForm, {
  1258. ref: "formRef",
  1259. "label-placement": "left",
  1260. "label-width": "auto",
  1261. "show-feedback": false
  1262. }, {
  1263. default: vue.withCtx(() => [
  1264. vue.createVNode(_component_NFormItem, {
  1265. label: "精简侧边栏",
  1266. path: "sidebar.enable"
  1267. }, {
  1268. default: vue.withCtx(() => [
  1269. vue.createVNode(_component_NSwitch, {
  1270. value: vue.unref(settingsRef).sidebar.enable,
  1271. "onUpdate:value": _cache[0] || (_cache[0] = ($event) => vue.unref(settingsRef).sidebar.enable = $event)
  1272. }, null, 8, ["value"])
  1273. ]),
  1274. _: 1
  1275. }),
  1276. vue.createVNode(_component_NFormItem, {
  1277. label: "默认删除源文件",
  1278. path: "deleteSource.enable"
  1279. }, {
  1280. label: vue.withCtx(() => [
  1281. vue.createTextVNode(" 默认删除源文件 "),
  1282. vue.createVNode(_component_NPopover, { trigger: "hover" }, {
  1283. trigger: vue.withCtx(() => [
  1284. vue.createVNode(_component_NIcon, { size: "14" }, {
  1285. default: vue.withCtx(() => [
  1286. _hoisted_4
  1287. ]),
  1288. _: 1
  1289. })
  1290. ]),
  1291. default: vue.withCtx(() => [
  1292. _hoisted_5
  1293. ]),
  1294. _: 1
  1295. })
  1296. ]),
  1297. default: vue.withCtx(() => [
  1298. vue.createVNode(_component_NSwitch, {
  1299. value: vue.unref(settingsRef).deleteSource.enable,
  1300. "onUpdate:value": _cache[1] || (_cache[1] = ($event) => vue.unref(settingsRef).deleteSource.enable = $event)
  1301. }, null, 8, ["value"])
  1302. ]),
  1303. _: 1
  1304. }),
  1305. vue.createVNode(_component_NFormItem, {
  1306. label: "下载文件",
  1307. path: "download.enable"
  1308. }, {
  1309. default: vue.withCtx(() => [
  1310. vue.createVNode(_component_NSwitch, {
  1311. value: vue.unref(settingsRef).download.enable,
  1312. "onUpdate:value": _cache[2] || (_cache[2] = ($event) => vue.unref(settingsRef).download.enable = $event)
  1313. }, null, 8, ["value"])
  1314. ]),
  1315. _: 1
  1316. }),
  1317. vue.createVNode(_component_NFormItem, {
  1318. label: "批量新标签打开",
  1319. path: "openNewTab.enable"
  1320. }, {
  1321. default: vue.withCtx(() => [
  1322. vue.createVNode(_component_NSwitch, {
  1323. value: vue.unref(settingsRef).openNewTab.enable,
  1324. "onUpdate:value": _cache[3] || (_cache[3] = ($event) => vue.unref(settingsRef).openNewTab.enable = $event)
  1325. }, null, 8, ["value"])
  1326. ]),
  1327. _: 1
  1328. }),
  1329. vue.createVNode(_component_NFormItem, {
  1330. label: "还原离线下载按钮",
  1331. path: "oldButton.enable"
  1332. }, {
  1333. default: vue.withCtx(() => [
  1334. vue.createVNode(_component_NSwitch, {
  1335. value: vue.unref(settingsRef).oldButton.enable,
  1336. "onUpdate:value": _cache[4] || (_cache[4] = ($event) => vue.unref(settingsRef).oldButton.enable = $event)
  1337. }, null, 8, ["value"])
  1338. ]),
  1339. _: 1
  1340. }),
  1341. vue.createVNode(_component_NFormItem, {
  1342. label: "视频播放",
  1343. path: "video.enable"
  1344. }, {
  1345. default: vue.withCtx(() => [
  1346. vue.createVNode(_component_NSwitch, {
  1347. value: vue.unref(settingsRef).video.enable,
  1348. "onUpdate:value": _cache[5] || (_cache[5] = ($event) => vue.unref(settingsRef).video.enable = $event)
  1349. }, null, 8, ["value"])
  1350. ]),
  1351. _: 1
  1352. })
  1353. ]),
  1354. _: 1
  1355. }, 512)
  1356. ]),
  1357. _: 1
  1358. }),
  1359. vue.createVNode(_component_NTabPane, {
  1360. name: "playSetting",
  1361. tab: "播放设置"
  1362. }, {
  1363. default: vue.withCtx(() => [
  1364. vue.createVNode(_component_NForm, {
  1365. ref: "formRef",
  1366. "label-placement": "left",
  1367. "label-width": "auto",
  1368. "show-feedback": false
  1369. }, {
  1370. default: vue.withCtx(() => [
  1371. vue.createVNode(_component_NFormItem, {
  1372. label: "默认音量",
  1373. path: "video.volume"
  1374. }, {
  1375. default: vue.withCtx(() => [
  1376. vue.createVNode(_component_NSlider, {
  1377. value: vue.unref(settingsRef).video.volume,
  1378. "onUpdate:value": _cache[6] || (_cache[6] = ($event) => vue.unref(settingsRef).video.volume = $event),
  1379. step: 0.01,
  1380. max: 1,
  1381. "format-tooltip": (v) => `${(v * 100).toFixed(0)}%`
  1382. }, null, 8, ["value", "format-tooltip"])
  1383. ]),
  1384. _: 1
  1385. }),
  1386. vue.createVNode(_component_NFormItem, {
  1387. label: "默认速度",
  1388. path: "video.defaultPlaybackRate"
  1389. }, {
  1390. default: vue.withCtx(() => [
  1391. vue.createVNode(_component_NRadioGroup, {
  1392. value: vue.unref(settingsRef).video.defaultPlaybackRate,
  1393. "onUpdate:value": _cache[7] || (_cache[7] = ($event) => vue.unref(settingsRef).video.defaultPlaybackRate = $event),
  1394. name: "radiogroup"
  1395. }, {
  1396. default: vue.withCtx(() => [
  1397. vue.createVNode(_component_NSpace, null, {
  1398. default: vue.withCtx(() => [
  1399. vue.createVNode(_component_NRadio, { value: 0.5 }, {
  1400. default: vue.withCtx(() => [
  1401. vue.createTextVNode(" 0.5x ")
  1402. ]),
  1403. _: 1
  1404. }),
  1405. vue.createVNode(_component_NRadio, { value: 0.75 }, {
  1406. default: vue.withCtx(() => [
  1407. vue.createTextVNode(" 0.75x ")
  1408. ]),
  1409. _: 1
  1410. }),
  1411. vue.createVNode(_component_NRadio, { value: 1 }, {
  1412. default: vue.withCtx(() => [
  1413. vue.createTextVNode(" 1x ")
  1414. ]),
  1415. _: 1
  1416. }),
  1417. vue.createVNode(_component_NRadio, { value: 1.25 }, {
  1418. default: vue.withCtx(() => [
  1419. vue.createTextVNode(" 1.25x ")
  1420. ]),
  1421. _: 1
  1422. }),
  1423. vue.createVNode(_component_NRadio, { value: 1.5 }, {
  1424. default: vue.withCtx(() => [
  1425. vue.createTextVNode(" 1.5x ")
  1426. ]),
  1427. _: 1
  1428. }),
  1429. vue.createVNode(_component_NRadio, { value: 2 }, {
  1430. default: vue.withCtx(() => [
  1431. vue.createTextVNode(" 2x ")
  1432. ]),
  1433. _: 1
  1434. }),
  1435. vue.createVNode(_component_NRadio, { value: 3 }, {
  1436. default: vue.withCtx(() => [
  1437. vue.createTextVNode(" 3x ")
  1438. ]),
  1439. _: 1
  1440. }),
  1441. vue.createVNode(_component_NRadio, { value: 4 }, {
  1442. default: vue.withCtx(() => [
  1443. vue.createTextVNode(" 4x ")
  1444. ]),
  1445. _: 1
  1446. }),
  1447. vue.createVNode(_component_NRadio, { value: 5 }, {
  1448. default: vue.withCtx(() => [
  1449. vue.createTextVNode(" 5x ")
  1450. ]),
  1451. _: 1
  1452. })
  1453. ]),
  1454. _: 1
  1455. })
  1456. ]),
  1457. _: 1
  1458. }, 8, ["value"])
  1459. ]),
  1460. _: 1
  1461. }),
  1462. vue.createVNode(_component_NFormItem, {
  1463. label: "自动播放",
  1464. path: "video.autoplay"
  1465. }, {
  1466. default: vue.withCtx(() => [
  1467. vue.createVNode(_component_NSwitch, {
  1468. value: vue.unref(settingsRef).video.autoplay,
  1469. "onUpdate:value": _cache[8] || (_cache[8] = ($event) => vue.unref(settingsRef).video.autoplay = $event)
  1470. }, null, 8, ["value"])
  1471. ]),
  1472. _: 1
  1473. }),
  1474. vue.createVNode(_component_NFormItem, {
  1475. label: "同步播放进度",
  1476. path: "video.history"
  1477. }, {
  1478. default: vue.withCtx(() => [
  1479. vue.createVNode(_component_NSwitch, {
  1480. value: vue.unref(settingsRef).video.history,
  1481. "onUpdate:value": _cache[9] || (_cache[9] = ($event) => vue.unref(settingsRef).video.history = $event)
  1482. }, null, 8, ["value"])
  1483. ]),
  1484. _: 1
  1485. })
  1486. ]),
  1487. _: 1
  1488. }, 512)
  1489. ]),
  1490. _: 1
  1491. })
  1492. ]),
  1493. _: 1
  1494. })
  1495. ]),
  1496. _: 1
  1497. })
  1498. ]),
  1499. _: 1
  1500. }, 8, ["show"])
  1501. ]);
  1502. };
  1503. }
  1504. });
  1505. const Setting = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-ca066951"]]);
  1506. vue.createApp(Setting).mount(
  1507. (() => {
  1508. const navigation_ceiling = document.querySelector(".navigation-ceiling");
  1509. const setting = document.createElement("div");
  1510. if (navigation_ceiling) {
  1511. navigation_ceiling.appendChild(setting);
  1512. }
  1513. return setting;
  1514. })()
  1515. );
  1516. if (!settings || settings.sidebar.enable) {
  1517. vue.createApp(Sidebar).mount(
  1518. (() => {
  1519. const wrap_hflow = document.getElementsByClassName("wrap-hflow")[0];
  1520. const site_left_bar = document.getElementById("site_left_bar");
  1521. const sidebar = document.createElement("div");
  1522. sidebar.addEventListener("mousedown", (e) => {
  1523. e.stopPropagation();
  1524. });
  1525. if (site_left_bar && wrap_hflow) {
  1526. wrap_hflow.insertBefore(sidebar, site_left_bar);
  1527. wrap_hflow.removeChild(site_left_bar);
  1528. }
  1529. return sidebar;
  1530. })()
  1531. );
  1532. }
  1533. if (!settings || settings.download.enable || settings.openNewTab.enable || settings.video.enable) {
  1534. vue.createApp(Download).mount(
  1535. (() => {
  1536. const js_top_header_file_path_box = document.getElementById("js_top_header_file_path_box");
  1537. const download = document.createElement("div");
  1538. download.addEventListener("mousedown", (e) => {
  1539. e.stopPropagation();
  1540. });
  1541. if (js_top_header_file_path_box) {
  1542. js_top_header_file_path_box.appendChild(download);
  1543. }
  1544. return download;
  1545. })()
  1546. );
  1547. }
  1548. if (!settings || settings.deleteSource.enable) {
  1549. const observer = new MutationObserver((mutationsList) => {
  1550. mutationsList.some((mutation) => {
  1551. if (mutation.type === "childList" && mutation.addedNodes.length > 0 && mutation.addedNodes[0].className === "dialog-box dialog-mini window-current") {
  1552. const checkBox = document.querySelector("#js_del_task_source");
  1553. if (checkBox) {
  1554. checkBox.checked = true;
  1555. }
  1556. return true;
  1557. }
  1558. return false;
  1559. });
  1560. });
  1561. observer.observe(document.querySelector("body"), { childList: true });
  1562. }
  1563. if (!settings || settings.oldButton.enable) {
  1564. const leftTvf = document.querySelector(".left-tvf");
  1565. const replaceNodeWithDiv = (parentNode, index) => {
  1566. const node = parentNode.childNodes[index];
  1567. if (node.nodeType === 8 && node.nodeValue.includes("href")) {
  1568. const div = document.createElement("div");
  1569. div.innerHTML = node.nodeValue;
  1570. parentNode.replaceChild(div, node);
  1571. }
  1572. };
  1573. if (leftTvf) {
  1574. replaceNodeWithDiv(leftTvf, 9);
  1575. replaceNodeWithDiv(leftTvf, 11);
  1576. }
  1577. }
  1578.  
  1579. })(Vue, naive, CryptoJS, bigInt, Player, HlsJsPlugin);