mirror of
https://github.com/vega-org/vega-providers.git
synced 2026-04-17 15:41:45 +00:00
1 line
5.5 KiB
JavaScript
1 line
5.5 KiB
JavaScript
var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator.throw(value))}catch(e){reject(e)}}function step(result){var value;result.done?resolve(result.value):(value=result.value,value instanceof P?value:new P(function(resolve){resolve(value)})).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};exports.getStream=void 0,exports.getWebstreamerStream=getWebstreamerStream,exports.getRiveStream=getRiveStream;const getStream=_a=>__awaiter(void 0,[_a],void 0,function*({link:id,type:type,providerContext:providerContext}){var _b,_c,_d,_e,_f,_g,_h,_j;try{const streams=[],payload=(()=>{try{return JSON.parse(id)}catch(_a){return{tmdbId:id}}})(),tmdbId=null!==(_d=null!==(_c=null!==(_b=payload.tmdbId)&&void 0!==_b?_b:payload.id)&&void 0!==_c?_c:payload.tmdId)&&void 0!==_d?_d:"",imdbId=null!==(_e=payload.imdbId)&&void 0!==_e?_e:"",season=null!==(_f=payload.season)&&void 0!==_f?_f:"",episode=null!==(_g=payload.episode)&&void 0!==_g?_g:"",effectiveType=null!==(_j=null!==(_h=payload.type)&&void 0!==_h?_h:type)&&void 0!==_j?_j:"movie";return yield getWebstreamerStream(String(imdbId),episode,season,effectiveType,streams,providerContext),yield getRiveStream(String(tmdbId),episode,season,effectiveType,streams,providerContext),streams}catch(err){return[]}});function getWebstreamerStream(imdbId,episode,season,type,Streams,providerContext){return __awaiter(this,void 0,void 0,function*(){var _a;if(!imdbId||"undefined"===imdbId)return;const url=`https://webstreamr.hayd.uk/{"multi":"on","al":"on","de":"on","es":"on","fr":"on","hi":"on","it":"on","mx":"on","mediaFlowProxyUrl":"","mediaFlowProxyPassword":""}/stream/${type}/${imdbId}${"series"===type?`:${season}:${episode}`:""}.json`;try{null===(_a=(yield providerContext.axios.get(encodeURI(url),{timeout:3e4,headers:providerContext.commonHeaders})).data)||void 0===_a||_a.streams.forEach(source=>{const url=null==source?void 0:source.url,name=(null==source?void 0:source.name)||"WebStreamer",qualityMatch=null==name?void 0:name.match(/(\d{3,4})p/),quality=qualityMatch?qualityMatch[1]:void 0;Streams.push({server:name,link:url,type:type,quality:quality})})}catch(e){throw e}})}function getRiveStream(tmdId,episode,season,type,Streams,providerContext){return __awaiter(this,void 0,void 0,function*(){if(!tmdId||"undefined"===tmdId)return;const secret=generateSecretKey(tmdId),baseUrl=yield providerContext.getBaseUrl("rive"),cors=process.env.CORS_PRXY?process.env.CORS_PRXY+"?url=":"",route="series"===type?`/api/backendfetch?requestID=tvVideoProvider&id=${tmdId}&season=${season}&episode=${episode}&secretKey=${secret}&service=`:`/api/backendfetch?requestID=movieVideoProvider&id=${tmdId}&secretKey=${secret}&service=`,url=cors?cors+encodeURIComponent(baseUrl+route):baseUrl+route;yield Promise.all(["flowcast","asiacloud","humpy","primevids","shadow","hindicast","animez","aqua","yggdrasil","putafilme","ophim"].map(server=>__awaiter(this,void 0,void 0,function*(){var _a,_b;try{const res=yield providerContext.axios.get(url+server,{timeout:8e3});null===(_b=null===(_a=res.data)||void 0===_a?void 0:_a.data)||void 0===_b||_b.sources.forEach(source=>{Streams.push({server:(null==source?void 0:source.source)+"-"+(null==source?void 0:source.quality),link:null==source?void 0:source.url,type:"hls"===(null==source?void 0:source.format)?"m3u8":"mp4",quality:null==source?void 0:source.quality,headers:{referer:baseUrl}})})}catch(e){}})))})}function generateSecretKey(id){const c=["4Z7lUo","gwIVSMD","PLmz2elE2v","Z4OFV0","SZ6RZq6Zc","zhJEFYxrz8","FOm7b0","axHS3q4KDq","o9zuXQ","4Aebt","wgjjWwKKx","rY4VIxqSN","kfjbnSo","2DyrFA1M","YUixDM9B","JQvgEj0","mcuFx6JIek","eoTKe26gL","qaI9EVO1rB","0xl33btZL","1fszuAU","a7jnHzst6P","wQuJkX","cBNhTJlEOf","KNcFWhDvgT","XipDGjST","PCZJlbHoyt","2AYnMZkqd","HIpJh","KH0C3iztrG","W81hjts92","rJhAT","NON7LKoMQ","NMdY3nsKzI","t4En5v","Qq5cOQ9H","Y9nwrp","VX5FYVfsf","cE5SJG","x1vj1","HegbLe","zJ3nmt4OA","gt7rxW57dq","clIE9b","jyJ9g","B5jXjMCSx","cOzZBZTV","FTXGy","Dfh1q1","ny9jqZ2POI","X2NnMn","MBtoyD","qz4Ilys7wB","68lbOMye","3YUJnmxp","1fv5Imona","PlfvvXD7mA","ZarKfHCaPR","owORnX","dQP1YU","dVdkx","qgiK0E","cx9wQ","5F9bGa","7UjkKrp","Yvhrj","wYXez5Dg3","pG4GMU","MwMAu","rFRD5wlM"];if(void 0===id)return"rive";try{let t,n;const r=String(id);if(isNaN(Number(id))){const sum=r.split("").reduce((e,ch)=>e+ch.charCodeAt(0),0);t=c[sum%c.length]||btoa(r),n=Math.floor(sum%r.length/2)}else{const num=Number(id);t=c[num%c.length]||btoa(r),n=Math.floor(num%r.length/2)}const i=r.slice(0,n)+t+r.slice(n),innerHash=e=>{e=String(e);let t=0;for(let n=0;n<e.length;n++){const r=e.charCodeAt(n),i=((t=r+(t<<6)+(t<<16)-t>>>0)<<n%5|t>>>32-n%5)>>>0;t=(t^i^(r<<n%7|r>>>8-n%7)>>>0)>>>0,t=t+(t>>>11^t<<3)>>>0}return t^=t>>>15,t=49842*(65535&t)+((49842*(t>>>16)&65535)<<16)>>>0,t^=t>>>13,t=40503*(65535&t)+((40503*(t>>>16)&65535)<<16)>>>0,t^=t>>>16,t.toString(16).padStart(8,"0")},outerHash=e=>{const t=String(e);let n=(3735928559^t.length)>>>0;for(let idx=0;idx<t.length;idx++){let r=t.charCodeAt(idx);r^=255&(131*idx+89^r<<idx%5),n=(n<<7|n>>>25)>>>0^r;n=(60205*(65535&n)>>>0)+(60205*(n>>>16)<<16>>>0)>>>0,n^=n>>>11}return n^=n>>>15,n=49842*(65535&n)+(49842*(n>>>16)<<16)>>>0>>>0,n^=n>>>13,n=40503*(65535&n)+(40503*(n>>>16)<<16)>>>0>>>0,n^=n>>>16,n=10196*(65535&n)+(10196*(n>>>16)<<16)>>>0>>>0,n^=n>>>15,n.toString(16).padStart(8,"0")},o=outerHash(innerHash(i));return btoa(o)}catch(e){return"topSecret"}}exports.getStream=getStream; |