mirror of
https://github.com/vega-org/vega-providers.git
synced 2026-04-17 15:41:45 +00:00
feat: add moviebox
This commit is contained in:
1
dist/movieBox/catalog.js
vendored
Normal file
1
dist/movieBox/catalog.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.genres=exports.catalog=void 0,exports.catalog=[{title:"Trending",filter:"2"},{title:"Cinema",filter:"5"}],exports.genres=[];
|
||||
1
dist/movieBox/episodes.js
vendored
Normal file
1
dist/movieBox/episodes.js
vendored
Normal file
@@ -0,0 +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.getEpisodes=void 0;const getEpisodes=function(_a){return __awaiter(this,arguments,void 0,function*({url:url,providerContext:providerContext}){var _b;const{axios:axios,cheerio:cheerio}=providerContext;try{const episodeLinks=[],response=yield fetch("https://dob-worker.8man.workers.dev",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:url,method:"GET"})}),data=yield response.json();return((null===(_b=null==data?void 0:data.data)||void 0===_b?void 0:_b.list)||[]).forEach(item=>{const seriesTitle=(null==item?void 0:item.ep)?`S-${null==item?void 0:item.se} E-${null==item?void 0:item.ep}`:(null==item?void 0:item.title)||"",episodesLink=(null==item?void 0:item.resourceLink)||"";episodesLink&&episodeLinks.push({title:seriesTitle.trim(),link:JSON.stringify({url:episodesLink,title:seriesTitle.trim()})})}),episodeLinks}catch(err){return[]}})};exports.getEpisodes=getEpisodes;
|
||||
1
dist/movieBox/meta.js
vendored
Normal file
1
dist/movieBox/meta.js
vendored
Normal file
@@ -0,0 +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:link,providerContext:providerContext}){var _b,_c,_d;try{const{axios:axios,cheerio:cheerio,getBaseUrl:getBaseUrl}=providerContext,baseUrl=getBaseUrl("movieBox"),links=[],response=yield fetch("https://dob-worker.8man.workers.dev",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:link,method:"GET"})}),data=(yield response.json()).data,title=((null==data?void 0:data.title)||"").replace(/\s*\[.*?\]\s*$/,""),synopsis=(null==data?void 0:data.description)||"",image=(null===(_b=null==data?void 0:data.cover)||void 0===_b?void 0:_b.url)||"",rating=(null==data?void 0:data.imdbRatingValue)||"",tags=(null===(_d=null===(_c=null==data?void 0:data.genre)||void 0===_c?void 0:_c.split(","))||void 0===_d?void 0:_d.map(tag=>tag.trim()))||[],dubs=(null==data?void 0:data.dubs)||[];return null==dubs||dubs.forEach(dub=>{const link={title:null==dub?void 0:dub.lanName,episodesLink:`${baseUrl}/wefeed-mobile-bff/subject-api/resource?subjectId=${null==dub?void 0:dub.subjectId}&page=1&perPage=20&all=0&startPosition=1&endPosition=1&pagerMode=0&resolution=1080&se=1&epFrom=1&epTo=1`};links.push(link)}),{title:title,synopsis:synopsis,image:image,rating:rating,tags:tags,imdbId:"",type:"movie",linkList:links}}catch(err){return{title:"",synopsis:"",image:"",imdbId:"",type:"movie",linkList:[]}}})};exports.getMeta=getMeta;
|
||||
1
dist/movieBox/posts.js
vendored
Normal file
1
dist/movieBox/posts.js
vendored
Normal file
@@ -0,0 +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,page:page,signal:signal,providerContext:providerContext}){var _b,_c,_d,_e;const posts=[],{getBaseUrl:getBaseUrl}=providerContext;if(page>1)return posts;const baseUrl=getBaseUrl("movieBox"),url=`${baseUrl}/wefeed-mobile-bff/tab-operating?page=3&tabId=0&version=2fe0d7c224603ff7b0df294b46d3b84b`,response=yield fetch("https://dob-worker.8man.workers.dev",{signal:signal,method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:url,method:"GET"})}),data=yield response.json(),list=null===(_d=null===(_c=null===(_b=null==data?void 0:data.data)||void 0===_b?void 0:_b.items)||void 0===_c?void 0:_c[parseInt(filter)])||void 0===_d?void 0:_d.subjects;for(const item of list){const post={image:null==item?void 0:item.cover.url,title:null===(_e=null==item?void 0:item.title)||void 0===_e?void 0:_e.replace(/\s*\[.*?\]\s*$/,""),link:`${baseUrl}/wefeed-mobile-bff/subject-api/get?subjectId=${null==item?void 0:item.subjectId}`};posts.push(post)}return posts})};exports.getPosts=getPosts;const getSearchPosts=function(_a){return __awaiter(this,arguments,void 0,function*({searchQuery:searchQuery,page:page,signal:signal,providerContext:providerContext}){var _b,_c,_d;const{getBaseUrl:getBaseUrl,axios:axios,cheerio:cheerio}=providerContext,baseUrl=getBaseUrl("movieBox"),url=`${baseUrl}/wefeed-mobile-bff/subject-api/search/v2`;if(page>1)return[];const response=yield fetch("https://dob-worker.8man.workers.dev",{signal:signal,method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:url,method:"POST",body:{page:1,perPage:20,keyword:searchQuery,tabId:"Movie"}})}),data=yield response.json(),posts=((null===(_d=null===(_c=null===(_b=null==data?void 0:data.data)||void 0===_b?void 0:_b.results)||void 0===_c?void 0:_c[0])||void 0===_d?void 0:_d.subjects)||[]).map(item=>{var _a;return{image:null===(_a=null==item?void 0:item.cover)||void 0===_a?void 0:_a.url,title:null==item?void 0:item.title,link:`${baseUrl}/wefeed-mobile-bff/subject-api/get?subjectId=${null==item?void 0:item.subjectId}`}});return posts})};exports.getSearchPosts=getSearchPosts;
|
||||
1
dist/movieBox/stream.js
vendored
Normal file
1
dist/movieBox/stream.js
vendored
Normal file
@@ -0,0 +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:url,type:type,providerContext:providerContext}){const{axios:axios,cheerio:cheerio}=providerContext;try{const stream=[],data=JSON.parse(url);return stream.push({link:data.url,server:data.title||"Unknown Server",type:"mp4"}),stream}catch(err){return[]}})};exports.getStream=getStream;
|
||||
2
dist/vega/stream.js
vendored
2
dist/vega/stream.js
vendored
@@ -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=getStream;const headers={Accept:"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7","Cache-Control":"no-store","Accept-Language":"en-US,en;q=0.9",DNT:"1","sec-ch-ua":'"Not_A Brand";v="8", "Chromium";v="120", "Microsoft Edge";v="120"',"sec-ch-ua-mobile":"?0","sec-ch-ua-platform":'"Windows"',"Sec-Fetch-Dest":"document","Sec-Fetch-Mode":"navigate","Sec-Fetch-Site":"none","Sec-Fetch-User":"?1",Cookie:"_lscache_vary=62abf8b96599676eb8ec211cffaeb8ff; ext_name=ojplmecpdpgccookcobabopnaifgidhf; cf_clearance=n4Y1XTKZ5TfIMBNQuAXzerwKpx0U35KoOm3imfT0GpU-1732097818-1.2.1.1-ZeAnEu.8D9TSZHYDoj7vwo1A1rpdKl304ZpaBn_QbAQOr211JFAb7.JRQU3EL2eIy1Dfl8HhYvH7_259.22lUz8gbchHcQ8hvfuQXMtFMCbqDBLzjNUZa9stuk.39l28IcPhH9Z2szsf3SGtNI1sAfo66Djt7sOReLK3lHw9UkJp7BdGqt6a2X9qAc8EsAI3lE480Tmt0fkHv14Oc30LSbPB_WwFmiqAki2W.Gv9hV7TN_QBFESleTDlXd.6KGflfd4.KwWF7rpSRo_cgoc9ALLLIafpxHVbe7_g5r7zvpml_Pj8fEL75fw.1GBuy16bciHBuB8s_kahuJYUnhtQFFgfTQl8_Gn6KeovBWx.PJ7nFv5sklHUfAyBVq3t30xKe8ZDydsQ_G.yipfj_In5GmmWcXGb6E4.bioDOwW_sKLtxwdTQt7Nu.RkILX_mKvXNpyLqflIVj8G7X5E8I.unw","Upgrade-Insecure-Requests":"1","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0"};function getStream(_a){return __awaiter(this,arguments,void 0,function*({link:link,type:type,signal:signal,providerContext:providerContext}){var _b,_c,_d,_e;const{axios:axios,cheerio:cheerio,extractors:extractors}=providerContext,{hubcloudExtracter:hubcloudExtracter}=extractors;try{const streamLinks=[];if("movie"===type){const dotlinkText=(yield axios(`${link}`,{headers:headers})).data;link=(dotlinkText.match(/<a\s+href="([^"]*cloud\.[^"]*)"/i)||[])[1];try{const filepressLink=cheerio.load(dotlinkText)('.btn.btn-sm.btn-outline[style="background:linear-gradient(135deg,rgb(252,185,0) 0%,rgb(0,0,0)); color: #fdf8f2;"]').parent().attr("href"),filepressID=null==filepressLink?void 0:filepressLink.split("/").pop(),filepressBaseUrl=null==filepressLink?void 0:filepressLink.split("/").slice(0,-2).join("/"),filepressTokenRes=yield axios.post(filepressBaseUrl+"/api/file/downlaod/",{id:filepressID,method:"indexDownlaod",captchaValue:null},{headers:{"Content-Type":"application/json",Referer:filepressBaseUrl}});if(null===(_b=filepressTokenRes.data)||void 0===_b?void 0:_b.status){const filepressToken=null===(_c=filepressTokenRes.data)||void 0===_c?void 0:_c.data,filepressStreamLink=yield axios.post(filepressBaseUrl+"/api/file/downlaod2/",{id:filepressToken,method:"indexDownlaod",captchaValue:null},{headers:{"Content-Type":"application/json",Referer:filepressBaseUrl}});streamLinks.push({server:"filepress",link:null===(_e=null===(_d=filepressStreamLink.data)||void 0===_d?void 0:_d.data)||void 0===_e?void 0:_e[0],type:"mkv"})}}catch(error){}}return yield hubcloudExtracter(link,signal)}catch(error){throw new Error(`Error in getStream: ${error.message||error}`)}})}
|
||||
"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=getStream;const headers={Accept:"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7","Cache-Control":"no-store","Accept-Language":"en-US,en;q=0.9",DNT:"1","sec-ch-ua":'"Not_A Brand";v="8", "Chromium";v="120", "Microsoft Edge";v="120"',"sec-ch-ua-mobile":"?0","sec-ch-ua-platform":'"Windows"',"Sec-Fetch-Dest":"document","Sec-Fetch-Mode":"navigate","Sec-Fetch-Site":"none","Sec-Fetch-User":"?1",Cookie:"_lscache_vary=62abf8b96599676eb8ec211cffaeb8ff; ext_name=ojplmecpdpgccookcobabopnaifgidhf; cf_clearance=n4Y1XTKZ5TfIMBNQuAXzerwKpx0U35KoOm3imfT0GpU-1732097818-1.2.1.1-ZeAnEu.8D9TSZHYDoj7vwo1A1rpdKl304ZpaBn_QbAQOr211JFAb7.JRQU3EL2eIy1Dfl8HhYvH7_259.22lUz8gbchHcQ8hvfuQXMtFMCbqDBLzjNUZa9stuk.39l28IcPhH9Z2szsf3SGtNI1sAfo66Djt7sOReLK3lHw9UkJp7BdGqt6a2X9qAc8EsAI3lE480Tmt0fkHv14Oc30LSbPB_WwFmiqAki2W.Gv9hV7TN_QBFESleTDlXd.6KGflfd4.KwWF7rpSRo_cgoc9ALLLIafpxHVbe7_g5r7zvpml_Pj8fEL75fw.1GBuy16bciHBuB8s_kahuJYUnhtQFFgfTQl8_Gn6KeovBWx.PJ7nFv5sklHUfAyBVq3t30xKe8ZDydsQ_G.yipfj_In5GmmWcXGb6E4.bioDOwW_sKLtxwdTQt7Nu.RkILX_mKvXNpyLqflIVj8G7X5E8I.unw","Upgrade-Insecure-Requests":"1","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0"};function getStream(_a){return __awaiter(this,arguments,void 0,function*({link:link,type:type,signal:signal,providerContext:providerContext}){var _b,_c,_d,_e;const{axios:axios,cheerio:cheerio,extractors:extractors}=providerContext,{hubcloudExtracter:hubcloudExtracter}=extractors;try{const streamLinks=[];if("movie"===type){const dotlinkText=(yield axios(`${link}`,{headers:headers})).data;link=(dotlinkText.match(/<a\s+href="([^"]*cloud\.[^"]*)"/i)||[])[1];try{const filepressLink=cheerio.load(dotlinkText)('.btn.btn-sm.btn-outline[style="background:linear-gradient(135deg,rgb(252,185,0) 0%,rgb(0,0,0)); color: #fdf8f2;"]').parent().attr("href"),filepressID=null==filepressLink?void 0:filepressLink.split("/").pop(),filepressBaseUrl=null==filepressLink?void 0:filepressLink.split("/").slice(0,-2).join("/"),filepressTokenRes=yield axios.post(filepressBaseUrl+"/api/file/downlaod/",{id:filepressID,method:"indexDownlaod",captchaValue:null},{headers:{"Content-Type":"application/json",Referer:filepressBaseUrl}});if(null===(_b=filepressTokenRes.data)||void 0===_b?void 0:_b.status){const filepressToken=null===(_c=filepressTokenRes.data)||void 0===_c?void 0:_c.data,filepressStreamLink=yield axios.post(filepressBaseUrl+"/api/file/downlaod2/",{id:filepressToken,method:"indexDownlaod",captchaValue:null},{headers:{"Content-Type":"application/json",Referer:filepressBaseUrl}});streamLinks.push({server:"filepress",link:null===(_e=null===(_d=filepressStreamLink.data)||void 0===_d?void 0:_d.data)||void 0===_e?void 0:_e[0],type:"mkv"})}}catch(error){}}return yield hubcloudExtracter(link,signal)}catch(error){return error.message.includes("Aborted"),[]}})}
|
||||
12
providers/movieBox/catalog.ts
Normal file
12
providers/movieBox/catalog.ts
Normal file
@@ -0,0 +1,12 @@
|
||||
export const catalog = [
|
||||
{
|
||||
title: "Trending",
|
||||
filter: "2",
|
||||
},
|
||||
{
|
||||
title: "Cinema",
|
||||
filter: "5",
|
||||
},
|
||||
];
|
||||
|
||||
export const genres = [];
|
||||
49
providers/movieBox/episodes.ts
Normal file
49
providers/movieBox/episodes.ts
Normal file
@@ -0,0 +1,49 @@
|
||||
import { EpisodeLink, ProviderContext } from "../types";
|
||||
|
||||
export const getEpisodes = async function ({
|
||||
url,
|
||||
providerContext,
|
||||
}: {
|
||||
url: string;
|
||||
providerContext: ProviderContext;
|
||||
}): Promise<EpisodeLink[]> {
|
||||
const { axios, cheerio } = providerContext;
|
||||
try {
|
||||
const episodeLinks: EpisodeLink[] = [];
|
||||
|
||||
const response = await fetch("https://dob-worker.8man.workers.dev", {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
body: JSON.stringify({
|
||||
url: url,
|
||||
method: "GET",
|
||||
}),
|
||||
});
|
||||
|
||||
const data = await response.json();
|
||||
const list = data?.data?.list || [];
|
||||
|
||||
list.forEach((item: any) => {
|
||||
const seriesTitle = item?.ep
|
||||
? `S-${item?.se} E-${item?.ep}`
|
||||
: item?.title || "";
|
||||
const episodesLink = item?.resourceLink || "";
|
||||
if (episodesLink) {
|
||||
episodeLinks.push({
|
||||
title: seriesTitle.trim(),
|
||||
link: JSON.stringify({
|
||||
url: episodesLink,
|
||||
title: seriesTitle.trim(),
|
||||
}),
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
return episodeLinks;
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
return [];
|
||||
}
|
||||
};
|
||||
76
providers/movieBox/meta.ts
Normal file
76
providers/movieBox/meta.ts
Normal file
@@ -0,0 +1,76 @@
|
||||
import { Info, Link, ProviderContext } from "../types";
|
||||
|
||||
export const getMeta = async function ({
|
||||
link,
|
||||
providerContext,
|
||||
}: {
|
||||
link: string;
|
||||
providerContext: ProviderContext;
|
||||
}): Promise<Info> {
|
||||
try {
|
||||
const { axios, cheerio, getBaseUrl } = providerContext;
|
||||
const baseUrl = getBaseUrl("movieBox");
|
||||
const links: Link[] = [];
|
||||
// this is just a proxy please host your own if you want to use this code:- https://github.com/himanshu8443/Cf-Workers/blob/main/src/dob-worker/index.js
|
||||
const response = await fetch("https://dob-worker.8man.workers.dev", {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
body: JSON.stringify({
|
||||
url: link,
|
||||
method: "GET",
|
||||
}),
|
||||
});
|
||||
const data = (await response.json()).data;
|
||||
console.log("data", data);
|
||||
|
||||
// metadata
|
||||
const title = (data?.title || "").replace(/\s*\[.*?\]\s*$/, "");
|
||||
const synopsis = data?.description || "";
|
||||
const image = data?.cover?.url || "";
|
||||
const rating = data?.imdbRatingValue || "";
|
||||
const tags =
|
||||
data?.genre?.split(",")?.map((tag: string) => tag.trim()) || [];
|
||||
|
||||
const dubs = data?.dubs || [];
|
||||
|
||||
dubs?.forEach((dub: any) => {
|
||||
const link: Link = {
|
||||
title: dub?.lanName,
|
||||
episodesLink: `${baseUrl}/wefeed-mobile-bff/subject-api/resource?subjectId=${dub?.subjectId}&page=1&perPage=20&all=0&startPosition=1&endPosition=1&pagerMode=0&resolution=1080&se=1&epFrom=1&epTo=1`,
|
||||
};
|
||||
links.push(link);
|
||||
});
|
||||
|
||||
console.log("meta", {
|
||||
title,
|
||||
synopsis,
|
||||
image,
|
||||
rating,
|
||||
tags,
|
||||
links,
|
||||
});
|
||||
|
||||
return {
|
||||
title,
|
||||
synopsis,
|
||||
image,
|
||||
rating,
|
||||
tags,
|
||||
imdbId: "",
|
||||
type: "movie",
|
||||
linkList: links,
|
||||
};
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
return {
|
||||
title: "",
|
||||
synopsis: "",
|
||||
image: "",
|
||||
imdbId: "",
|
||||
type: "movie",
|
||||
linkList: [],
|
||||
};
|
||||
}
|
||||
};
|
||||
90
providers/movieBox/posts.ts
Normal file
90
providers/movieBox/posts.ts
Normal file
@@ -0,0 +1,90 @@
|
||||
import { Post, ProviderContext } from "../types";
|
||||
|
||||
export const getPosts = async function ({
|
||||
filter,
|
||||
page,
|
||||
signal,
|
||||
providerContext,
|
||||
}: {
|
||||
filter: string;
|
||||
page: number;
|
||||
providerValue: string;
|
||||
signal: AbortSignal;
|
||||
providerContext: ProviderContext;
|
||||
}): Promise<Post[]> {
|
||||
const posts: Post[] = [];
|
||||
const { getBaseUrl } = providerContext;
|
||||
if (page > 1) {
|
||||
return posts;
|
||||
}
|
||||
const baseUrl = getBaseUrl("movieBox");
|
||||
const url = `${baseUrl}/wefeed-mobile-bff/tab-operating?page=3&tabId=0&version=2fe0d7c224603ff7b0df294b46d3b84b`;
|
||||
|
||||
const response = await fetch("https://dob-worker.8man.workers.dev", {
|
||||
signal: signal,
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
body: JSON.stringify({
|
||||
url: url,
|
||||
method: "GET",
|
||||
}),
|
||||
});
|
||||
|
||||
const data = await response.json();
|
||||
const list = data?.data?.items?.[parseInt(filter)]?.subjects;
|
||||
console.log("list", list);
|
||||
for (const item of list) {
|
||||
const post: Post = {
|
||||
image: item?.cover.url,
|
||||
title: item?.title?.replace(/\s*\[.*?\]\s*$/, ""),
|
||||
link: `${baseUrl}/wefeed-mobile-bff/subject-api/get?subjectId=${item?.subjectId}`,
|
||||
};
|
||||
posts.push(post);
|
||||
}
|
||||
return posts;
|
||||
};
|
||||
|
||||
export const getSearchPosts = async function ({
|
||||
searchQuery,
|
||||
page,
|
||||
signal,
|
||||
providerContext,
|
||||
}: {
|
||||
searchQuery: string;
|
||||
page: number;
|
||||
providerValue: string;
|
||||
signal: AbortSignal;
|
||||
providerContext: ProviderContext;
|
||||
}): Promise<Post[]> {
|
||||
const { getBaseUrl, axios, cheerio } = providerContext;
|
||||
const baseUrl = getBaseUrl("movieBox");
|
||||
const url = `${baseUrl}/wefeed-mobile-bff/subject-api/search/v2`;
|
||||
if (page > 1) {
|
||||
return [];
|
||||
}
|
||||
|
||||
// this is just a proxy please host your own if you want to use this code:- https://github.com/himanshu8443/Cf-Workers/blob/main/src/dob-worker/index.js
|
||||
const response = await fetch("https://dob-worker.8man.workers.dev", {
|
||||
signal: signal,
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
body: JSON.stringify({
|
||||
url: url,
|
||||
method: "POST",
|
||||
body: { page: 1, perPage: 20, keyword: searchQuery, tabId: "Movie" },
|
||||
}),
|
||||
});
|
||||
|
||||
const data = await response.json();
|
||||
const list = data?.data?.results?.[0]?.subjects || [];
|
||||
const posts: Post[] = list.map((item: any) => ({
|
||||
image: item?.cover?.url,
|
||||
title: item?.title,
|
||||
link: `${baseUrl}/wefeed-mobile-bff/subject-api/get?subjectId=${item?.subjectId}`,
|
||||
}));
|
||||
return posts;
|
||||
};
|
||||
27
providers/movieBox/stream.ts
Normal file
27
providers/movieBox/stream.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
import { Stream, ProviderContext, EpisodeLink } from "../types";
|
||||
|
||||
export const getStream = async function ({
|
||||
link: url,
|
||||
type,
|
||||
providerContext,
|
||||
}: {
|
||||
link: string;
|
||||
type: string;
|
||||
providerContext: ProviderContext;
|
||||
}): Promise<Stream[]> {
|
||||
const { axios, cheerio } = providerContext;
|
||||
try {
|
||||
const stream: Stream[] = [];
|
||||
const data = JSON.parse(url);
|
||||
stream.push({
|
||||
link: data.url,
|
||||
server: data.title || "Unknown Server",
|
||||
type: "mp4",
|
||||
});
|
||||
console.log("stream", stream);
|
||||
return stream;
|
||||
} catch (err) {
|
||||
console.log("getStream error", err);
|
||||
return [];
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user