PageSourceSearch

https://www.shorttv.live/_nuxt/muFxHStj.js

js shorttv.live collected 2026-09-24 10:25:07 UTC 6,405 bytes, 27 lines download raw bytes

1import{a as l}from"./P34iuKgf.js";import"./oCrBuUBj.js";import"./_hdt44u-.js";class M extends l{static get pluginName(){return"rateDefinition"}static get defaultConfig(){return{position:l.POSITIONS.CONTROLS_RIGHT,index:99,playbackRates:[.5,.75,1,1.25,1.5,2],definitions:[]}}constructor(e){super(e),this.currentRateIndex=2,this.currentDefIndex=0,this.rateMenuVisible=!1,this.defMenuVisible=!1}afterCreate(){var i;const e=Number(((i=this.player)==null?void 0:i.playbackRate)||1),t=(this.config.playbackRates||[.5,.75,1,1.25,1.5,2]).findIndex(s=>Number(s)===e);t>=0&&(this.currentRateIndex=t),setTimeout(()=>{this.bindEvents()},0)}bindEvents(){const e=this.find(".rate-btn"),n=this.find(".def-btn");e?e.onclick=this.toggleRateMenu.bind(this):console.error("[RateDefinitionPlugin] 未找到倍速按钮"),n?n.onclick=this.toggleDefMenu.bind(this):console.error("[RateDefinitionPlugin] 未找到清晰度按钮"),this.bindMenuItemEvents(),document.addEventListener("click",this.onDocumentClick.bind(this))}bindMenuItemEvents(){const e=this.find(".rate-menu-list");e&&e.querySelectorAll("li").forEach(i=>{i.onclick=s=>{s.stopPropagation();const a=parseInt(i.dataset.index,10);this.setPlaybackRate(a)}});const n=this.find(".def-menu-list");n&&n.querySelectorAll("li").forEach(i=>{i.onclick=s=>{s.stopPropagation();const a=parseInt(i.dataset.index,10);this.setDefinition(a)}})}destroy(){document.removeEventListener("click",this.onDocumentClick.bind(this))}setPlaybackRate(e){if(isNaN(e))return;const n=this.config.playbackRates||[.5,.75,1,1.25,1.5,2];if(e<0||e>=n.length)return;this.currentRateIndex=e;const t=n[e];try{this.player.playbackRate=t}catch(s){console.error("[RateDefinitionPlugin] 设置倍速失败",s)}const i=this.find(".rate-btn span");i&&(i.textContent=`${t}x`),this.updateRateMenuSelection(),this.hideRateMenu()}setDefinition(e){if(isNaN(e))return;const n=this.config.definitions||[];if(e<0||e>=n.length)return;this.currentDefIndex=e;const t=n[e];if(t&&t.url){typeof this.player.switchURL=="function"?this.player.switchURL(t.url):this.player.src=t.url;const i=t.name||t.definition||"auto";this.player.emit("definitionChange",i);const s=this.find(".def-btn span");s&&(s.textContent=i),this.updateDefMenuSelection()}else console.error("[RateDefinitionPlugin] 清晰度没有 URL",t);this.hideDefMenu()}updateButtonsLabel(){const e=this.config.playbackRates||[.5,.75,1,1.25,1.5,2],n=this.config.definitions||[],t=this.find(".rate-btn span");t&&this.currentRateIndex>=0&&this.currentRateIndex<e.length&&(t.textContent=`${e[this.currentRateIndex]}x`);const i=this.find(".def-btn span");if(i&&this.currentDefIndex>=0&&this.currentDefIndex<n.length){const s=n[this.currentDefIndex],a=s.name||s.definition||"auto";i.textContent=a}this.updateRateMenuSelection(),this.updateDefMenuSelection()}updateRateMenuSelection(){const e=this.find(".rate-menu-list");if(!e)return;e.querySelectorAll("li").forEach((t,i)=>{i===this.currentRateIndex?t.classList.add("selected"):t.classList.remove("selected")})}updateDefMenuSelection(){const e=this.find(".def-menu-list");if(!e)return;e.querySelectorAll("li").forEach((t,i)=>{i===this.currentDefIndex?t.classList.add("selected"):t.classList.remove("selected")})}toggleRateMenu(e){e.stopPropagation();const n=this.find(".rate-menu-list");n&&(this.hideDefMenu(),this.rateMenuVisible=!this.rateMenuVisible,n.style.display=this.rateMenuVisible?"block":"none")}toggleDefMenu(e){e.stopPropagation();const n=this.find(".def-menu-list");n&&(this.hideRateMenu(),this.defMenuVisible=!this.defMenuVisible,n.style.display=this.defMenuVisible?"block":"none")}hideRateMenu(){const e=this.find(".rate-menu-list");e&&(e.style.display="none"),this.rateMenuVisible=!1}hideDefMenu(){const e=this.find(".def-menu-list");e&&(e.style.display="none"),this.defMenuVisible=!1}onDocumentClick(e){this.el&&this.el.contains(e.target)||(this.hideRateMenu(),this.hideDefMenu())}render(){const e=this.config.playbackRates||[.5,.75,1,1.25,1.5,2],n=e.map((r,o)=>{const c=o===this.currentRateIndex;return`<li data-index="${o}" class="${c?"selected":""}">${r}x</li>`}).join(""),t=this.config.definitions&&this.config.definitions.length>0?this.config.definitions:[{name:"auto"},{name:"720P"}],i=t.map((r,o)=>{const c=o===this.currentDefIndex,u=r.name||r.definition||"auto";return`<li data-index="${o}" class="${c?"selected":""}">${u}</li>`}).join(""),s=e[this.currentRateIndex]||1,a=t[this.currentDefIndex],d=a&&(a.name||a.definition)||"auto";return`
2      <div class="xg-rate-def-plugin">
3        <div class="rate-btn-container">
4          <button class="rate-btn"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">
5  <circle cx="9.99992" cy="9.99998" r="1.66667" stroke="white" stroke-width="1.66667"/>
6  <path d="M4.10767 4.10779C7.17524 1.04022 12.038 0.865011 15.3118 3.58044L14.1272 4.76501C11.5105 2.69673 7.7015 2.86943 5.2854 5.28552C2.68194 7.88898 2.68201 12.1107 5.2854 14.7142L4.10767 15.892C0.853404 12.6376 0.853333 7.36212 4.10767 4.10779ZM17.4133 6.19275C19.0238 9.32666 18.5172 13.2666 15.8918 15.892L14.7141 14.7142C16.6789 12.7495 17.1601 9.86357 16.1594 7.44666L17.4133 6.19275Z" fill="white"/>
7  <path d="M17.0833 2.91669L11.25 8.75002" stroke="white" stroke-width="1.66667"/>
8</svg><span>${s}x</span></button>
9          <ul class="rate-menu-list" style="display:none">
10            ${n}
11          </ul>
12        </div>
13        <div class="def-btn-container">
14          <button class="def-btn"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">
15  <path d="M8.75 7.08331C8.75 7.31408 8.75 10.5128 8.75 12.9166" stroke="white" stroke-width="1.66667" stroke-linejoin="round"/>
16  <path d="M6.66667 7.08331V12.9166H5.83333C5.3731 12.9166 5 12.5436 5 12.0833V7.08331H6.66667Z" fill="white"/>
17  <path d="M11.6667 7.91669H12.5001C13.6507 7.91669 14.5834 8.84943 14.5834 10C14.5834 11.1506 13.6507 12.0834 12.5001 12.0834H11.6667V7.91669Z" stroke="white" stroke-width="1.66667"/>
18  <rect x="5" y="9.16669" width="3.33333" height="1.66667" fill="white"/>
19  <path d="M2.5 4.16669H17.5V15.8334H5.83333C3.99238 15.8334 2.5 14.341 2.5 12.5V4.16669Z" stroke="white" stroke-width="1.66667"/>
20</svg><span>${d}</span></button>
21          <ul class="def-menu-list" style="display:none">
22            ${i}
23          </ul>
24        </div>
25      </div>
26    `}}export{M as default};
27//# sourceMappingURL=muFxHStj.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.