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:"Series",filter:"/rest-api//v130/tvseries"},{title:"Movies",filter:"/rest-api//v130/movies"}],exports.genres=[];
exports.genres=exports.catalog=void 0,exports.catalog=[{title:"Series",filter:"/rest-api//v130/tvseries"},{title:"Movies",filter:"/rest-api//v130/movies"}],exports.genres=[];

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 headers={"Accept-Encoding":"gzip","API-KEY":"2pm95lc6prpdbk0ppji9rsqo",Connection:"Keep-Alive","If-Modified-Since":"Wed, 14 Aug 2024 13:00:04 GMT","User-Agent":"okhttp/3.14.9"},getMeta=function(_a){return __awaiter(this,arguments,void 0,function*({link:link,providerContext:providerContext}){var _b,_c,_d,_e;try{const{axios:axios}=providerContext,resData=(yield axios.get(link,{headers:headers})).data,jsonStart=null==resData?void 0:resData.indexOf("{"),jsonEnd=(null==resData?void 0:resData.lastIndexOf("}"))+1,data=(null===(_b=null===JSON||void 0===JSON?void 0:JSON.parse(null==resData?void 0:resData.substring(jsonStart,jsonEnd)))||void 0===_b?void 0:_b.title)?null===JSON||void 0===JSON?void 0:JSON.parse(null==resData?void 0:resData.substring(jsonStart,jsonEnd)):resData,title=(null==data?void 0:data.title)||"",synopsis=(null==data?void 0:data.description)||"",image=(null==data?void 0:data.poster_url)||"",cast=(null==data?void 0:data.cast)||[],rating=(null==data?void 0:data.imdb_rating)||"",type=Number(null==data?void 0:data.is_tvseries)?"series":"movie",tags=(null===(_c=null==data?void 0:data.genre)||void 0===_c?void 0:_c.map(genre=>null==genre?void 0:genre.name))||[],links=[];return"series"===type?null===(_d=null==data?void 0:data.season)||void 0===_d||_d.map(season=>{var _a;const title=(null==season?void 0:season.seasons_name)||"",directLinks=(null===(_a=null==season?void 0:season.episodes)||void 0===_a?void 0:_a.map(episode=>({title:null==episode?void 0:episode.episodes_name,link:null==episode?void 0:episode.file_url})))||[];links.push({title:title,directLinks:directLinks})}):null===(_e=null==data?void 0:data.videos)||void 0===_e||_e.map(video=>{links.push({title:title+" "+(null==video?void 0:video.label),directLinks:[{title:"Play",link:null==video?void 0:video.file_url}]})}),{image:(null==image?void 0:image.includes("https"))?image:null==image?void 0:image.replace("http","https"),synopsis:synopsis,title:title,rating:rating,imdbId:"",cast:cast,tags:tags,type:type,linkList: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 headers={"Accept-Encoding":"gzip","API-KEY":"2pm95lc6prpdbk0ppji9rsqo",Connection:"Keep-Alive","If-Modified-Since":"Wed, 14 Aug 2024 13:00:04 GMT","User-Agent":"okhttp/3.14.9"},getMeta=function(_a){return __awaiter(this,arguments,void 0,function*({link:link,providerContext:providerContext}){var _b,_c,_d,_e;try{const{axios:axios}=providerContext,resData=(yield axios.get(link,{headers:headers})).data,jsonStart=null==resData?void 0:resData.indexOf("{"),jsonEnd=(null==resData?void 0:resData.lastIndexOf("}"))+1,data=(null===(_b=null===JSON||void 0===JSON?void 0:JSON.parse(null==resData?void 0:resData.substring(jsonStart,jsonEnd)))||void 0===_b?void 0:_b.title)?null===JSON||void 0===JSON?void 0:JSON.parse(null==resData?void 0:resData.substring(jsonStart,jsonEnd)):resData,title=(null==data?void 0:data.title)||"",synopsis=(null==data?void 0:data.description)||"",image=(null==data?void 0:data.poster_url)||"",cast=(null==data?void 0:data.cast)||[],rating=(null==data?void 0:data.imdb_rating)||"",type=Number(null==data?void 0:data.is_tvseries)?"series":"movie",tags=(null===(_c=null==data?void 0:data.genre)||void 0===_c?void 0:_c.map(genre=>null==genre?void 0:genre.name))||[],links=[];return"series"===type?null===(_d=null==data?void 0:data.season)||void 0===_d||_d.map(season=>{var _a;const title=(null==season?void 0:season.seasons_name)||"",directLinks=(null===(_a=null==season?void 0:season.episodes)||void 0===_a?void 0:_a.map(episode=>({title:null==episode?void 0:episode.episodes_name,link:null==episode?void 0:episode.file_url})))||[];links.push({title:title,directLinks:directLinks})}):null===(_e=null==data?void 0:data.videos)||void 0===_e||_e.map(video=>{links.push({title:title+" "+(null==video?void 0:video.label),directLinks:[{title:"Play",link:null==video?void 0:video.file_url}]})}),{image:(null==image?void 0:image.includes("https"))?image:null==image?void 0:image.replace("http","https"),synopsis:synopsis,title:title,rating:rating,imdbId:"",cast:cast,tags:tags,type:type,linkList: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 headers={"Accept-Encoding":"gzip","API-KEY":"2pm95lc6prpdbk0ppji9rsqo",Connection:"Keep-Alive","If-Modified-Since":"Wed, 14 Aug 2024 13:00:04 GMT","User-Agent":"okhttp/3.14.9"},getPosts=function(_a){return __awaiter(this,arguments,void 0,function*({filter:filter,page:page,signal:signal,providerContext:providerContext}){try{const{axios:axios,getBaseUrl:getBaseUrl}=providerContext,baseUrl=yield getBaseUrl("dooflix"),catalog=[],url=""+(baseUrl+filter+`?page=${page}`),resData=(yield axios.get(url,{headers:headers,signal:signal})).data;if(!resData||"string"!=typeof resData)return[];let data;try{const jsonStart=resData.indexOf("["),jsonEnd=resData.lastIndexOf("]")+1;if(-1===jsonStart||jsonEnd<=jsonStart)data=JSON.parse(resData);else{const jsonSubstring=resData.substring(jsonStart,jsonEnd),parsedArray=JSON.parse(jsonSubstring);data=parsedArray.length>0?parsedArray:resData}}catch(parseError){return[]}return Array.isArray(data)?(data.forEach(result=>{const id=null==result?void 0:result.videos_id;if(!id)return;const type=(null==result?void 0:result.is_tvseries)?"movie":"tvseries",link=`${baseUrl}/rest-api//v130/single_details?type=${type}&id=${id}`,thumbnailUrl=null==result?void 0:result.thumbnail_url,image=(null==thumbnailUrl?void 0:thumbnailUrl.includes("https"))?thumbnailUrl:null==thumbnailUrl?void 0:thumbnailUrl.replace("http","https");catalog.push({title:(null==result?void 0:result.title)||"",link:link,image:image})}),catalog):[]}catch(err){return[]}})};exports.getPosts=getPosts;const getSearchPosts=function(_a){return __awaiter(this,arguments,void 0,function*({searchQuery:searchQuery,page:page,providerContext:providerContext,signal:signal}){var _b,_c;try{if(page>1)return[];const{axios:axios,getBaseUrl:getBaseUrl}=providerContext,catalog=[],baseUrl=yield getBaseUrl("dooflix"),url=`${baseUrl}/rest-api//v130/search?q=${searchQuery}&type=movietvserieslive&range_to=0&range_from=0&tv_category_id=0&genre_id=0&country_id=0`,resData=(yield axios.get(url,{headers:headers,signal:signal})).data;if(!resData||"string"!=typeof resData)return[];let data;try{const jsonStart=resData.indexOf("{"),jsonEnd=resData.lastIndexOf("}")+1;if(-1===jsonStart||jsonEnd<=jsonStart)data=resData;else{const jsonSubstring=resData.substring(jsonStart,jsonEnd),parsedData=JSON.parse(jsonSubstring);data=(null==parsedData?void 0:parsedData.movie)?parsedData:resData}}catch(parseError){return[]}return null===(_b=null==data?void 0:data.movie)||void 0===_b||_b.forEach(result=>{const id=null==result?void 0:result.videos_id;if(!id)return;const link=`${baseUrl}/rest-api//v130/single_details?type=movie&id=${id}`,thumbnailUrl=null==result?void 0:result.thumbnail_url,image=(null==thumbnailUrl?void 0:thumbnailUrl.includes("https"))?thumbnailUrl:null==thumbnailUrl?void 0:thumbnailUrl.replace("http","https");catalog.push({title:(null==result?void 0:result.title)||"",link:link,image:image})}),null===(_c=null==data?void 0:data.tvseries)||void 0===_c||_c.forEach(result=>{const id=null==result?void 0:result.videos_id;if(!id)return;const link=`${baseUrl}/rest-api//v130/single_details?type=tvseries&id=${id}`,thumbnailUrl=null==result?void 0:result.thumbnail_url,image=(null==thumbnailUrl?void 0:thumbnailUrl.includes("https"))?thumbnailUrl:null==thumbnailUrl?void 0:thumbnailUrl.replace("http","https");catalog.push({title:(null==result?void 0:result.title)||"",link:link,image:image})}),catalog}catch(error){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 headers={"Accept-Encoding":"gzip","API-KEY":"2pm95lc6prpdbk0ppji9rsqo",Connection:"Keep-Alive","If-Modified-Since":"Wed, 14 Aug 2024 13:00:04 GMT","User-Agent":"okhttp/3.14.9"},getPosts=function(_a){return __awaiter(this,arguments,void 0,function*({filter:filter,page:page,signal:signal,providerContext:providerContext}){try{const{axios:axios,getBaseUrl:getBaseUrl}=providerContext,baseUrl=yield getBaseUrl("dooflix"),catalog=[],url=""+(baseUrl+filter+`?page=${page}`),resData=(yield axios.get(url,{headers:headers,signal:signal})).data;if(!resData||"string"!=typeof resData)return[];let data;try{const jsonStart=resData.indexOf("["),jsonEnd=resData.lastIndexOf("]")+1;if(-1===jsonStart||jsonEnd<=jsonStart)data=JSON.parse(resData);else{const jsonSubstring=resData.substring(jsonStart,jsonEnd),parsedArray=JSON.parse(jsonSubstring);data=parsedArray.length>0?parsedArray:resData}}catch(parseError){return[]}return Array.isArray(data)?(data.forEach(result=>{const id=null==result?void 0:result.videos_id;if(!id)return;const type=(null==result?void 0:result.is_tvseries)?"movie":"tvseries",link=`${baseUrl}/rest-api//v130/single_details?type=${type}&id=${id}`,thumbnailUrl=null==result?void 0:result.thumbnail_url,image=(null==thumbnailUrl?void 0:thumbnailUrl.includes("https"))?thumbnailUrl:null==thumbnailUrl?void 0:thumbnailUrl.replace("http","https");catalog.push({title:(null==result?void 0:result.title)||"",link:link,image:image})}),catalog):[]}catch(err){return[]}})};exports.getPosts=getPosts;const getSearchPosts=function(_a){return __awaiter(this,arguments,void 0,function*({searchQuery:searchQuery,page:page,providerContext:providerContext,signal:signal}){var _b,_c;try{if(page>1)return[];const{axios:axios,getBaseUrl:getBaseUrl}=providerContext,catalog=[],baseUrl=yield getBaseUrl("dooflix"),url=`${baseUrl}/rest-api//v130/search?q=${searchQuery}&type=movietvserieslive&range_to=0&range_from=0&tv_category_id=0&genre_id=0&country_id=0`,resData=(yield axios.get(url,{headers:headers,signal:signal})).data;if(!resData||"string"!=typeof resData)return[];let data;try{const jsonStart=resData.indexOf("{"),jsonEnd=resData.lastIndexOf("}")+1;if(-1===jsonStart||jsonEnd<=jsonStart)data=resData;else{const jsonSubstring=resData.substring(jsonStart,jsonEnd),parsedData=JSON.parse(jsonSubstring);data=(null==parsedData?void 0:parsedData.movie)?parsedData:resData}}catch(parseError){return[]}return null===(_b=null==data?void 0:data.movie)||void 0===_b||_b.forEach(result=>{const id=null==result?void 0:result.videos_id;if(!id)return;const link=`${baseUrl}/rest-api//v130/single_details?type=movie&id=${id}`,thumbnailUrl=null==result?void 0:result.thumbnail_url,image=(null==thumbnailUrl?void 0:thumbnailUrl.includes("https"))?thumbnailUrl:null==thumbnailUrl?void 0:thumbnailUrl.replace("http","https");catalog.push({title:(null==result?void 0:result.title)||"",link:link,image:image})}),null===(_c=null==data?void 0:data.tvseries)||void 0===_c||_c.forEach(result=>{const id=null==result?void 0:result.videos_id;if(!id)return;const link=`${baseUrl}/rest-api//v130/single_details?type=tvseries&id=${id}`,thumbnailUrl=null==result?void 0:result.thumbnail_url,image=(null==thumbnailUrl?void 0:thumbnailUrl.includes("https"))?thumbnailUrl:null==thumbnailUrl?void 0:thumbnailUrl.replace("http","https");catalog.push({title:(null==result?void 0:result.title)||"",link:link,image:image})}),catalog}catch(error){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:link}){try{const streams=[],headers={Connection:"Keep-Alive","User-Agent":"Mozilla/5.0 (WindowsNT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.37",Referer:"https://molop.art/",Cookie:"cf_clearance=M2_2Hy4lKRy_ruRX3dzOgm3iho1FHe2DUC1lq28BUtI-1737377622-1.2.1.1-6R8RaH94._H2BuNuotsjTZ3fAF6cLwPII0guemu9A5Xa46lpCJPuELycojdREwoonYS2kRTYcZ9_1c4h4epi2LtDvMM9jIoOZKE9pIdWa30peM1hRMpvffTjGUCraHsJNCJez8S_QZ6XkkdP7GeQ5iwiYaI6Grp6qSJWoq0Hj8lS7EITZ1LzyrALI6iLlYjgLmgLGa1VuhORWJBN8ZxrJIZ_ba_pqbrR9fjnyToqxZ0XQaZfk1d3rZyNWoZUjI98GoAxVjnKtcBQQG6b2jYPJuMbbYraGoa54N7E7BR__7o"},response=yield fetch(link,{redirect:"manual",headers:headers});if(response.status>=300&&response.status<400){const redirectLink=response.headers.get("Location");redirectLink&&(link=redirectLink)}return response.url&&(link=response.url),streams.push({server:"Dooflix",link:link,headers:headers,type:"m3u8"}),streams}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:link}){try{const streams=[],headers={Connection:"Keep-Alive","User-Agent":"Mozilla/5.0 (WindowsNT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.37",Referer:"https://molop.art/",Cookie:"cf_clearance=M2_2Hy4lKRy_ruRX3dzOgm3iho1FHe2DUC1lq28BUtI-1737377622-1.2.1.1-6R8RaH94._H2BuNuotsjTZ3fAF6cLwPII0guemu9A5Xa46lpCJPuELycojdREwoonYS2kRTYcZ9_1c4h4epi2LtDvMM9jIoOZKE9pIdWa30peM1hRMpvffTjGUCraHsJNCJez8S_QZ6XkkdP7GeQ5iwiYaI6Grp6qSJWoq0Hj8lS7EITZ1LzyrALI6iLlYjgLmgLGa1VuhORWJBN8ZxrJIZ_ba_pqbrR9fjnyToqxZ0XQaZfk1d3rZyNWoZUjI98GoAxVjnKtcBQQG6b2jYPJuMbbYraGoa54N7E7BR__7o"},response=yield fetch(link,{redirect:"manual",headers:headers});if(response.status>=300&&response.status<400){const redirectLink=response.headers.get("Location");redirectLink&&(link=redirectLink)}return response.url&&(link=response.url),streams.push({server:"Dooflix",link:link,headers:headers,type:"m3u8"}),streams}catch(err){return[]}})};exports.getStream=getStream;