Files
vega-providers/dist/animetsu/stream.js
T
2026-06-19 20:36:47 +05:30

1 line
5.4 KiB
JavaScript

"use strict";var __defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropNames=Object.getOwnPropertyNames,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(obj,key,value)=>key in obj?__defProp(obj,key,{enumerable:!0,configurable:!0,writable:!0,value:value}):obj[key]=value,__spreadValues=(a,b)=>{for(var prop in b||(b={}))__hasOwnProp.call(b,prop)&&__defNormalProp(a,prop,b[prop]);if(__getOwnPropSymbols)for(var prop of __getOwnPropSymbols(b))__propIsEnum.call(b,prop)&&__defNormalProp(a,prop,b[prop]);return a},__spreadProps=(a,b)=>__defProps(a,__getOwnPropDescs(b)),__name=(target,value)=>__defProp(target,"name",{value:value,configurable:!0}),__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&"object"==typeof from||"function"==typeof from)for(let key of __getOwnPropNames(from))__hasOwnProp.call(to,key)||key===except||__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),__async=(__this,__arguments,generator)=>new Promise((resolve,reject)=>{var fulfilled=value=>{try{step(generator.next(value))}catch(e){reject(e)}},rejected=value=>{try{step(generator.throw(value))}catch(e){reject(e)}},step=x=>x.done?resolve(x.value):Promise.resolve(x.value).then(fulfilled,rejected);step((generator=generator.apply(__this,__arguments)).next())}),stream_exports={};__export(stream_exports,{getStream:()=>getStream});var getStream=__name(function(_0){return __async(this,arguments,function*({link:id,providerContext:providerContext}){var _a;try{const{axios:axios,openWebView:openWebView,commonHeaders:commonHeaders}=providerContext,baseUrl="https://animetsu.net",streamUrl="https://swiftstream.top/proxy";let wafCookies;try{yield axios.get(baseUrl,{headers:__spreadProps(__spreadValues({},commonHeaders),{Referer:baseUrl})})}catch(error){if(403===(null==(_a=error.response)?void 0:_a.status)){const wafResult=yield openWebView(baseUrl,{title:"Solve the captcha below and click done",description:"Required to bypass Animetsu anti-bot protection.",headers:__spreadProps(__spreadValues({},commonHeaders),{Referer:baseUrl}),force:!0,waitForCookie:"cf_clearance"});wafCookies=wafResult.cookies}}const[animeId,episodeNumber]=id.split(":");if(!animeId||!episodeNumber)throw new Error("Invalid link format");const servers=["sage","meg","dio","kite"],streamLinks=[];return yield Promise.all(servers.map(server=>__async(null,null,function*(){try{const url=`${baseUrl}/v2/api/anime/oppai/${animeId}/${episodeNumber}?server=${server}&source_type=sub`,res=yield axios.get(url,{headers:__spreadValues(__spreadProps(__spreadValues({},commonHeaders),{Referer:baseUrl}),wafCookies?{Cookie:wafCookies}:{})});if(res.data&&res.data.sources){const subtitles=[];res.data.subs&&Array.isArray(res.data.subs)&&res.data.subs.forEach(sub=>{if(sub.url&&sub.lang){const langCode=sub.lang.toLowerCase().includes("english")?"en":sub.lang.toLowerCase().includes("arabic")?"ar":sub.lang.toLowerCase().includes("french")?"fr":sub.lang.toLowerCase().includes("german")?"de":sub.lang.toLowerCase().includes("italian")?"it":sub.lang.toLowerCase().includes("portuguese")?"pt":sub.lang.toLowerCase().includes("russian")?"ru":sub.lang.toLowerCase().includes("spanish")?"es":"und";subtitles.push({title:sub.lang,language:langCode,type:"text/vtt",uri:sub.url})}}),res.data.sources.forEach(source=>{const sourceUrl=source.url.startsWith("/")?`${streamUrl}${source.url}`:source.url;streamLinks.push({server:`${server} (Sub): ${source.quality}`,link:sourceUrl,type:"m3u8",quality:source.quality,headers:{referer:baseUrl},subtitles:subtitles.length>0?subtitles:[]})})}}catch(e){console.log(`Error with server ${server}:`,e)}}))),yield Promise.all(servers.map(server=>__async(null,null,function*(){try{const url=`${baseUrl}/v2/api/anime/oppai/${animeId}/${episodeNumber}?server=${server}&source_type=dub`,res=yield axios.get(url,{headers:__spreadValues(__spreadProps(__spreadValues({},commonHeaders),{Referer:baseUrl}),wafCookies?{Cookie:wafCookies}:{})});if(res.data&&res.data.sources){const subtitles=[];res.data.subs&&Array.isArray(res.data.subs)&&res.data.subs.forEach(sub=>{if(sub.url&&sub.lang){const langCode=sub.lang.toLowerCase().includes("english")?"en":sub.lang.toLowerCase().includes("arabic")?"ar":sub.lang.toLowerCase().includes("french")?"fr":sub.lang.toLowerCase().includes("german")?"de":sub.lang.toLowerCase().includes("italian")?"it":sub.lang.toLowerCase().includes("portuguese")?"pt":sub.lang.toLowerCase().includes("russian")?"ru":sub.lang.toLowerCase().includes("spanish")?"es":"und";subtitles.push({title:sub.lang,language:langCode,type:"text/vtt",uri:sub.url})}}),res.data.sources.forEach(source=>{const sourceUrl=source.url.startsWith("/")?`${streamUrl}${source.url}`:source.url;streamLinks.push({server:`${server} (Dub): ${source.quality}`,link:sourceUrl,type:"m3u8",quality:source.quality,headers:{referer:baseUrl},subtitles:subtitles.length>0?subtitles:[]})})}}catch(e){console.log(`Error with server ${server} (dub):`,e)}}))),console.log("Stream links:",streamLinks),streamLinks}catch(err){return console.error("animetsu stream error:",err),[]}})},"getStream");exports.getStream=getStream;