(()=>{return(t,e)=>{class s{static test(){return document.URL.includes("/www.bilibili.com/bangumi")}async collectData(t){const e=document.querySelector("meta[property='og:url']");if(e===null){Toast.error("获取番剧数据失败: 无法找到 Season ID","批量下载");return""}const s=e.getAttribute("content").match(/play\/ss(\d+)/)[1];if(s===undefined){Toast.error("获取番剧数据失败: 无法解析 Season ID","批量下载");return""}const i=await Ajax.getJson(`https://api.bilibili.com/pgc/web/season/section?season_id=${s}`);if(i.code!==0){Toast.error(`获取番剧数据失败: 无法获取番剧集数列表, message=${i.message}`,"批量下载");return""}const r=i.result.main_section.episodes.map(t=>{return{aid:t.aid,cid:t.cid,number:t.title,title:t.long_title}});const n=[];for(const e of r){const s=`https://api.bilibili.com/pgc/player/web/playurl?avid=${e.aid}&cid=${e.cid}&qn=${t}&otype=json`;const i=await Ajax.getJsonWithCredentials(s);const r=i.data||i.result||i;if(r.quality!==t){Toast.error("获取下载链接失败, 请确认当前账号有下载权限后重试.","批量下载");return""}const a=r.durl.map(t=>{return{length:t.length,size:t.size,url:t.url}});n.push({fragments:a,title:`${e.number} - ${e.title}`,totalSize:a.map(t=>t.size).reduce((t,e)=>t+e)})}return JSON.stringify(n)}}const i=[s];class r{async collectData(t,e){const s=new(i.find(t=>t.test()));const r=await s.collectData(t.quality);e.dismiss();return r}}return{export:{BatchExtractor:r}}}})();