mirror of
https://github.com/the1812/Bilibili-Evolved.git
synced 2025-11-04 21:22:45 +08:00
1 line
1.3 KiB
JavaScript
1 line
1.3 KiB
JavaScript
(()=>{return(t,e)=>{let n;const i=(t,e)=>{const i=document.createElement("a");const o=URL.createObjectURL(new Blob([t]));if(n){URL.revokeObjectURL(n)}n=o;i.setAttribute("href",o);i.setAttribute("download",escapeFilename(e));document.body.appendChild(i);i.click();i.remove()};return{widget:{content:`\n<button class="gui-settings-flat-button" id="download-subtitle">\n<i class="icon-cc-subtitles"></i>\n<span>下载字幕</span>\n</button>`,condition:videoCondition,success:()=>{const t=dq("#download-subtitle");t.addEventListener("click",async n=>{try{t.disabled=true;const{aid:o,cid:s}=unsafeWindow;if(!o||!s){logError("未找到视频AID和CID");return}const{VideoInfo:c}=await e.importAsync("video-info");const{getFriendlyTitle:l}=await e.importAsync("title");const a=new c(o);a.cid=parseInt(s);await a.fetchInfo();const r=a.subtitles;if(r.length===0){Toast.info("当前视频没有字幕.","下载字幕",3e3);return}const d=await loadSubtitleSettingsPanel();if(!d){logError("未找到字幕设置");return}const u=d.querySelector(".bilibili-player-video-subtitle-setting-lan .bui-select-result").innerHTML;const b=r.find(t=>t.language===u)||r[0];const f=await Ajax.getJson(b.url);const g=f.body;if(n.shiftKey){}else{i(JSON.stringify(g),l(true)+".json")}}catch(t){logError(t)}finally{t.disabled=false}})}}}}})(); |