feat: add extractors bundled in file refactor stream handling in multiple providers

This commit is contained in:
Himanshu
2026-02-02 23:24:38 +05:30
parent 2183412dc8
commit 13d41f9da6
220 changed files with 1300 additions and 771 deletions

View File

@@ -1 +1 @@
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.genres=exports.catalog=void 0,exports.catalog=[{title:"Trending",filter:"/trending"},{title:"Movies",filter:"/recent-movies"},{title:"TV Shows",filter:"/recent-shows"}],exports.genres=[];
exports.genres=exports.catalog=void 0,exports.catalog=[{title:"Trending",filter:"/trending"},{title:"Movies",filter:"/recent-movies"},{title:"TV Shows",filter:"/recent-shows"}],exports.genres=[];

2
dist/flixhq/meta.js vendored
View File

@@ -1 +1 @@
"use strict";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())})};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getMeta=void 0;const getMeta=function(_a){return __awaiter(this,arguments,void 0,function*({link:id,providerContext:providerContext}){try{const{axios:axios,getBaseUrl:getBaseUrl}=providerContext,url=`${yield getBaseUrl("consumet")}/movies/flixhq/info?id=`+id,data=(yield axios.get(url)).data,meta={title:data.title,synopsis:data.description.replace(/<[^>]*>?/gm,"").trim(),image:data.cover,cast:data.casts,rating:data.rating,tags:[null==data?void 0:data.type,null==data?void 0:data.duration,data.releaseDate.split("-")[0]],imdbId:"",type:data.episodes.length>1?"series":"movie"},links=[];return data.episodes.forEach(episode=>{const title=(null==episode?void 0:episode.number)?"Season-"+(null==episode?void 0:episode.season)+" Ep-"+episode.number:episode.title,link=episode.id+"*"+data.id;link&&title&&links.push({title:title,link:link})}),Object.assign(Object.assign({},meta),{linkList:[{title:meta.title,directLinks:links}]})}catch(err){return{title:"",synopsis:"",image:"",imdbId:"",type:"movie",linkList:[]}}})};exports.getMeta=getMeta;
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.getMeta=void 0;const getMeta=function(_a){return __awaiter(this,arguments,void 0,function*({link:id,providerContext:providerContext}){try{const{axios:axios,getBaseUrl:getBaseUrl}=providerContext,url=`${yield getBaseUrl("consumet")}/movies/flixhq/info?id=`+id,data=(yield axios.get(url)).data,meta={title:data.title,synopsis:data.description.replace(/<[^>]*>?/gm,"").trim(),image:data.cover,cast:data.casts,rating:data.rating,tags:[null==data?void 0:data.type,null==data?void 0:data.duration,data.releaseDate.split("-")[0]],imdbId:"",type:data.episodes.length>1?"series":"movie"},links=[];return data.episodes.forEach(episode=>{const title=(null==episode?void 0:episode.number)?"Season-"+(null==episode?void 0:episode.season)+" Ep-"+episode.number:episode.title,link=episode.id+"*"+data.id;link&&title&&links.push({title:title,link:link})}),Object.assign(Object.assign({},meta),{linkList:[{title:meta.title,directLinks:links}]})}catch(err){return{title:"",synopsis:"",image:"",imdbId:"",type:"movie",linkList:[]}}})};exports.getMeta=getMeta;

View File

@@ -1 +1 @@
"use strict";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())})};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getSearchPosts=exports.getPosts=void 0;const getPosts=function(_a){return __awaiter(this,arguments,void 0,function*({filter:filter,signal:signal,providerContext:providerContext}){const{getBaseUrl:getBaseUrl}=providerContext;return posts({url:`${(yield getBaseUrl("consumet"))+"/movies/flixhq"+filter}`,signal:signal,providerContext:providerContext})})};exports.getPosts=getPosts;const getSearchPosts=function(_a){return __awaiter(this,arguments,void 0,function*({searchQuery:searchQuery,page:page,signal:signal,providerContext:providerContext}){const{getBaseUrl:getBaseUrl}=providerContext;return posts({url:`${(yield getBaseUrl("consumet"))+"/movies/flixhq"}/${searchQuery}?page=${page}`,signal:signal,providerContext:providerContext})})};function posts(_a){return __awaiter(this,arguments,void 0,function*({url:url,signal:signal,providerContext:providerContext}){var _b;try{const{axios:axios}=providerContext,res=yield axios.get(url,{signal:signal}),data=(null===(_b=res.data)||void 0===_b?void 0:_b.results)||res.data,catalog=[];return null==data||data.map(element=>{const title=element.title,link=element.id,image=element.image;title&&link&&image&&catalog.push({title:title,link:link,image:image})}),catalog}catch(err){return[]}})}exports.getSearchPosts=getSearchPosts;
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.getSearchPosts=exports.getPosts=void 0;const getPosts=function(_a){return __awaiter(this,arguments,void 0,function*({filter:filter,signal:signal,providerContext:providerContext}){const{getBaseUrl:getBaseUrl}=providerContext;return posts({url:`${(yield getBaseUrl("consumet"))+"/movies/flixhq"+filter}`,signal:signal,providerContext:providerContext})})};exports.getPosts=getPosts;const getSearchPosts=function(_a){return __awaiter(this,arguments,void 0,function*({searchQuery:searchQuery,page:page,signal:signal,providerContext:providerContext}){const{getBaseUrl:getBaseUrl}=providerContext;return posts({url:`${(yield getBaseUrl("consumet"))+"/movies/flixhq"}/${searchQuery}?page=${page}`,signal:signal,providerContext:providerContext})})};function posts(_a){return __awaiter(this,arguments,void 0,function*({url:url,signal:signal,providerContext:providerContext}){var _b;try{const{axios:axios}=providerContext,res=yield axios.get(url,{signal:signal}),data=(null===(_b=res.data)||void 0===_b?void 0:_b.results)||res.data,catalog=[];return null==data||data.map(element=>{const title=element.title,link=element.id,image=element.image;title&&link&&image&&catalog.push({title:title,link:link,image:image})}),catalog}catch(err){return[]}})}exports.getSearchPosts=getSearchPosts;

View File

@@ -1 +1 @@
"use strict";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())})};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getStream=void 0;const getStream=function(_a){return __awaiter(this,arguments,void 0,function*({link:id,providerContext:providerContext}){var _b;try{const{getBaseUrl:getBaseUrl}=providerContext,episodeId=id.split("*")[0],mediaId=id.split("*")[1],baseUrl=yield getBaseUrl("consumet"),serverUrl=`${baseUrl}/movies/flixhq/servers?episodeId=${episodeId}&mediaId=${mediaId}`,res=yield fetch(serverUrl),servers=yield res.json(),streamLinks=[];for(const server of servers){const streamUrl=`${baseUrl}/movies/flixhq/watch?server=`+server.name+"&episodeId="+episodeId+"&mediaId="+mediaId,streamRes=yield fetch(streamUrl),streamData=yield streamRes.json(),subtitles=[];(null===(_b=null==streamData?void 0:streamData.sources)||void 0===_b?void 0:_b.length)>0&&(streamData.subtitles&&streamData.subtitles.forEach(sub=>{var _a;subtitles.push({language:null===(_a=null==sub?void 0:sub.lang)||void 0===_a?void 0:_a.slice(0,2),uri:null==sub?void 0:sub.url,type:"text/vtt",title:null==sub?void 0:sub.lang})}),streamData.sources.forEach(source=>{var _a;streamLinks.push({server:(null==server?void 0:server.name)+"-"+(null===(_a=null==source?void 0:source.quality)||void 0===_a?void 0:_a.replace("auto","MultiQuality")),link:source.url,type:source.isM3U8?"m3u8":"mp4",subtitles:subtitles})}))}return streamLinks}catch(err){return[]}})};exports.getStream=getStream;
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;const getStream=function(_a){return __awaiter(this,arguments,void 0,function*({link:id,providerContext:providerContext}){var _b;try{const{getBaseUrl:getBaseUrl}=providerContext,episodeId=id.split("*")[0],mediaId=id.split("*")[1],baseUrl=yield getBaseUrl("consumet"),serverUrl=`${baseUrl}/movies/flixhq/servers?episodeId=${episodeId}&mediaId=${mediaId}`,res=yield fetch(serverUrl),servers=yield res.json(),streamLinks=[];for(const server of servers){const streamUrl=`${baseUrl}/movies/flixhq/watch?server=`+server.name+"&episodeId="+episodeId+"&mediaId="+mediaId,streamRes=yield fetch(streamUrl),streamData=yield streamRes.json(),subtitles=[];(null===(_b=null==streamData?void 0:streamData.sources)||void 0===_b?void 0:_b.length)>0&&(streamData.subtitles&&streamData.subtitles.forEach(sub=>{var _a;subtitles.push({language:null===(_a=null==sub?void 0:sub.lang)||void 0===_a?void 0:_a.slice(0,2),uri:null==sub?void 0:sub.url,type:"text/vtt",title:null==sub?void 0:sub.lang})}),streamData.sources.forEach(source=>{var _a;streamLinks.push({server:(null==server?void 0:server.name)+"-"+(null===(_a=null==source?void 0:source.quality)||void 0===_a?void 0:_a.replace("auto","MultiQuality")),link:source.url,type:source.isM3U8?"m3u8":"mp4",subtitles:subtitles})}))}return streamLinks}catch(err){return[]}})};exports.getStream=getStream;