minify again

This commit is contained in:
himanshu8443
2025-07-13 11:25:52 +05:30
parent 4d450e5be5
commit bd060abce3
139 changed files with 139 additions and 10578 deletions

View File

@@ -1,22 +1 @@
"use strict"; "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.genres=exports.catalog=void 0,exports.catalog=[{title:"Popular Movies",filter:"/category/new-movies-10810.html"},{title:"Latest TV Shows",filter:"/category/new-series-10811.html"},{title:"Anime",filter:"/category/anime-10812.html"},{title:"4K HDR",filter:"/category/4k-hdr-10776.html"}],exports.genres=[];
Object.defineProperty(exports, "__esModule", { value: true });
exports.genres = exports.catalog = void 0;
exports.catalog = [
{
title: "Popular Movies",
filter: "/category/new-movies-10810.html",
},
{
title: "Latest TV Shows",
filter: "/category/new-series-10811.html",
},
{
title: "Anime",
filter: "/category/anime-10812.html",
},
{
title: "4K HDR",
filter: "/category/4k-hdr-10776.html",
},
];
exports.genres = [];

98
dist/4khdhub/meta.js vendored
View File

@@ -1,97 +1 @@
"use strict"; "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}){try{const{axios:axios,cheerio:cheerio,getBaseUrl:getBaseUrl}=providerContext,url=`${yield getBaseUrl("4khdhub")}${link}`,data=(yield axios.get(url)).data,$=cheerio.load(data),type=$(".season-content").length>0?"series":"movie",imdbId="",title=$(".page-title").text()||"",image=$(".poster-image").find("img").attr("src")||"",synopsis=$(".content-section").find("p").first().text().trim()||"",links=[];return"series"===type?$(".season-item").map((i,element)=>{const title=$(element).find(".episode-title").text();let directLinks=[];$(element).find(".episode-download-item").map((i,element)=>{const title=$(element).find(".episode-file-info").text().trim().replace("\n"," "),link=$(element).find(".episode-links").find("a:contains('HubDrive')").attr("href");title&&link&&directLinks.push({title:title,link:link})}),title&&directLinks.length>0&&links.push({title:title,directLinks:directLinks})}):$(".download-item").map((i,element)=>{const title=$(element).find(".flex-1.text-left.font-semibold").text().trim(),link=$(element).find(".grid.grid-cols-2.gap-2").find("a:contains('HubDrive')").attr("href");title&&link&&links.push({title:title,directLinks:[{title:title,link:link}]})}),{title:title,synopsis:synopsis,image:image,imdbId:imdbId,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) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getMeta = void 0;
const getMeta = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ link, providerContext, }) {
try {
const { axios, cheerio, getBaseUrl } = providerContext;
const baseUrl = yield getBaseUrl("4khdhub");
const url = `${baseUrl}${link}`;
const res = yield axios.get(url);
const data = res.data;
const $ = cheerio.load(data);
const type = $(".season-content").length > 0 ? "series" : "movie";
const imdbId = "";
const title = $(".page-title").text() || "";
const image = $(".poster-image").find("img").attr("src") || "";
const synopsis = $(".content-section").find("p").first().text().trim() || "";
// Links
const links = [];
if (type === "series") {
$(".season-item").map((i, element) => {
const title = $(element).find(".episode-title").text();
let directLinks = [];
$(element)
.find(".episode-download-item")
.map((i, element) => {
const title = $(element)
.find(".episode-file-info")
.text()
.trim()
.replace("\n", " ");
const link = $(element)
.find(".episode-links")
.find("a:contains('HubDrive')")
.attr("href");
console.log("title⭐", title, "link", link);
if (title && link) {
directLinks.push({ title, link });
}
});
if (title && directLinks.length > 0) {
links.push({
title,
directLinks: directLinks,
});
}
});
}
else {
$(".download-item").map((i, element) => {
const title = $(element)
.find(".flex-1.text-left.font-semibold")
.text()
.trim();
const link = $(element)
.find(".grid.grid-cols-2.gap-2")
.find("a:contains('HubDrive')")
.attr("href");
// console.log("title⭐", title, "link", link);
if (title && link) {
links.push({ title, directLinks: [{ title, link }] });
}
});
}
// console.log('multi meta', links);
return {
title,
synopsis,
image,
imdbId,
type,
linkList: links,
};
}
catch (err) {
console.error(err);
return {
title: "",
synopsis: "",
image: "",
imdbId: "",
type: "movie",
linkList: [],
};
}
});
};
exports.getMeta = getMeta;

69
dist/4khdhub/posts.js vendored
View File

@@ -1,68 +1 @@
"use strict"; "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}){const{getBaseUrl:getBaseUrl,cheerio:cheerio}=providerContext;return posts({url:`${(yield getBaseUrl("4khdhub"))+filter}/page/${page}.html`,signal:signal,cheerio:cheerio})})};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,cheerio:cheerio}=providerContext;return posts({url:`${yield getBaseUrl("4khdhub")}/page/${page}.html?s=${searchQuery}`,signal:signal,cheerio:cheerio})})};function posts(_a){return __awaiter(this,arguments,void 0,function*({url:url,signal:signal,cheerio:cheerio}){try{const res=yield fetch(url,{signal:signal}),data=yield res.text(),$=cheerio.load(data),catalog=[];return $(".card-grid").children().map((i,element)=>{const title=$(element).find(".movie-card-title").text(),link=$(element).attr("href"),image=$(element).find("img").attr("src");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) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getSearchPosts = exports.getPosts = void 0;
const getPosts = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ filter, page, signal, providerContext, }) {
const { getBaseUrl, cheerio } = providerContext;
const baseUrl = yield getBaseUrl("4khdhub");
const url = `${baseUrl + filter}/page/${page}.html`;
console.log("4khdhubGetPosts url", url);
return posts({ url, signal, cheerio });
});
};
exports.getPosts = getPosts;
const getSearchPosts = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ searchQuery, page, signal, providerContext, }) {
const { getBaseUrl, cheerio } = providerContext;
const baseUrl = yield getBaseUrl("4khdhub");
const url = `${baseUrl}/page/${page}.html?s=${searchQuery}`;
return posts({ url, signal, cheerio });
});
};
exports.getSearchPosts = getSearchPosts;
function posts(_a) {
return __awaiter(this, arguments, void 0, function* ({ url, signal, cheerio, }) {
try {
const res = yield fetch(url, { signal });
const data = yield res.text();
const $ = cheerio.load(data);
const catalog = [];
$(".card-grid")
.children()
.map((i, element) => {
const title = $(element).find(".movie-card-title").text();
const link = $(element).attr("href");
const image = $(element).find("img").attr("src");
// console.log(
// "4khdhubGetPosts title",
// title,
// "link",
// link,
// "image",
// image
// );
if (title && link && image) {
catalog.push({
title: title,
link: link,
image: image,
});
}
});
return catalog;
}
catch (err) {
console.error("4khdhubGetPosts error ", err);
return [];
}
});
}

165
dist/4khdhub/stream.js vendored
View File

@@ -1,164 +1 @@
"use strict"; "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())})};function getStream(_a){return __awaiter(this,arguments,void 0,function*({link:link,signal:signal,providerContext:providerContext}){var _b,_c,_d,_e;const{axios:axios,cheerio:cheerio,extractors:extractors,commonHeaders:headers}=providerContext,{hubcloudExtracter:hubcloudExtracter}=extractors;let hubdriveLink="";if(link.includes("hubdrive")){const hubdriveText=(yield axios.get(link,{headers:headers,signal:signal})).data;hubdriveLink=cheerio.load(hubdriveText)(".btn.btn-primary.btn-user.btn-success1.m-1").attr("href")||link}else{const decodedString=decodeString(null===(_d=null===(_c=null===(_b=(yield axios.get(link,{headers:headers,signal:signal})).data.split("s('o','"))||void 0===_b?void 0:_b[1])||void 0===_c?void 0:_c.split("',180"))||void 0===_d?void 0:_d[0]);link=atob(null==decodedString?void 0:decodedString.o);const redirectLink=yield getRedirectLinks(link,signal,headers),redirectLinkText=(yield axios.get(redirectLink,{headers:headers,signal:signal})).data;if(hubdriveLink=cheerio.load(redirectLinkText)('h3:contains("1080p")').find("a").attr("href")||redirectLinkText.match(/href="(https:\/\/hubcloud\.[^\/]+\/drive\/[^"]+)"/)[1],hubdriveLink.includes("hubdrive")){const hubdriveText=(yield axios.get(hubdriveLink,{headers:headers,signal:signal})).data;hubdriveLink=cheerio.load(hubdriveText)(".btn.btn-primary.btn-user.btn-success1.m-1").attr("href")||hubdriveLink}}const hubcloudLink=(null===(_e=(yield axios.get(hubdriveLink,{headers:headers,signal:signal})).data.match(/<META HTTP-EQUIV="refresh" content="0; url=([^"]+)">/i))||void 0===_e?void 0:_e[1])||hubdriveLink;try{return yield hubcloudExtracter(hubcloudLink,signal)}catch(error){return[]}})}Object.defineProperty(exports,"__esModule",{value:!0}),exports.getStream=getStream,exports.getRedirectLinks=getRedirectLinks,exports.decodeString=decodeString;const encode=function(value){return btoa(value.toString())},decode=function(value){return void 0===value?"":atob(value.toString())},pen=function(value){return value.replace(/[a-zA-Z]/g,function(_0x1a470e){return String.fromCharCode((_0x1a470e<="Z"?90:122)>=(_0x1a470e=_0x1a470e.charCodeAt(0)+13)?_0x1a470e:_0x1a470e-26)})},abortableTimeout=(ms,{signal:signal}={})=>new Promise((resolve,reject)=>{if(signal&&signal.aborted)return reject(new Error("Aborted"));const timer=setTimeout(resolve,ms);signal&&signal.addEventListener("abort",()=>{clearTimeout(timer),reject(new Error("Aborted"))})});function getRedirectLinks(link,signal,headers){return __awaiter(this,void 0,void 0,function*(){try{const res=yield fetch(link,{headers:headers,signal:signal}),resText=yield res.text();for(var match,regex=/ck\('_wp_http_\d+','([^']+)'/g,combinedString="";null!==(match=regex.exec(resText));)combinedString+=match[1];const decodedString=decode(pen(decode(decode(combinedString)))),data=JSON.parse(decodedString),token=encode(null==data?void 0:data.data),blogLink=(null==data?void 0:data.wp_http1)+"?re="+token;let wait=abortableTimeout(1e3*(Number(null==data?void 0:data.total_time)+3),{signal:signal});yield wait;let vcloudLink="Invalid Request";for(;vcloudLink.includes("Invalid Request");){const blogRes=yield fetch(blogLink,{headers:headers,signal:signal}),blogResText=yield blogRes.text();if(!blogResText.includes("Invalid Request")){vcloudLink=blogResText.match(/var reurl = "([^"]+)"/)||"";break}}return blogLink||link}catch(err){return link}})}function rot13(str){return str.replace(/[a-zA-Z]/g,function(char){const charCode=char.charCodeAt(0),baseCharCode=char<="Z"?65:97;return String.fromCharCode((charCode-baseCharCode+13)%26+baseCharCode)})}function decodeString(encryptedString){try{let decoded=atob(encryptedString);return decoded=atob(decoded),decoded=rot13(decoded),decoded=atob(decoded),JSON.parse(decoded)}catch(error){return null}}
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getStream = getStream;
exports.getRedirectLinks = getRedirectLinks;
exports.decodeString = decodeString;
function getStream(_a) {
return __awaiter(this, arguments, void 0, function* ({ link, signal, providerContext, }) {
var _b, _c, _d, _e;
const { axios, cheerio, extractors, commonHeaders: headers, } = providerContext;
const { hubcloudExtracter } = extractors;
let hubdriveLink = "";
if (link.includes("hubdrive")) {
const hubdriveRes = yield axios.get(link, { headers, signal });
const hubdriveText = hubdriveRes.data;
const $ = cheerio.load(hubdriveText);
hubdriveLink =
$(".btn.btn-primary.btn-user.btn-success1.m-1").attr("href") || link;
}
else {
const res = yield axios.get(link, { headers, signal });
const text = res.data;
const encryptedString = (_d = (_c = (_b = text.split("s('o','")) === null || _b === void 0 ? void 0 : _b[1]) === null || _c === void 0 ? void 0 : _c.split("',180")) === null || _d === void 0 ? void 0 : _d[0];
const decodedString = decodeString(encryptedString);
link = atob(decodedString === null || decodedString === void 0 ? void 0 : decodedString.o);
const redirectLink = yield getRedirectLinks(link, signal, headers);
const redirectLinkRes = yield axios.get(redirectLink, { headers, signal });
const redirectLinkText = redirectLinkRes.data;
const $ = cheerio.load(redirectLinkText);
hubdriveLink =
$('h3:contains("1080p")').find("a").attr("href") ||
redirectLinkText.match(/href="(https:\/\/hubcloud\.[^\/]+\/drive\/[^"]+)"/)[1];
if (hubdriveLink.includes("hubdrive")) {
const hubdriveRes = yield axios.get(hubdriveLink, { headers, signal });
const hubdriveText = hubdriveRes.data;
const $$ = cheerio.load(hubdriveText);
hubdriveLink =
$$(".btn.btn-primary.btn-user.btn-success1.m-1").attr("href") ||
hubdriveLink;
}
}
const hubdriveLinkRes = yield axios.get(hubdriveLink, { headers, signal });
const hubcloudText = hubdriveLinkRes.data;
const hubcloudLink = ((_e = hubcloudText.match(/<META HTTP-EQUIV="refresh" content="0; url=([^"]+)">/i)) === null || _e === void 0 ? void 0 : _e[1]) || hubdriveLink;
try {
return yield hubcloudExtracter(hubcloudLink, signal);
}
catch (error) {
console.log("hd hub 4 getStream error: ", error);
return [];
}
});
}
const encode = function (value) {
return btoa(value.toString());
};
const decode = function (value) {
if (value === undefined) {
return "";
}
return atob(value.toString());
};
const pen = function (value) {
return value.replace(/[a-zA-Z]/g, function (_0x1a470e) {
return String.fromCharCode((_0x1a470e <= "Z" ? 90 : 122) >=
(_0x1a470e = _0x1a470e.charCodeAt(0) + 13)
? _0x1a470e
: _0x1a470e - 26);
});
};
const abortableTimeout = (ms, { signal } = {}) => {
return new Promise((resolve, reject) => {
if (signal && signal.aborted) {
return reject(new Error("Aborted"));
}
const timer = setTimeout(resolve, ms);
if (signal) {
signal.addEventListener("abort", () => {
clearTimeout(timer);
reject(new Error("Aborted"));
});
}
});
};
function getRedirectLinks(link, signal, headers) {
return __awaiter(this, void 0, void 0, function* () {
try {
const res = yield fetch(link, { headers, signal });
const resText = yield res.text();
var regex = /ck\('_wp_http_\d+','([^']+)'/g;
var combinedString = "";
var match;
while ((match = regex.exec(resText)) !== null) {
// console.log(match[1]);
combinedString += match[1];
}
// console.log(decode(combinedString));
const decodedString = decode(pen(decode(decode(combinedString))));
// console.log(decodedString);
const data = JSON.parse(decodedString);
console.log(data);
const token = encode(data === null || data === void 0 ? void 0 : data.data);
const blogLink = (data === null || data === void 0 ? void 0 : data.wp_http1) + "?re=" + token;
// abort timeout on signal
let wait = abortableTimeout((Number(data === null || data === void 0 ? void 0 : data.total_time) + 3) * 1000, {
signal,
});
yield wait;
console.log("blogLink", blogLink);
let vcloudLink = "Invalid Request";
while (vcloudLink.includes("Invalid Request")) {
const blogRes = yield fetch(blogLink, { headers, signal });
const blogResText = (yield blogRes.text());
if (blogResText.includes("Invalid Request")) {
console.log(blogResText);
}
else {
vcloudLink = blogResText.match(/var reurl = "([^"]+)"/) || "";
break;
}
}
// console.log('vcloudLink', vcloudLink?.[1]);
return blogLink || link;
}
catch (err) {
console.log("Error in getRedirectLinks", err);
return link;
}
});
}
function rot13(str) {
return str.replace(/[a-zA-Z]/g, function (char) {
const charCode = char.charCodeAt(0);
const isUpperCase = char <= "Z";
const baseCharCode = isUpperCase ? 65 : 97;
return String.fromCharCode(((charCode - baseCharCode + 13) % 26) + baseCharCode);
});
}
function decodeString(encryptedString) {
try {
// First base64 decode
let decoded = atob(encryptedString);
// Second base64 decode
decoded = atob(decoded);
// ROT13 decode
decoded = rot13(decoded);
// Third base64 decode
decoded = atob(decoded);
// Parse JSON
return JSON.parse(decoded);
}
catch (error) {
console.error("Error decoding string:", error);
return null;
}
}

View File

@@ -1,22 +1 @@
"use strict"; "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.genres=exports.catalog=void 0,exports.catalog=[{title:"Popular Movies",filter:"/top/catalog/movie/top.json"},{title:"Popular TV Shows",filter:"/top/catalog/series/top.json"},{title:"Featured Movies",filter:"/imdbRating/catalog/movie/imdbRating.json"},{title:"Featured TV Shows",filter:"/imdbRating/catalog/series/imdbRating.json"}],exports.genres=[];
Object.defineProperty(exports, "__esModule", { value: true });
exports.genres = exports.catalog = void 0;
exports.catalog = [
{
title: "Popular Movies",
filter: "/top/catalog/movie/top.json",
},
{
title: "Popular TV Shows",
filter: "/top/catalog/series/top.json",
},
{
title: "Featured Movies",
filter: "/imdbRating/catalog/movie/imdbRating.json",
},
{
title: "Featured TV Shows",
filter: "/imdbRating/catalog/series/imdbRating.json",
},
];
exports.genres = [];

100
dist/autoEmbed/meta.js vendored
View File

@@ -1,99 +1 @@
"use strict"; "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,_e,_f,_g,_h,_j,_k,_l,_m;const axios=providerContext.axios;try{const data=(yield axios.get(link)).data,meta={title:"",synopsis:"",image:"",imdbId:(null===(_b=null==data?void 0:data.meta)||void 0===_b?void 0:_b.imdb_id)||"",type:(null===(_c=null==data?void 0:data.meta)||void 0===_c?void 0:_c.type)||"movie"},links=[];let directLinks=[],season=new Map;if("series"===meta.type){null===(_e=null===(_d=null==data?void 0:data.meta)||void 0===_d?void 0:_d.videos)||void 0===_e||_e.map(video=>{var _a,_b,_c,_d,_e,_f,_g,_h;(null==video?void 0:video.season)<=0||(season.has(null==video?void 0:video.season)||season.set(null==video?void 0:video.season,[]),season.get(null==video?void 0:video.season).push({title:"Episode "+(null==video?void 0:video.episode),type:"series",link:JSON.stringify({title:null===(_a=null==data?void 0:data.meta)||void 0===_a?void 0:_a.name,imdbId:null===(_b=null==data?void 0:data.meta)||void 0===_b?void 0:_b.imdb_id,season:null===(_c=null==video?void 0:video.id)||void 0===_c?void 0:_c.split(":")[1],episode:null===(_d=null==video?void 0:video.id)||void 0===_d?void 0:_d.split(":")[2],type:null===(_e=null==data?void 0:data.meta)||void 0===_e?void 0:_e.type,tmdbId:(null===(_g=null===(_f=null==data?void 0:data.meta)||void 0===_f?void 0:_f.moviedb_id)||void 0===_g?void 0:_g.toString())||"",year:null===(_h=null==data?void 0:data.meta)||void 0===_h?void 0:_h.year})}))});const keys=Array.from(season.keys());keys.sort(),keys.map(key=>{directLinks=season.get(key),links.push({title:`Season ${key}`,directLinks:directLinks})})}else links.push({title:null===(_f=null==data?void 0:data.meta)||void 0===_f?void 0:_f.name,directLinks:[{title:"Movie",type:"movie",link:JSON.stringify({title:null===(_g=null==data?void 0:data.meta)||void 0===_g?void 0:_g.name,imdbId:null===(_h=null==data?void 0:data.meta)||void 0===_h?void 0:_h.imdb_id,season:"",episode:"",type:null===(_j=null==data?void 0:data.meta)||void 0===_j?void 0:_j.type,tmdbId:(null===(_l=null===(_k=null==data?void 0:data.meta)||void 0===_k?void 0:_k.moviedb_id)||void 0===_l?void 0:_l.toString())||"",year:null===(_m=null==data?void 0:data.meta)||void 0===_m?void 0:_m.year})}]});return Object.assign(Object.assign({},meta),{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) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getMeta = void 0;
const getMeta = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ link, providerContext, }) {
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
const axios = providerContext.axios;
try {
console.log("all", link);
const res = yield axios.get(link);
const data = res.data;
const meta = {
title: "",
synopsis: "",
image: "",
imdbId: ((_b = data === null || data === void 0 ? void 0 : data.meta) === null || _b === void 0 ? void 0 : _b.imdb_id) || "",
type: ((_c = data === null || data === void 0 ? void 0 : data.meta) === null || _c === void 0 ? void 0 : _c.type) || "movie",
};
const links = [];
let directLinks = [];
let season = new Map();
if (meta.type === "series") {
(_e = (_d = data === null || data === void 0 ? void 0 : data.meta) === null || _d === void 0 ? void 0 : _d.videos) === null || _e === void 0 ? void 0 : _e.map((video) => {
var _a, _b, _c, _d, _e, _f, _g, _h;
if ((video === null || video === void 0 ? void 0 : video.season) <= 0)
return;
if (!season.has(video === null || video === void 0 ? void 0 : video.season)) {
season.set(video === null || video === void 0 ? void 0 : video.season, []);
}
season.get(video === null || video === void 0 ? void 0 : video.season).push({
title: "Episode " + (video === null || video === void 0 ? void 0 : video.episode),
type: "series",
link: JSON.stringify({
title: (_a = data === null || data === void 0 ? void 0 : data.meta) === null || _a === void 0 ? void 0 : _a.name,
imdbId: (_b = data === null || data === void 0 ? void 0 : data.meta) === null || _b === void 0 ? void 0 : _b.imdb_id,
season: (_c = video === null || video === void 0 ? void 0 : video.id) === null || _c === void 0 ? void 0 : _c.split(":")[1],
episode: (_d = video === null || video === void 0 ? void 0 : video.id) === null || _d === void 0 ? void 0 : _d.split(":")[2],
type: (_e = data === null || data === void 0 ? void 0 : data.meta) === null || _e === void 0 ? void 0 : _e.type,
tmdbId: ((_g = (_f = data === null || data === void 0 ? void 0 : data.meta) === null || _f === void 0 ? void 0 : _f.moviedb_id) === null || _g === void 0 ? void 0 : _g.toString()) || "",
year: (_h = data === null || data === void 0 ? void 0 : data.meta) === null || _h === void 0 ? void 0 : _h.year,
}),
});
});
const keys = Array.from(season.keys());
keys.sort();
keys.map((key) => {
directLinks = season.get(key);
links.push({
title: `Season ${key}`,
directLinks: directLinks,
});
});
}
else {
console.log("all meta Mv🔥🔥", meta);
links.push({
title: (_f = data === null || data === void 0 ? void 0 : data.meta) === null || _f === void 0 ? void 0 : _f.name,
directLinks: [
{
title: "Movie",
type: "movie",
link: JSON.stringify({
title: (_g = data === null || data === void 0 ? void 0 : data.meta) === null || _g === void 0 ? void 0 : _g.name,
imdbId: (_h = data === null || data === void 0 ? void 0 : data.meta) === null || _h === void 0 ? void 0 : _h.imdb_id,
season: "",
episode: "",
type: (_j = data === null || data === void 0 ? void 0 : data.meta) === null || _j === void 0 ? void 0 : _j.type,
tmdbId: ((_l = (_k = data === null || data === void 0 ? void 0 : data.meta) === null || _k === void 0 ? void 0 : _k.moviedb_id) === null || _l === void 0 ? void 0 : _l.toString()) || "",
year: (_m = data === null || data === void 0 ? void 0 : data.meta) === null || _m === void 0 ? void 0 : _m.year,
}),
},
],
});
}
return Object.assign(Object.assign({}, meta), { linkList: links });
}
catch (err) {
console.error(err);
return {
title: "",
synopsis: "",
image: "",
imdbId: "",
type: "movie",
linkList: [],
};
}
});
};
exports.getMeta = getMeta;

View File

@@ -1,102 +1 @@
"use strict"; "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}){try{const catalog=[],url="https://cinemeta-catalogs.strem.io"+filter,data=(yield providerContext.axios.get(url,{headers:providerContext.commonHeaders,signal:signal})).data;return null==data||data.metas.map(result=>{const title=null==result?void 0:result.name,id=(null==result?void 0:result.imdb_id)||(null==result?void 0:result.id),type=null==result?void 0:result.type,image=null==result?void 0:result.poster;id&&catalog.push({title:title,link:`https://v3-cinemeta.strem.io/meta/${type}/${id}.json`,image:image})}),catalog}catch(err){return[]}})};exports.getPosts=getPosts;const getSearchPosts=function(_a){return __awaiter(this,arguments,void 0,function*({searchQuery:searchQuery,page:page,signal:signal,providerContext:providerContext}){try{if(page>1)return[];const catalog=[],url1=`https://v3-cinemeta.strem.io/catalog/series/top/search=${encodeURI(searchQuery)}.json`,url2=`https://v3-cinemeta.strem.io/catalog/movie/top/search=${encodeURI(searchQuery)}.json`,data=(yield providerContext.axios.get(url1,{headers:providerContext.commonHeaders,signal:signal})).data;null==data||data.metas.map(result=>{const title=result.name||"",id=(null==result?void 0:result.imdb_id)||(null==result?void 0:result.id),image=null==result?void 0:result.poster,type=null==result?void 0:result.type;id&&catalog.push({title:title,link:`https://v3-cinemeta.strem.io/meta/${type}/${id}.json`,image:image})});const data2=(yield providerContext.axios.get(url2,{headers:providerContext.commonHeaders,signal:signal})).data;return null==data2||data2.metas.map(result=>{const title=(null==result?void 0:result.name)||"",id=(null==result?void 0:result.imdb_id)||(null==result?void 0:result.id),image=null==result?void 0:result.poster,type=null==result?void 0:result.type;id&&catalog.push({title:title,link:`https://v3-cinemeta.strem.io/meta/${type}/${id}.json`,image:image})}),catalog}catch(err){return[]}})};exports.getSearchPosts=getSearchPosts;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getSearchPosts = exports.getPosts = void 0;
const getPosts = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ filter, signal, providerContext, }) {
try {
const catalog = [];
const url = "https://cinemeta-catalogs.strem.io" + filter;
console.log("allGetPostUrl", url);
const res = yield providerContext.axios.get(url, {
headers: providerContext.commonHeaders,
signal,
});
const data = res.data;
data === null || data === void 0 ? void 0 : data.metas.map((result) => {
const title = result === null || result === void 0 ? void 0 : result.name;
const id = (result === null || result === void 0 ? void 0 : result.imdb_id) || (result === null || result === void 0 ? void 0 : result.id);
const type = result === null || result === void 0 ? void 0 : result.type;
const image = result === null || result === void 0 ? void 0 : result.poster;
if (id) {
catalog.push({
title: title,
link: `https://v3-cinemeta.strem.io/meta/${type}/${id}.json`,
image: image,
});
}
});
console.log("catalog", catalog.length);
return catalog;
}
catch (err) {
console.error("AutoEmbed error ", err);
return [];
}
});
};
exports.getPosts = getPosts;
const getSearchPosts = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ searchQuery, page,
// providerValue,
signal, providerContext, }) {
try {
if (page > 1) {
return [];
}
const catalog = [];
const url1 = `https://v3-cinemeta.strem.io/catalog/series/top/search=${encodeURI(searchQuery)}.json`;
const url2 = `https://v3-cinemeta.strem.io/catalog/movie/top/search=${encodeURI(searchQuery)}.json`;
const res = yield providerContext.axios.get(url1, {
headers: providerContext.commonHeaders,
signal,
});
const data = res.data;
data === null || data === void 0 ? void 0 : data.metas.map((result) => {
const title = result.name || "";
const id = (result === null || result === void 0 ? void 0 : result.imdb_id) || (result === null || result === void 0 ? void 0 : result.id);
const image = result === null || result === void 0 ? void 0 : result.poster;
const type = result === null || result === void 0 ? void 0 : result.type;
if (id) {
catalog.push({
title: title,
link: `https://v3-cinemeta.strem.io/meta/${type}/${id}.json`,
image: image,
});
}
});
const res2 = yield providerContext.axios.get(url2, {
headers: providerContext.commonHeaders,
signal,
});
const data2 = res2.data;
data2 === null || data2 === void 0 ? void 0 : data2.metas.map((result) => {
const title = (result === null || result === void 0 ? void 0 : result.name) || "";
const id = (result === null || result === void 0 ? void 0 : result.imdb_id) || (result === null || result === void 0 ? void 0 : result.id);
const image = result === null || result === void 0 ? void 0 : result.poster;
const type = result === null || result === void 0 ? void 0 : result.type;
if (id) {
catalog.push({
title: title,
link: `https://v3-cinemeta.strem.io/meta/${type}/${id}.json`,
image: image,
});
}
});
return catalog;
}
catch (err) {
console.error("AutoEmbed error ", err);
return [];
}
});
};
exports.getSearchPosts = getSearchPosts;

View File

@@ -1,234 +1 @@
"use strict"; "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,exports.getRiveStream=getRiveStream;const getStream=_a=>__awaiter(void 0,[_a],void 0,function*({link:id,type:type,providerContext:providerContext}){try{const streams=[],{imdbId:imdbId,season:season,episode:episode,title:title,tmdbId:tmdbId,year:year}=JSON.parse(id);return yield getRiveStream(tmdbId,episode,season,type,streams,providerContext),streams}catch(err){return[]}});function getRiveStream(tmdId,episode,season,type,Streams,providerContext){return __awaiter(this,void 0,void 0,function*(){const secret=generateSecretKey(Number(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","shadow","asiacloud","hindicast","anime","animez","guard","curve","hq","ninja","alpha","kaze","zenesis","genesis","zenith","ghost","halo","kinoecho","ee3","volt","putafilme","ophim","kage"].map(server=>__awaiter(this,void 0,void 0,function*(){var _a,_b,_c,_d,_e,_f;try{const res=yield providerContext.axios.get(url+server,{timeout:4e3,headers:providerContext.commonHeaders}),subtitles=[];(null===(_b=null===(_a=res.data)||void 0===_a?void 0:_a.data)||void 0===_b?void 0:_b.captions)&&(null===(_d=null===(_c=res.data)||void 0===_c?void 0:_c.data)||void 0===_d||_d.captions.forEach(sub=>{var _a,_b;subtitles.push({language:(null===(_a=null==sub?void 0:sub.label)||void 0===_a?void 0:_a.slice(0,2))||"Und",uri:null==sub?void 0:sub.file,title:(null==sub?void 0:sub.label)||"Undefined",type:(null===(_b=null==sub?void 0:sub.file)||void 0===_b?void 0:_b.endsWith(".vtt"))?"text/vtt":"application/x-subrip"})})),null===(_f=null===(_e=res.data)||void 0===_e?void 0:_e.data)||void 0===_f||_f.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,subtitles:subtitles})})}catch(e){}})))})}function generateSecretKey(id){const c=["Yhv40uKAZa","nn8YU4yBA","uNeH","ehK","jT0","n5G","99R","MvB1M","DQtPCh","GBRjk4k4I","CzIOoa95UT","BLE8s","GDZlc7","Fz45T","JW6lWn","DE3g4uw0i","18KxmYizv","8ji","JUDdNMnZ","oGpBippPgm","7De8Pg","Zv6","VHT9TVN","bYH6m","aK1","WcWH6jU","Q47YEMi4k","vRD3A","CGOsfJO","BLn8","RgK0drv7l","oPTfGCn3a","MkpMDkttW9","VNI1fPM","XNFi6","6cq","4LvTksXoEI","1rRa2KOZB0","zoOGRb8HT2","mhcXDtvz","NUmexFY2Ur","6BIMdvSZ","Tr0zU2vjRd","QPR","fhOqJR","R9VnFY","xkZ99D6S","umY7E","5Ds8qyDq","Cc6jy09y3","yvU3iR","Bg07zY","GccECglg","VYd","6vOiXqz","7xX","UdRrbEzF","fE6wc","BUd25Rb","lxq5Zum89o"];if(void 0===id)return"rive";try{let fragment,insertPos;const idStr=String(id),encodedHash=btoa(function(input){const str=String(input);let hash=3735928559^str.length;for(let i=0;i<str.length;i++){let char=str.charCodeAt(i);char^=131*(i+31)&255,hash=668265261*(hash=(hash<<7|hash>>>25)>>>0^char)>>>0}return hash^=hash>>>16,hash=2246822507*hash>>>0,hash^=hash>>>13,hash=3266489909*hash>>>0,(hash^=hash>>>16).toString(16).padStart(8,"0")}(function(input){input=String(input);let hash=0;for(let i=0;i<input.length;i++){const char=input.charCodeAt(i);hash=(char+(hash<<6)+(hash<<16)-hash^char<<i%5)>>>0}return hash^=hash>>>13,hash=1540483477*hash>>>0,(hash^=hash>>>15).toString(16).padStart(8,"0")}(idStr)));if(isNaN(Number(id))){const charSum=idStr.split("").reduce((sum,char)=>sum+char.charCodeAt(0),0);fragment=c[charSum%c.length]||btoa(idStr),insertPos=Math.floor(charSum%encodedHash.length/2)}else{const numId=Number(id);fragment=c[numId%c.length]||btoa(idStr),insertPos=Math.floor(numId%encodedHash.length/2)}return encodedHash.slice(0,insertPos)+fragment+encodedHash.slice(insertPos)}catch(error){return"topSecret"}}exports.getStream=getStream;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getStream = void 0;
exports.getRiveStream = getRiveStream;
const getStream = (_a) => __awaiter(void 0, [_a], void 0, function* ({ link: id, type, providerContext, }) {
try {
const streams = [];
const { imdbId, season, episode, title, tmdbId, year } = JSON.parse(id);
yield getRiveStream(tmdbId, episode, season, type, streams, providerContext);
return streams;
}
catch (err) {
console.error(err);
return [];
}
});
exports.getStream = getStream;
function getRiveStream(tmdId, episode, season, type, Streams, providerContext) {
return __awaiter(this, void 0, void 0, function* () {
const secret = generateSecretKey(Number(tmdId));
const servers = [
"flowcast",
"shadow",
"asiacloud",
"hindicast",
"anime",
"animez",
"guard",
"curve",
"hq",
"ninja",
"alpha",
"kaze",
"zenesis",
"genesis",
"zenith",
"ghost",
"halo",
"kinoecho",
"ee3",
"volt",
"putafilme",
"ophim",
"kage",
];
const baseUrl = yield providerContext.getBaseUrl("rive");
const cors = process.env.CORS_PRXY ? process.env.CORS_PRXY + "?url=" : "";
console.log("CORS: " + cors);
const route = type === "series"
? `/api/backendfetch?requestID=tvVideoProvider&id=${tmdId}&season=${season}&episode=${episode}&secretKey=${secret}&service=`
: `/api/backendfetch?requestID=movieVideoProvider&id=${tmdId}&secretKey=${secret}&service=`;
const url = cors
? cors + encodeURIComponent(baseUrl + route)
: baseUrl + route;
yield Promise.all(servers.map((server) => __awaiter(this, void 0, void 0, function* () {
var _a, _b, _c, _d, _e, _f;
console.log("Rive: " + url + server);
try {
const res = yield providerContext.axios.get(url + server, {
timeout: 4000,
headers: providerContext.commonHeaders,
});
const subtitles = [];
if ((_b = (_a = res.data) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.captions) {
(_d = (_c = res.data) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d.captions.forEach((sub) => {
var _a, _b;
subtitles.push({
language: ((_a = sub === null || sub === void 0 ? void 0 : sub.label) === null || _a === void 0 ? void 0 : _a.slice(0, 2)) || "Und",
uri: sub === null || sub === void 0 ? void 0 : sub.file,
title: (sub === null || sub === void 0 ? void 0 : sub.label) || "Undefined",
type: ((_b = sub === null || sub === void 0 ? void 0 : sub.file) === null || _b === void 0 ? void 0 : _b.endsWith(".vtt"))
? "text/vtt"
: "application/x-subrip",
});
});
}
(_f = (_e = res.data) === null || _e === void 0 ? void 0 : _e.data) === null || _f === void 0 ? void 0 : _f.sources.forEach((source) => {
Streams.push({
server: (source === null || source === void 0 ? void 0 : source.source) + "-" + (source === null || source === void 0 ? void 0 : source.quality),
link: source === null || source === void 0 ? void 0 : source.url,
type: (source === null || source === void 0 ? void 0 : source.format) === "hls" ? "m3u8" : "mp4",
quality: source === null || source === void 0 ? void 0 : source.quality,
subtitles: subtitles,
});
});
}
catch (e) {
console.log(e);
}
})));
});
}
function generateSecretKey(id) {
// Array of secret key fragments - updated array from the new implementation
const c = [
"Yhv40uKAZa",
"nn8YU4yBA",
"uNeH",
"ehK",
"jT0",
"n5G",
"99R",
"MvB1M",
"DQtPCh",
"GBRjk4k4I",
"CzIOoa95UT",
"BLE8s",
"GDZlc7",
"Fz45T",
"JW6lWn",
"DE3g4uw0i",
"18KxmYizv",
"8ji",
"JUDdNMnZ",
"oGpBippPgm",
"7De8Pg",
"Zv6",
"VHT9TVN",
"bYH6m",
"aK1",
"WcWH6jU",
"Q47YEMi4k",
"vRD3A",
"CGOsfJO",
"BLn8",
"RgK0drv7l",
"oPTfGCn3a",
"MkpMDkttW9",
"VNI1fPM",
"XNFi6",
"6cq",
"4LvTksXoEI",
"1rRa2KOZB0",
"zoOGRb8HT2",
"mhcXDtvz",
"NUmexFY2Ur",
"6BIMdvSZ",
"Tr0zU2vjRd",
"QPR",
"fhOqJR",
"R9VnFY",
"xkZ99D6S",
"umY7E",
"5Ds8qyDq",
"Cc6jy09y3",
"yvU3iR",
"Bg07zY",
"GccECglg",
"VYd",
"6vOiXqz",
"7xX",
"UdRrbEzF",
"fE6wc",
"BUd25Rb",
"lxq5Zum89o",
];
// Handle undefined input
if (id === undefined) {
return "rive";
}
try {
let fragment, insertPos;
// Convert input to string
const idStr = String(id);
// Updated string hash function to match the new implementation
/* eslint-disable no-bitwise */
const generateStringHash = function (input) {
input = String(input);
let hash = 0;
for (let i = 0; i < input.length; i++) {
const char = input.charCodeAt(i);
hash =
((char + (hash << 6) + (hash << 16) - hash) ^ (char << i % 5)) >>> 0;
}
hash ^= hash >>> 13;
hash = (1540483477 * hash) >>> 0;
return (hash ^= hash >>> 15).toString(16).padStart(8, "0");
};
// Updated MurmurHash-like function to match the new implementation
const applyMurmurHash = function (input) {
const str = String(input);
let hash = 3735928559 ^ str.length;
for (let i = 0; i < str.length; i++) {
let char = str.charCodeAt(i);
char ^= ((i + 31) * 131) & 255;
hash =
(668265261 *
(hash = (((hash << 7) | (hash >>> 25)) >>> 0) ^ char)) >>>
0;
}
hash ^= hash >>> 16;
hash = (2246822507 * hash) >>> 0;
hash ^= hash >>> 13;
hash = (3266489909 * hash) >>> 0;
return (hash ^= hash >>> 16).toString(16).padStart(8, "0");
};
/* eslint-enable no-bitwise */
// Generate the encoded hash using the new implementation
const encodedHash = btoa(applyMurmurHash(generateStringHash(idStr)));
// Different handling for non-numeric vs numeric inputs
if (isNaN(Number(id))) {
// For non-numeric inputs, sum the character codes
const charSum = idStr
.split("")
.reduce((sum, char) => sum + char.charCodeAt(0), 0);
// Select array element or fallback to base64 encoded input
fragment = c[charSum % c.length] || btoa(idStr);
// Calculate insertion position
insertPos = Math.floor((charSum % encodedHash.length) / 2);
}
else {
// For numeric inputs, use the number directly
const numId = Number(id);
fragment = c[numId % c.length] || btoa(idStr);
// Calculate insertion position
insertPos = Math.floor((numId % encodedHash.length) / 2);
}
// Construct the final key by inserting the selected value into the base64 string
return (encodedHash.slice(0, insertPos) + fragment + encodedHash.slice(insertPos));
}
catch (error) {
// Return fallback value if any errors occur
return "topSecret";
}
}

View File

@@ -1,22 +1 @@
"use strict"; "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.genres=exports.catalog=void 0,exports.catalog=[{title:"Trending",filter:"/genre/latest-trending-releases/"},{title:"Netflix",filter:"/network/netflix/"},{title:"Amazon Prime",filter:"/network/prime-video/"},{title:"Animation",filter:"/genre/anime/"}],exports.genres=[];
Object.defineProperty(exports, "__esModule", { value: true });
exports.genres = exports.catalog = void 0;
exports.catalog = [
{
title: "Trending",
filter: "/genre/latest-trending-releases/",
},
{
title: "Netflix",
filter: "/network/netflix/",
},
{
title: "Amazon Prime",
filter: "/network/prime-video/",
},
{
title: "Animation",
filter: "/genre/anime/",
},
];
exports.genres = [];

View File

@@ -1,77 +1 @@
"use strict"; "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;try{if(!url.includes("luxelinks")||url.includes("cinemalux")){const res=yield providerContext.axios.get(url,{headers:providerContext.commonHeaders}),encodedLink=null===(_b=res.data.match(/"link":"([^"]+)"/))||void 0===_b?void 0:_b[1];if(encodedLink)url=encodedLink?atob(encodedLink):url;else{const redirectUrlRes=yield fetch("https://ext.8man.me/api/cinemaluxe",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:url})}),redirectUrl=yield redirectUrlRes.json();url=(null==redirectUrl?void 0:redirectUrl.redirectUrl)||url}}const episodeLinks=[];if(url.includes("luxedrive")||url.includes("drive.linkstore"))return episodeLinks.push({title:"Movie",link:url}),episodeLinks;const html=(yield providerContext.axios.get(url,{headers:providerContext.commonHeaders})).data;let $=providerContext.cheerio.load(html);return $("a.maxbutton-4,a.maxbutton,.maxbutton-hubcloud,.ep-simple-button").map((i,element)=>{var _a;const title=null===(_a=$(element).text())||void 0===_a?void 0:_a.trim(),link=$(element).attr("href");title&&link&&!title.includes("Batch")&&!title.toLowerCase().includes("zip")&&episodeLinks.push({title:title.replace(/\(\d{4}\)/,"").replace("Download","Movie").replace("⚡","").trim(),link:link})}),episodeLinks}catch(err){return[]}})};exports.getEpisodes=getEpisodes;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getEpisodes = void 0;
const getEpisodes = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ url, providerContext, }) {
var _b;
try {
if (!url.includes("luxelinks") || url.includes("cinemalux")) {
const res = yield providerContext.axios.get(url, {
headers: providerContext.commonHeaders,
});
const data = res.data;
const encodedLink = (_b = data.match(/"link":"([^"]+)"/)) === null || _b === void 0 ? void 0 : _b[1];
if (encodedLink) {
url = encodedLink ? atob(encodedLink) : url;
}
else {
const redirectUrlRes = yield fetch("https://ext.8man.me/api/cinemaluxe", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({ url }),
});
const redirectUrl = yield redirectUrlRes.json();
url = (redirectUrl === null || redirectUrl === void 0 ? void 0 : redirectUrl.redirectUrl) || url;
}
}
const episodeLinks = [];
if (url.includes("luxedrive") || url.includes("drive.linkstore")) {
episodeLinks.push({
title: "Movie",
link: url,
});
return episodeLinks;
}
const res = yield providerContext.axios.get(url, {
headers: providerContext.commonHeaders,
});
const html = res.data;
let $ = providerContext.cheerio.load(html);
$("a.maxbutton-4,a.maxbutton,.maxbutton-hubcloud,.ep-simple-button").map((i, element) => {
var _a;
const title = (_a = $(element).text()) === null || _a === void 0 ? void 0 : _a.trim();
const link = $(element).attr("href");
if (title &&
link &&
!title.includes("Batch") &&
!title.toLowerCase().includes("zip")) {
episodeLinks.push({
title: title
.replace(/\(\d{4}\)/, "")
.replace("Download", "Movie")
.replace("⚡", "")
.trim(),
link,
});
}
});
return episodeLinks;
}
catch (err) {
console.error("cl episode links", err);
return [];
}
});
};
exports.getEpisodes = getEpisodes;

View File

@@ -1,106 +1 @@
"use strict"; "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}){try{const url=link,data=(yield providerContext.axios.get(url,{headers:providerContext.commonHeaders})).data,$=providerContext.cheerio.load(data),type=url.includes("tvshows")?"series":"movie",imdbId="",title=url.split("/")[4].replace(/-/g," "),image=$(".g-item").find("a").attr("href")||"",synopsis=$(".wp-content").text().trim(),tags=$(".sgeneros").children().map((i,element)=>$(element).text()).get().slice(3),rating=Number($("#repimdb").find("strong").text()).toFixed(1).toString(),links=[];return $(".custom-links").find(".ep-button-container").map((i,element)=>{var _a;const title=$(element).text().replace("⬇Download","").replace("⬇ Download","").trim(),link=$(element).find("a").attr("href");title&&link&&links.push({title:title,episodesLink:link,quality:(null===(_a=null==title?void 0:title.match(/\d+P\b/))||void 0===_a?void 0:_a[0].replace("P","p"))||""})}),0===links.length&&$(".ep-button-container:not(:has(a:contains('Click Here To Visit')))").map((i,element)=>{var _a;let title=$(element).find("a").text().replace("⬇Download","").replace("⬇ Download","").trim();title.includes("Download Now")&&(title=$(element).parent().find("h3").text().trim().replace("⬇Download","").replace("⬇ Download",""));const link=$(element).find("a").attr("href");title&&link&&links.push({title:title,episodesLink:link,quality:(null===(_a=null==title?void 0:title.match(/\d+P\b/))||void 0===_a?void 0:_a[0].replace("P","p"))||""})}),{title:title,tags:tags,rating:rating,synopsis:synopsis,image:image,imdbId:imdbId,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) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getMeta = void 0;
const getMeta = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ link, providerContext, }) {
try {
const url = link;
const res = yield providerContext.axios.get(url, {
headers: providerContext.commonHeaders,
});
const data = res.data;
const $ = providerContext.cheerio.load(data);
const type = url.includes("tvshows") ? "series" : "movie";
const imdbId = "";
const title = url.split("/")[4].replace(/-/g, " ");
const image = $(".g-item").find("a").attr("href") || "";
const synopsis = $(".wp-content").text().trim();
const tags = $(".sgeneros")
.children()
.map((i, element) => $(element).text())
.get()
.slice(3);
const rating = Number($("#repimdb").find("strong").text())
.toFixed(1)
.toString();
const links = [];
$(".custom-links")
.find(".ep-button-container")
.map((i, element) => {
var _a;
const title = $(element)
.text()
.replace("\u2b07Download", "")
.replace("\u2b07 Download", "")
.trim();
const link = $(element).find("a").attr("href");
if (title && link) {
links.push({
title,
episodesLink: link,
quality: ((_a = title === null || title === void 0 ? void 0 : title.match(/\d+P\b/)) === null || _a === void 0 ? void 0 : _a[0].replace("P", "p")) || "",
});
}
});
if (links.length === 0) {
$(".ep-button-container:not(:has(a:contains('Click Here To Visit')))").map((i, element) => {
var _a;
let title = $(element)
.find("a")
.text()
.replace("\u2b07Download", "")
.replace("\u2b07 Download", "")
.trim();
if (title.includes("Download Now")) {
title = $(element)
.parent()
.find("h3")
.text()
.trim()
.replace("\u2b07Download", "")
.replace("\u2b07 Download", "");
}
const link = $(element).find("a").attr("href");
if (title && link) {
links.push({
title,
episodesLink: link,
quality: ((_a = title === null || title === void 0 ? void 0 : title.match(/\d+P\b/)) === null || _a === void 0 ? void 0 : _a[0].replace("P", "p")) || "",
});
}
});
}
return {
title,
tags,
rating,
synopsis,
image,
imdbId,
type,
linkList: links,
};
}
catch (err) {
console.error(err);
return {
title: "",
synopsis: "",
image: "",
imdbId: "",
type: "movie",
linkList: [],
};
}
});
};
exports.getMeta = getMeta;

View File

@@ -1,70 +1 @@
"use strict"; "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}){return posts({url:`${(yield providerContext.getBaseUrl("cinemaLuxe"))+filter}page/${page}/`,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}){return posts({url:`${yield providerContext.getBaseUrl("cinemaLuxe")}/page/${page}/?s=${searchQuery}`,signal:signal,providerContext:providerContext})})};function posts(_a){return __awaiter(this,arguments,void 0,function*({url:url,signal:signal,providerContext:providerContext}){try{const res=yield fetch(url,{headers:providerContext.commonHeaders,signal:signal}),data=yield res.text(),$=providerContext.cheerio.load(data),catalog=[];return $(".item.tvshows,.item.movies").map((i,element)=>{const title=$(element).find(".poster").find("img").attr("alt"),link=$(element).find(".poster").find("a").attr("href"),image=$(element).find(".poster").find("img").attr("data-src");title&&link&&image&&catalog.push({title:title,link:link,image:image})}),$(".result-item").map((i,element)=>{const title=$(element).find(".thumbnail").find("img").attr("alt"),link=$(element).find(".thumbnail").find("a").attr("href"),image=$(element).find(".thumbnail").find("img").attr("data-src");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) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getSearchPosts = exports.getPosts = void 0;
const getPosts = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ filter, page, signal, providerContext, }) {
const baseUrl = yield providerContext.getBaseUrl("cinemaLuxe");
const url = `${baseUrl + filter}page/${page}/`;
return posts({ url, signal, providerContext });
});
};
exports.getPosts = getPosts;
const getSearchPosts = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ searchQuery, page, signal, providerContext, }) {
const baseUrl = yield providerContext.getBaseUrl("cinemaLuxe");
const url = `${baseUrl}/page/${page}/?s=${searchQuery}`;
return posts({ url, signal, providerContext });
});
};
exports.getSearchPosts = getSearchPosts;
function posts(_a) {
return __awaiter(this, arguments, void 0, function* ({ url, signal, providerContext, }) {
try {
const res = yield fetch(url, {
headers: providerContext.commonHeaders,
signal,
});
const data = yield res.text();
const $ = providerContext.cheerio.load(data);
const catalog = [];
$(".item.tvshows,.item.movies").map((i, element) => {
const title = $(element).find(".poster").find("img").attr("alt");
const link = $(element).find(".poster").find("a").attr("href");
const image = $(element).find(".poster").find("img").attr("data-src");
if (title && link && image) {
catalog.push({
title: title,
link: link,
image: image,
});
}
});
$(".result-item").map((i, element) => {
const title = $(element).find(".thumbnail").find("img").attr("alt");
const link = $(element).find(".thumbnail").find("a").attr("href");
const image = $(element).find(".thumbnail").find("img").attr("data-src");
if (title && link && image) {
catalog.push({
title: title,
link: link,
image: image,
});
}
});
return catalog;
}
catch (err) {
console.error("cinemaluxe error ", err);
return [];
}
});
}

View File

@@ -1,78 +1 @@
"use strict"; "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=_a=>__awaiter(void 0,[_a],void 0,function*({link:link,signal:signal,providerContext:providerContext}){var _b;try{let newLink=link;if(link.includes("linkstore")){const res=yield fetch(link,{signal:signal,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","accept-language":"en-US,en;q=0.9,en-IN;q=0.8","cache-control":"no-cache",pragma:"no-cache",priority:"u=0, i","sec-ch-ua":'"Microsoft Edge";v="137", "Chromium";v="137", "Not/A)Brand";v="24"',"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","upgrade-insecure-requests":"1",cookie:"PHPSESSID=9o57cff841dqtv8djtn1rp1712; ext_name=ojplmecpdpgccookcobabopnaifgidhf"}}),refreshMetaMatch=(yield res.text()).match(/<meta\s+http-equiv="refresh"\s+content="[^"]*url=([^"]+)"/i);refreshMetaMatch&&refreshMetaMatch[1]&&(link=refreshMetaMatch[1])}if(link.includes("luxedrive")){const res=yield providerContext.axios.get(link,{signal:signal}),$=providerContext.cheerio.load(res.data),hubcloudLink=$("a.btn.hubcloud").attr("href");if(hubcloudLink)newLink=hubcloudLink;else{const gdFlixLink=$("a.btn.gdflix").attr("href");gdFlixLink&&(newLink=gdFlixLink)}}if(newLink.includes("flix")){return yield providerContext.extractors.gdFlixExtracter(newLink,signal)}const res2=yield providerContext.axios.get(newLink,{signal:signal}),hcLink=(null===(_b=res2.data.match(/location\.replace\('([^']+)'/))||void 0===_b?void 0:_b[1])||newLink;return yield providerContext.extractors.hubcloudExtracter(hcLink.includes("https://hubcloud")?hcLink:newLink,signal)}catch(err){return[]}});exports.getStream=getStream;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getStream = void 0;
const getStream = (_a) => __awaiter(void 0, [_a], void 0, function* ({ link, signal, providerContext, }) {
var _b;
try {
let newLink = link;
console.log("getStream 1", link);
if (link.includes("linkstore")) {
console.log("linkstore detected");
const res = yield fetch(link, {
signal,
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",
"accept-language": "en-US,en;q=0.9,en-IN;q=0.8",
"cache-control": "no-cache",
pragma: "no-cache",
priority: "u=0, i",
"sec-ch-ua": '"Microsoft Edge";v="137", "Chromium";v="137", "Not/A)Brand";v="24"',
"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",
"upgrade-insecure-requests": "1",
cookie: "PHPSESSID=9o57cff841dqtv8djtn1rp1712; ext_name=ojplmecpdpgccookcobabopnaifgidhf",
},
});
const html = yield res.text();
const refreshMetaMatch = html.match(/<meta\s+http-equiv="refresh"\s+content="[^"]*url=([^"]+)"/i);
if (refreshMetaMatch && refreshMetaMatch[1]) {
link = refreshMetaMatch[1];
}
}
else {
console.log("linkstore not detected");
}
console.log("getStream 2", link);
if (link.includes("luxedrive")) {
const res = yield providerContext.axios.get(link, { signal });
const $ = providerContext.cheerio.load(res.data);
const hubcloudLink = $("a.btn.hubcloud").attr("href");
if (hubcloudLink) {
newLink = hubcloudLink;
}
else {
const gdFlixLink = $("a.btn.gdflix").attr("href");
if (gdFlixLink) {
newLink = gdFlixLink;
}
}
}
if (newLink.includes("flix")) {
const sreams = yield providerContext.extractors.gdFlixExtracter(newLink, signal);
return sreams;
}
const res2 = yield providerContext.axios.get(newLink, { signal });
const data2 = res2.data;
const hcLink = ((_b = data2.match(/location\.replace\('([^']+)'/)) === null || _b === void 0 ? void 0 : _b[1]) || newLink;
const hubCloudLinks = yield providerContext.extractors.hubcloudExtracter(hcLink.includes("https://hubcloud") ? hcLink : newLink, signal);
return hubCloudLinks;
}
catch (err) {
console.error(err);
return [];
}
});
exports.getStream = getStream;

View File

@@ -1,14 +1 @@
"use strict"; "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=[];
Object.defineProperty(exports, "__esModule", { value: true });
exports.genres = exports.catalog = void 0;
exports.catalog = [
{
title: "Series",
filter: "/rest-api//v130/tvseries",
},
{
title: "Movies",
filter: "/rest-api//v130/movies",
},
];
exports.genres = [];

93
dist/dooflix/meta.js vendored
View File

@@ -1,92 +1 @@
"use strict"; "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) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
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",
};
const getMeta = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ link, providerContext, }) {
var _b, _c, _d, _e;
try {
const { axios } = providerContext;
const res = yield axios.get(link, { headers });
const resData = res.data;
const jsonStart = resData === null || resData === void 0 ? void 0 : resData.indexOf("{");
const jsonEnd = (resData === null || resData === void 0 ? void 0 : resData.lastIndexOf("}")) + 1;
const data = ((_b = JSON === null || JSON === void 0 ? void 0 : JSON.parse(resData === null || resData === void 0 ? void 0 : resData.substring(jsonStart, jsonEnd))) === null || _b === void 0 ? void 0 : _b.title)
? JSON === null || JSON === void 0 ? void 0 : JSON.parse(resData === null || resData === void 0 ? void 0 : resData.substring(jsonStart, jsonEnd))
: resData;
const title = (data === null || data === void 0 ? void 0 : data.title) || "";
const synopsis = (data === null || data === void 0 ? void 0 : data.description) || "";
const image = (data === null || data === void 0 ? void 0 : data.poster_url) || "";
const cast = (data === null || data === void 0 ? void 0 : data.cast) || [];
const rating = (data === null || data === void 0 ? void 0 : data.imdb_rating) || "";
const type = Number(data === null || data === void 0 ? void 0 : data.is_tvseries) ? "series" : "movie";
const tags = ((_c = data === null || data === void 0 ? void 0 : data.genre) === null || _c === void 0 ? void 0 : _c.map((genre) => genre === null || genre === void 0 ? void 0 : genre.name)) || [];
const links = [];
if (type === "series") {
(_d = data === null || data === void 0 ? void 0 : data.season) === null || _d === void 0 ? void 0 : _d.map((season) => {
var _a;
const title = (season === null || season === void 0 ? void 0 : season.seasons_name) || "";
const directLinks = ((_a = season === null || season === void 0 ? void 0 : season.episodes) === null || _a === void 0 ? void 0 : _a.map((episode) => ({
title: episode === null || episode === void 0 ? void 0 : episode.episodes_name,
link: episode === null || episode === void 0 ? void 0 : episode.file_url,
}))) || [];
links.push({
title: title,
directLinks: directLinks,
});
});
}
else {
(_e = data === null || data === void 0 ? void 0 : data.videos) === null || _e === void 0 ? void 0 : _e.map((video) => {
links.push({
title: title + " " + (video === null || video === void 0 ? void 0 : video.label),
directLinks: [
{
title: "Play",
link: video === null || video === void 0 ? void 0 : video.file_url,
},
],
});
});
}
return {
image: (image === null || image === void 0 ? void 0 : image.includes("https")) ? image : image === null || image === void 0 ? void 0 : image.replace("http", "https"),
synopsis: synopsis,
title: title,
rating: rating,
imdbId: "",
cast: cast,
tags: tags,
type: type,
linkList: links,
};
}
catch (err) {
console.error(err);
return {
title: "",
synopsis: "",
image: "",
imdbId: "",
type: "movie",
linkList: [],
};
}
});
};
exports.getMeta = getMeta;

155
dist/dooflix/posts.js vendored
View File

@@ -1,154 +1 @@
"use strict"; "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) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
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",
};
const getPosts = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ filter, page, signal, providerContext, }) {
try {
const { axios, getBaseUrl } = providerContext;
const baseUrl = yield getBaseUrl("dooflix");
const catalog = [];
const url = `${baseUrl + filter + `?page=${page}`}`;
const res = yield axios.get(url, { headers, signal });
const resData = res.data;
if (!resData || typeof resData !== "string") {
console.warn("Unexpected response format from dooflix API");
return [];
}
let data;
try {
const jsonStart = resData.indexOf("[");
const jsonEnd = resData.lastIndexOf("]") + 1;
if (jsonStart === -1 || jsonEnd <= jsonStart) {
// If we can't find valid JSON array markers, try parsing the entire response
data = JSON.parse(resData);
}
else {
const jsonSubstring = resData.substring(jsonStart, jsonEnd);
const parsedArray = JSON.parse(jsonSubstring);
data = parsedArray.length > 0 ? parsedArray : resData;
}
}
catch (parseError) {
console.error("Error parsing dooflix response:", parseError);
return [];
}
if (!Array.isArray(data)) {
console.warn("Unexpected data format from dooflix API");
return [];
}
data.forEach((result) => {
const id = result === null || result === void 0 ? void 0 : result.videos_id;
if (!id)
return;
const type = !(result === null || result === void 0 ? void 0 : result.is_tvseries) ? "tvseries" : "movie";
const link = `${baseUrl}/rest-api//v130/single_details?type=${type}&id=${id}`;
const thumbnailUrl = result === null || result === void 0 ? void 0 : result.thumbnail_url;
const image = (thumbnailUrl === null || thumbnailUrl === void 0 ? void 0 : thumbnailUrl.includes("https"))
? thumbnailUrl
: thumbnailUrl === null || thumbnailUrl === void 0 ? void 0 : thumbnailUrl.replace("http", "https");
catalog.push({
title: (result === null || result === void 0 ? void 0 : result.title) || "",
link,
image,
});
});
return catalog;
}
catch (err) {
console.error("dooflix error:", err);
return [];
}
});
};
exports.getPosts = getPosts;
const getSearchPosts = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ searchQuery, page, providerContext, signal, }) {
var _b, _c;
try {
if (page > 1) {
return [];
}
const { axios, getBaseUrl } = providerContext;
const catalog = [];
const baseUrl = yield getBaseUrl("dooflix");
const 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`;
const res = yield axios.get(url, { headers, signal });
const resData = res.data;
if (!resData || typeof resData !== "string") {
console.warn("Unexpected search response format from dooflix API");
return [];
}
let data;
try {
const jsonStart = resData.indexOf("{");
const jsonEnd = resData.lastIndexOf("}") + 1;
if (jsonStart === -1 || jsonEnd <= jsonStart) {
data = resData;
}
else {
const jsonSubstring = resData.substring(jsonStart, jsonEnd);
const parsedData = JSON.parse(jsonSubstring);
data = (parsedData === null || parsedData === void 0 ? void 0 : parsedData.movie) ? parsedData : resData;
}
}
catch (parseError) {
console.error("Error parsing dooflix search response:", parseError);
return [];
}
// Process movies
(_b = data === null || data === void 0 ? void 0 : data.movie) === null || _b === void 0 ? void 0 : _b.forEach((result) => {
const id = result === null || result === void 0 ? void 0 : result.videos_id;
if (!id)
return;
const link = `${baseUrl}/rest-api//v130/single_details?type=movie&id=${id}`;
const thumbnailUrl = result === null || result === void 0 ? void 0 : result.thumbnail_url;
const image = (thumbnailUrl === null || thumbnailUrl === void 0 ? void 0 : thumbnailUrl.includes("https"))
? thumbnailUrl
: thumbnailUrl === null || thumbnailUrl === void 0 ? void 0 : thumbnailUrl.replace("http", "https");
catalog.push({
title: (result === null || result === void 0 ? void 0 : result.title) || "",
link,
image,
});
});
// Process TV series
(_c = data === null || data === void 0 ? void 0 : data.tvseries) === null || _c === void 0 ? void 0 : _c.forEach((result) => {
const id = result === null || result === void 0 ? void 0 : result.videos_id;
if (!id)
return;
const link = `${baseUrl}/rest-api//v130/single_details?type=tvseries&id=${id}`;
const thumbnailUrl = result === null || result === void 0 ? void 0 : result.thumbnail_url;
const image = (thumbnailUrl === null || thumbnailUrl === void 0 ? void 0 : thumbnailUrl.includes("https"))
? thumbnailUrl
: thumbnailUrl === null || thumbnailUrl === void 0 ? void 0 : thumbnailUrl.replace("http", "https");
catalog.push({
title: (result === null || result === void 0 ? void 0 : result.title) || "",
link,
image,
});
});
return catalog;
}
catch (error) {
console.error("dooflix search error:", error);
return [];
}
});
};
exports.getSearchPosts = getSearchPosts;

View File

@@ -1,51 +1 @@
"use strict"; "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) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getStream = void 0;
const getStream = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ link, }) {
try {
const streams = [];
const 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",
};
const response = yield fetch(link, {
redirect: "manual",
headers: headers,
});
if (response.status >= 300 && response.status < 400) {
const redirectLink = response.headers.get("Location");
if (redirectLink) {
link = redirectLink;
}
}
if (response.url) {
link = response.url;
}
streams.push({
server: "Dooflix",
link: link,
headers: headers,
type: "m3u8",
});
console.log("doo streams", streams);
return streams;
}
catch (err) {
console.error(err);
return [];
}
});
};
exports.getStream = getStream;

64
dist/drive/catalog.js vendored
View File

@@ -1,63 +1 @@
"use strict"; "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.genres=exports.catalog=void 0,exports.catalog=[{title:"Latest",filter:""},{title:"Anime",filter:"category/anime/"},{title:"Netflix",filter:"category/netflix/"},{title:"4K",filter:"category/2160p-4k/"}],exports.genres=[{title:"Action",filter:"/category/action"},{title:"Crime",filter:"/category/crime"},{title:"Comedy",filter:"/category/comedy"},{title:"Drama",filter:"/category/drama"},{title:"Horror",filter:"/category/horror"},{title:"Family",filter:"/category/family"},{title:"Sci-Fi",filter:"/category/sifi"},{title:"Thriller",filter:"/category/triller"},{title:"Romance",filter:"/category/romance"},{title:"Fight",filter:"/category/fight"}];
Object.defineProperty(exports, "__esModule", { value: true });
exports.genres = exports.catalog = void 0;
exports.catalog = [
{
title: "Latest",
filter: "",
},
{
title: "Anime",
filter: "category/anime/",
},
{
title: "Netflix",
filter: "category/netflix/",
},
{
title: "4K",
filter: "category/2160p-4k/",
},
];
exports.genres = [
{
title: "Action",
filter: "/category/action",
},
{
title: "Crime",
filter: "/category/crime",
},
{
title: "Comedy",
filter: "/category/comedy",
},
{
title: "Drama",
filter: "/category/drama",
},
{
title: "Horror",
filter: "/category/horror",
},
{
title: "Family",
filter: "/category/family",
},
{
title: "Sci-Fi",
filter: "/category/sifi",
},
{
title: "Thriller",
filter: "/category/triller",
},
{
title: "Romance",
filter: "/category/romance",
},
{
title: "Fight",
filter: "/category/fight",
},
];

View File

@@ -1,45 +1 @@
"use strict"; "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}){try{const{axios:axios,cheerio:cheerio}=providerContext,html=(yield axios.get(url)).data;let $=cheerio.load(html);const episodeLinks=[];return $('a:contains("HubCloud")').map((i,element)=>{const title=$(element).parent().prev().text(),link=$(element).attr("href");link&&(title.includes("Ep")||title.includes("Download"))&&episodeLinks.push({title:title.includes("Download")?"Play":title,link:link})}),episodeLinks}catch(err){return[{title:"Server 1",link:url}]}})};exports.getEpisodes=getEpisodes;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getEpisodes = void 0;
const getEpisodes = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ url, providerContext, }) {
try {
const { axios, cheerio } = providerContext;
const res = yield axios.get(url);
const html = res.data;
let $ = cheerio.load(html);
const episodeLinks = [];
$('a:contains("HubCloud")').map((i, element) => {
const title = $(element).parent().prev().text();
const link = $(element).attr("href");
if (link && (title.includes("Ep") || title.includes("Download"))) {
episodeLinks.push({
title: title.includes("Download") ? "Play" : title,
link,
});
}
});
// console.log(episodeLinks);
return episodeLinks;
}
catch (err) {
console.error(err);
return [
{
title: "Server 1",
link: url,
},
];
}
});
};
exports.getEpisodes = getEpisodes;

86
dist/drive/meta.js vendored
View File

@@ -1,85 +1 @@
"use strict"; "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;try{const{axios:axios,cheerio:cheerio}=providerContext,url=link,data=(yield axios.get(url)).data,$=cheerio.load(data),type=$(".left-wrapper").text().toLocaleLowerCase().includes("movie name")?"movie":"series",imdbId=(null===(_b=$('a:contains("IMDb")').attr("href"))||void 0===_b?void 0:_b.split("/")[4])||"",title=$(".left-wrapper").find('strong:contains("Name")').next().text()||$(".left-wrapper").find('strong:contains("Name"),h5:contains("Name")').find("span:first").text(),synopsis=$(".left-wrapper").find('h2:contains("Storyline"),h3:contains("Storyline"),h5:contains("Storyline"),h4:contains("Storyline"),h4:contains("STORYLINE")').next().text()||$(".ipc-html-content-inner-div").text()||"",image=$("img.entered.lazyloaded,img.entered,img.litespeed-loaded").attr("src")||$("img.aligncenter").attr("src")||"",links=[];return $('a:contains("1080")a:not(:contains("Zip")),a:contains("720")a:not(:contains("Zip")),a:contains("480")a:not(:contains("Zip")),a:contains("2160")a:not(:contains("Zip")),a:contains("4k")a:not(:contains("Zip"))').map((i,element)=>{var _a;const title=$(element).parent("h5").prev().text(),episodesLink=$(element).attr("href"),quality=(null===(_a=title.match(/\b(480p|720p|1080p|2160p)\b/i))||void 0===_a?void 0:_a[0])||"";episodesLink&&title&&links.push({title:title,episodesLink:"series"===type?episodesLink:"",directLinks:"movie"===type?[{title:"Movie",link:episodesLink,type:"movie"}]:[],quality:quality})}),{title:title,synopsis:synopsis,image:image,imdbId:imdbId,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) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getMeta = void 0;
const getMeta = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ link, providerContext, }) {
var _b;
try {
const { axios, cheerio } = providerContext;
const url = link;
const res = yield axios.get(url);
const data = res.data;
const $ = cheerio.load(data);
const type = $(".left-wrapper")
.text()
.toLocaleLowerCase()
.includes("movie name")
? "movie"
: "series";
const imdbId = ((_b = $('a:contains("IMDb")').attr("href")) === null || _b === void 0 ? void 0 : _b.split("/")[4]) || "";
const title = $(".left-wrapper").find('strong:contains("Name")').next().text() ||
$(".left-wrapper")
.find('strong:contains("Name"),h5:contains("Name")')
.find("span:first")
.text();
const synopsis = $(".left-wrapper")
.find('h2:contains("Storyline"),h3:contains("Storyline"),h5:contains("Storyline"),h4:contains("Storyline"),h4:contains("STORYLINE")')
.next()
.text() ||
$(".ipc-html-content-inner-div").text() ||
"";
const image = $("img.entered.lazyloaded,img.entered,img.litespeed-loaded").attr("src") ||
$("img.aligncenter").attr("src") ||
"";
// Links
const links = [];
$('a:contains("1080")a:not(:contains("Zip")),a:contains("720")a:not(:contains("Zip")),a:contains("480")a:not(:contains("Zip")),a:contains("2160")a:not(:contains("Zip")),a:contains("4k")a:not(:contains("Zip"))').map((i, element) => {
var _a;
const title = $(element).parent("h5").prev().text();
const episodesLink = $(element).attr("href");
const quality = ((_a = title.match(/\b(480p|720p|1080p|2160p)\b/i)) === null || _a === void 0 ? void 0 : _a[0]) || "";
if (episodesLink && title) {
links.push({
title,
episodesLink: type === "series" ? episodesLink : "",
directLinks: type === "movie"
? [{ title: "Movie", link: episodesLink, type: "movie" }]
: [],
quality: quality,
});
}
});
// console.log('drive meta', title, synopsis, image, imdbId, type, links);
console.log("drive meta", links, type);
return {
title,
synopsis,
image,
imdbId,
type,
linkList: links,
};
}
catch (err) {
console.error(err);
return {
title: "",
synopsis: "",
image: "",
imdbId: "",
type: "movie",
linkList: [],
};
}
});
};
exports.getMeta = getMeta;

61
dist/drive/posts.js vendored
View File

@@ -1,60 +1 @@
"use strict"; "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}){const{getBaseUrl:getBaseUrl}=providerContext;return posts({url:`${(yield getBaseUrl("drive"))+filter}/page/${page}/`,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("drive")}page/${page}/?s=${searchQuery}`,signal:signal,providerContext:providerContext})})};function posts(_a){return __awaiter(this,arguments,void 0,function*({url:url,signal:signal,providerContext:providerContext}){try{const{cheerio:cheerio}=providerContext,res=yield fetch(url,{signal:signal}),data=yield res.text(),$=cheerio.load(data),catalog=[];return $(".recent-movies").children().map((i,element)=>{const title=$(element).find("figure").find("img").attr("alt"),link=$(element).find("a").attr("href"),image=$(element).find("figure").find("img").attr("src");title&&link&&image&&catalog.push({title:title.replace("Download","").trim(),link:link,image:image})}),catalog}catch(err){return[]}})}exports.getSearchPosts=getSearchPosts;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getSearchPosts = exports.getPosts = void 0;
const getPosts = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ filter, page, signal, providerContext, }) {
const { getBaseUrl } = providerContext;
const baseUrl = yield getBaseUrl("drive");
const url = `${baseUrl + filter}/page/${page}/`;
return posts({ url, signal, providerContext });
});
};
exports.getPosts = getPosts;
const getSearchPosts = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ searchQuery, page, signal, providerContext, }) {
const { getBaseUrl } = providerContext;
const baseUrl = yield getBaseUrl("drive");
const url = `${baseUrl}page/${page}/?s=${searchQuery}`;
return posts({ url, signal, providerContext });
});
};
exports.getSearchPosts = getSearchPosts;
function posts(_a) {
return __awaiter(this, arguments, void 0, function* ({ url, signal, providerContext, }) {
try {
const { cheerio } = providerContext;
const res = yield fetch(url, { signal });
const data = yield res.text();
const $ = cheerio.load(data);
const catalog = [];
$(".recent-movies")
.children()
.map((i, element) => {
const title = $(element).find("figure").find("img").attr("alt");
const link = $(element).find("a").attr("href");
const image = $(element).find("figure").find("img").attr("src");
if (title && link && image) {
catalog.push({
title: title.replace("Download", "").trim(),
link: link,
image: image,
});
}
});
return catalog;
}
catch (err) {
console.error("drive error ", err);
return [];
}
});
}

46
dist/drive/stream.js vendored
View File

@@ -1,45 +1 @@
"use strict"; "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,signal:signal,providerContext:providerContext}){var _b,_c;const headers=providerContext.commonHeaders;try{if("movie"===type){const html=(yield providerContext.axios.get(url,{headers:headers})).data,$=providerContext.cheerio.load(html);url=$('a:contains("HubCloud")').attr("href")||url}const res=yield providerContext.axios.get(url,{headers:headers});let redirectUrl=null===(_b=res.data.match(/<meta\s+http-equiv="refresh"\s+content="[^"]*?;\s*url=([^"]+)"\s*\/?>/i))||void 0===_b?void 0:_b[1];if(url.includes("/archives/")&&(redirectUrl=null===(_c=res.data.match(/<a\s+[^>]*href="(https:\/\/hubcloud\.[^\/]+\/[^"]+)"/i))||void 0===_c?void 0:_c[1]),!redirectUrl)return yield providerContext.extractors.hubcloudExtracter(url,signal);const data=(yield providerContext.axios.get(redirectUrl,{headers:headers})).data,hubcloudLink=providerContext.cheerio.load(data)(".fa-file-download").parent().attr("href");return yield providerContext.extractors.hubcloudExtracter((null==hubcloudLink?void 0:hubcloudLink.includes("https://hubcloud"))?hubcloudLink:redirectUrl,signal)}catch(err){return[]}})};exports.getStream=getStream;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getStream = void 0;
const getStream = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ link: url, type, signal, providerContext, }) {
var _b, _c;
const headers = providerContext.commonHeaders;
try {
if (type === "movie") {
const res = yield providerContext.axios.get(url, { headers });
const html = res.data;
const $ = providerContext.cheerio.load(html);
const link = $('a:contains("HubCloud")').attr("href");
url = link || url;
}
const res = yield providerContext.axios.get(url, { headers });
let redirectUrl = (_b = res.data.match(/<meta\s+http-equiv="refresh"\s+content="[^"]*?;\s*url=([^"]+)"\s*\/?>/i)) === null || _b === void 0 ? void 0 : _b[1];
if (url.includes("/archives/")) {
redirectUrl = (_c = res.data.match(/<a\s+[^>]*href="(https:\/\/hubcloud\.[^\/]+\/[^"]+)"/i)) === null || _c === void 0 ? void 0 : _c[1];
}
if (!redirectUrl) {
return yield providerContext.extractors.hubcloudExtracter(url, signal);
}
const res2 = yield providerContext.axios.get(redirectUrl, { headers });
const data = res2.data;
const $ = providerContext.cheerio.load(data);
const hubcloudLink = $(".fa-file-download").parent().attr("href");
return yield providerContext.extractors.hubcloudExtracter((hubcloudLink === null || hubcloudLink === void 0 ? void 0 : hubcloudLink.includes("https://hubcloud")) ? hubcloudLink : redirectUrl, signal);
}
catch (err) {
console.error("Movies Drive err", err);
return [];
}
});
};
exports.getStream = getStream;

View File

@@ -1,18 +1 @@
"use strict"; "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.genres=exports.catalog=void 0,exports.catalog=[{title:"Home",filter:""},{title:"Web Series",filter:"/page-cat/42/Web-Series.html"},{title:"Hollywood",filter:"/page-cat/9/New-Hollywood-Hindi-Dubbed-Movie-2016-2025.html"}],exports.genres=[];
Object.defineProperty(exports, "__esModule", { value: true });
exports.genres = exports.catalog = void 0;
exports.catalog = [
{
title: "Home",
filter: "",
},
{
title: "Web Series",
filter: "/page-cat/42/Web-Series.html",
},
{
title: "Hollywood",
filter: "/page-cat/9/New-Hollywood-Hindi-Dubbed-Movie-2016-2025.html",
},
];
exports.genres = [];

View File

@@ -1,43 +1 @@
"use strict"; "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}){try{const headers=providerContext.commonHeaders,{axios:axios,cheerio:cheerio}=providerContext,data=(yield axios.get(url,{headers:headers})).data,$=cheerio.load(data),episodeLinks=[];return $(".dlink.dl").map((i,element)=>{var _a,_b;const title=null===(_b=null===(_a=$(element).find("a").text())||void 0===_a?void 0:_a.replace("Download",""))||void 0===_b?void 0:_b.trim(),link=$(element).find("a").attr("href");title&&link&&episodeLinks.push({title:title,link:link})}),episodeLinks}catch(err){return[]}})};exports.getEpisodes=getEpisodes;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getEpisodes = void 0;
const getEpisodes = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ url, providerContext, }) {
try {
const headers = providerContext.commonHeaders;
const { axios, cheerio } = providerContext;
const res = yield axios.get(url, { headers });
const data = res.data;
const $ = cheerio.load(data);
const episodeLinks = [];
$(".dlink.dl").map((i, element) => {
var _a, _b;
const title = (_b = (_a = $(element)
.find("a")
.text()) === null || _a === void 0 ? void 0 : _a.replace("Download", "")) === null || _b === void 0 ? void 0 : _b.trim();
const link = $(element).find("a").attr("href");
if (title && link) {
episodeLinks.push({
title,
link,
});
}
});
return episodeLinks;
}
catch (err) {
console.error("cl episode links", err);
return [];
}
});
};
exports.getEpisodes = getEpisodes;

64
dist/filmyfly/meta.js vendored
View File

@@ -1,63 +1 @@
"use strict"; "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}){try{const{axios:axios,cheerio:cheerio,commonHeaders:headers}=providerContext,url=link,data=(yield axios.get(url,{headers:headers})).data,$=cheerio.load(data),type=url.includes("tvshows")?"series":"movie",imdbId="",title=$('.fname:contains("Name")').find(".colora").text().trim(),image=$(".ss").find("img").attr("src")||"",synopsis=$('.fname:contains("Description")').find(".colorg").text().trim(),tags=$('.fname:contains("Genre")').find(".colorb").text().split(",")||[],rating="",links=[],downloadLink=$(".dlbtn").find("a").attr("href");return downloadLink&&links.push({title:title,episodesLink:downloadLink}),{title:title,tags:tags,rating:rating,synopsis:synopsis,image:image,imdbId:imdbId,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) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getMeta = void 0;
const getMeta = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ link, providerContext, }) {
try {
const { axios, cheerio, commonHeaders: headers } = providerContext;
const url = link;
const res = yield axios.get(url, { headers });
const data = res.data;
const $ = cheerio.load(data);
const type = url.includes("tvshows") ? "series" : "movie";
const imdbId = "";
const title = $('.fname:contains("Name")').find(".colora").text().trim();
const image = $(".ss").find("img").attr("src") || "";
const synopsis = $('.fname:contains("Description")')
.find(".colorg")
.text()
.trim();
const tags = $('.fname:contains("Genre")').find(".colorb").text().split(",") || [];
const rating = "";
const links = [];
const downloadLink = $(".dlbtn").find("a").attr("href");
if (downloadLink) {
links.push({
title: title,
episodesLink: downloadLink,
});
}
return {
title,
tags,
rating,
synopsis,
image,
imdbId,
type,
linkList: links,
};
}
catch (err) {
console.error(err);
return {
title: "",
synopsis: "",
image: "",
imdbId: "",
type: "movie",
linkList: [],
};
}
});
};
exports.getMeta = getMeta;

View File

@@ -1,61 +1 @@
"use strict"; "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}){const{getBaseUrl:getBaseUrl}=providerContext,baseUrl=yield getBaseUrl("filmyfly");return posts({url:`${baseUrl+filter}/${page}`,signal:signal,baseUrl:baseUrl,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,baseUrl=yield getBaseUrl("filmyfly");return page>1?[]:posts({url:`${baseUrl}/site-1.html?to-search=${searchQuery}`,signal:signal,baseUrl:baseUrl,providerContext:providerContext})})};function posts(_a){return __awaiter(this,arguments,void 0,function*({url:url,signal:signal,baseUrl:baseUrl,providerContext:providerContext}){try{const{cheerio:cheerio,commonHeaders:headers}=providerContext,res=yield fetch(url,{headers:headers,signal:signal}),data=yield res.text(),$=cheerio.load(data),catalog=[];return $(".A2,.A10,.fl").map((i,element)=>{const title=$(element).find("a").eq(1).text()||$(element).find("b").text(),link=$(element).find("a").attr("href"),image=$(element).find("img").attr("src");title&&link&&image&&catalog.push({title:title,link:baseUrl+link,image:image})}),catalog}catch(err){return[]}})}exports.getSearchPosts=getSearchPosts;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getSearchPosts = exports.getPosts = void 0;
const getPosts = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ filter, page, signal, providerContext, }) {
const { getBaseUrl } = providerContext;
const baseUrl = yield getBaseUrl("filmyfly");
const url = `${baseUrl + filter}/${page}`;
return posts({ url, signal, baseUrl, providerContext });
});
};
exports.getPosts = getPosts;
const getSearchPosts = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ searchQuery, page, signal, providerContext, }) {
const { getBaseUrl } = providerContext;
const baseUrl = yield getBaseUrl("filmyfly");
const url = `${baseUrl}/site-1.html?to-search=${searchQuery}`;
if (page > 1) {
return [];
}
return posts({ url, signal, baseUrl, providerContext });
});
};
exports.getSearchPosts = getSearchPosts;
function posts(_a) {
return __awaiter(this, arguments, void 0, function* ({ url, signal, baseUrl, providerContext, }) {
try {
const { cheerio, commonHeaders: headers } = providerContext;
const res = yield fetch(url, { headers, signal });
const data = yield res.text();
const $ = cheerio.load(data);
const catalog = [];
$(".A2,.A10,.fl").map((i, element) => {
const title = $(element).find("a").eq(1).text() || $(element).find("b").text();
const link = $(element).find("a").attr("href");
const image = $(element).find("img").attr("src");
if (title && link && image) {
catalog.push({
title: title,
link: baseUrl + link,
image: image,
});
}
});
return catalog;
}
catch (err) {
console.error("ff error ", err);
return [];
}
});
}

View File

@@ -1,51 +1 @@
"use strict"; "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,signal:signal,providerContext:providerContext}){try{const data=(yield providerContext.axios.get(link,{signal:signal})).data,$=providerContext.cheerio.load(data),streams=[],promises=$(".button2,.button1,.button3,.button4,.button").toArray().map(element=>__awaiter(this,void 0,void 0,function*(){const title=$(element).text();let link=$(element).attr("href");if(title.includes("GDFLIX")&&link){const gdLinks=yield providerContext.extractors.gdFlixExtracter(link,signal);streams.push(...gdLinks)}const alreadyAdded=streams.find(s=>s.link===link);!title||!link||title.includes("Watch")||title.includes("Login")||title.includes("GoFile")||alreadyAdded||streams.push({server:title,link:link,type:"mkv"})}));return yield Promise.all(promises),streams}catch(err){return[]}})};exports.getStream=getStream;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getStream = void 0;
const getStream = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ link, signal, providerContext, }) {
try {
const res = yield providerContext.axios.get(link, { signal });
const data = res.data;
const $ = providerContext.cheerio.load(data);
const streams = [];
const elements = $(".button2,.button1,.button3,.button4,.button").toArray();
const promises = elements.map((element) => __awaiter(this, void 0, void 0, function* () {
const title = $(element).text();
let link = $(element).attr("href");
if (title.includes("GDFLIX") && link) {
const gdLinks = yield providerContext.extractors.gdFlixExtracter(link, signal);
streams.push(...gdLinks);
}
const alreadyAdded = streams.find((s) => s.link === link);
if (title &&
link &&
!title.includes("Watch") &&
!title.includes("Login") &&
!title.includes("GoFile") &&
!alreadyAdded) {
streams.push({
server: title,
link: link,
type: "mkv",
});
}
}));
yield Promise.all(promises);
return streams;
}
catch (err) {
console.error(err);
return [];
}
});
};
exports.getStream = getStream;

View File

@@ -1,18 +1 @@
"use strict"; "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=[];
Object.defineProperty(exports, "__esModule", { value: true });
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 = [];

65
dist/flixhq/meta.js vendored
View File

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

61
dist/flixhq/posts.js vendored
View File

@@ -1,60 +1 @@
"use strict"; "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) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getSearchPosts = exports.getPosts = void 0;
const getPosts = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ filter, signal, providerContext, }) {
const { getBaseUrl } = providerContext;
const urlRes = yield getBaseUrl("consumet");
const baseUrl = urlRes + "/movies/flixhq";
const url = `${baseUrl + filter}`;
return posts({ url, signal, providerContext });
});
};
exports.getPosts = getPosts;
const getSearchPosts = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ searchQuery, page, signal, providerContext, }) {
const { getBaseUrl } = providerContext;
const urlRes = yield getBaseUrl("consumet");
const baseUrl = urlRes + "/movies/flixhq";
const url = `${baseUrl}/${searchQuery}?page=${page}`;
return posts({ url, signal, providerContext });
});
};
exports.getSearchPosts = getSearchPosts;
function posts(_a) {
return __awaiter(this, arguments, void 0, function* ({ url, signal, providerContext, }) {
var _b;
try {
const { axios } = providerContext;
const res = yield axios.get(url, { signal });
const data = ((_b = res.data) === null || _b === void 0 ? void 0 : _b.results) || res.data;
const catalog = [];
data === null || data === void 0 ? void 0 : data.map((element) => {
const title = element.title;
const link = element.id;
const image = element.image;
if (title && link && image) {
catalog.push({
title: title,
link: link,
image: image,
});
}
});
return catalog;
}
catch (err) {
console.error("flixhq error ", err);
return [];
}
});
}

69
dist/flixhq/stream.js vendored
View File

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

View File

@@ -1,211 +1 @@
"use strict"; "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(o,m,k,k2){void 0===k2&&(k2=k);var desc=Object.getOwnPropertyDescriptor(m,k);desc&&!("get"in desc?!m.__esModule:desc.writable||desc.configurable)||(desc={enumerable:!0,get:function(){return m[k]}}),Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){void 0===k2&&(k2=k),o[k2]=m[k]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}:function(o,v){o.default=v}),__importStar=this&&this.__importStar||function(){var ownKeys=function(o){return ownKeys=Object.getOwnPropertyNames||function(o){var ar=[];for(var k in o)Object.prototype.hasOwnProperty.call(o,k)&&(ar[ar.length]=k);return ar},ownKeys(o)};return function(mod){if(mod&&mod.__esModule)return mod;var result={};if(null!=mod)for(var k=ownKeys(mod),i=0;i<k.length;i++)"default"!==k[i]&&__createBinding(result,mod,k[i]);return __setModuleDefault(result,mod),result}}(),__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())})},__importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.gdFlixExtracter=gdFlixExtracter;const axios_1=__importDefault(require("axios")),cheerio=__importStar(require("cheerio")),headers_1=require("./headers");function gdFlixExtracter(link,signal){return __awaiter(this,void 0,void 0,function*(){var _a,_b,_c,_d,_f,_g,_h;try{const streamLinks=[],data=(yield(0,axios_1.default)(`${link}`,{headers:headers_1.headers,signal:signal})).data;let $drive=cheerio.load(data);if(null===(_a=$drive("body").attr("onload"))||void 0===_a?void 0:_a.includes("location.replace")){const newLink=null===(_d=null===(_c=null===(_b=$drive("body").attr("onload"))||void 0===_b?void 0:_b.split("location.replace('"))||void 0===_c?void 0:_c[1].split("'"))||void 0===_d?void 0:_d[0];if(newLink){const newRes=yield axios_1.default.get(newLink,{headers:headers_1.headers,signal:signal});$drive=cheerio.load(newRes.data)}}try{const baseUrl=link.split("/").slice(0,3).join("/"),resumeDrive=$drive(".btn-secondary").attr("href")||"";if(resumeDrive.includes("indexbot")){const resumeBotRes=yield axios_1.default.get(resumeDrive,{headers:headers_1.headers}),resumeBotToken=resumeBotRes.data.match(/formData\.append\('token', '([a-f0-9]+)'\)/)[1],resumeBotBody=new FormData;resumeBotBody.append("token",resumeBotToken);const resumeBotPath=resumeBotRes.data.match(/fetch\('\/download\?id=([a-zA-Z0-9\/+]+)'/)[1],resumeBotBaseUrl=resumeDrive.split("/download")[0],resumeBotDownload=yield fetch(resumeBotBaseUrl+"/download?id="+resumeBotPath,{method:"POST",body:resumeBotBody,headers:{Referer:resumeDrive,Cookie:"PHPSESSID=7e9658ce7c805dab5bbcea9046f7f308"}}),resumeBotDownloadData=yield resumeBotDownload.json();streamLinks.push({server:"ResumeBot",link:resumeBotDownloadData.url,type:"mkv"})}else{const url=baseUrl+resumeDrive,resumeDriveHtml=(yield axios_1.default.get(url,{headers:headers_1.headers})).data,resumeLink=cheerio.load(resumeDriveHtml)(".btn-success").attr("href");resumeLink&&streamLinks.push({server:"ResumeCloud",link:resumeLink,type:"mkv"})}}catch(err){}try{const seed=$drive(".btn-danger").attr("href")||"";if(seed.includes("?url=")){const instantToken=seed.split("=")[1],InstantFromData=new FormData;InstantFromData.append("keys",instantToken);const videoSeedUrl=seed.split("/").slice(0,3).join("/")+"/api",instantLinkRes=yield fetch(videoSeedUrl,{method:"POST",body:InstantFromData,headers:{"x-token":videoSeedUrl}}),instantLinkData=yield instantLinkRes.json();if(!1===instantLinkData.error){const instantLink=instantLinkData.url;streamLinks.push({server:"Gdrive-Instant",link:instantLink,type:"mkv"})}}else{const newLink=(null===(_h=null===(_g=null===(_f=(yield axios_1.default.head(seed,{headers:headers_1.headers,signal:signal})).request)||void 0===_f?void 0:_f.responseURL)||void 0===_g?void 0:_g.split("?url="))||void 0===_h?void 0:_h[1])||seed;streamLinks.push({server:"G-Drive",link:newLink,type:"mkv"})}}catch(err){}return streamLinks}catch(error){return[]}})}
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.gdFlixExtracter = gdFlixExtracter;
const axios_1 = __importDefault(require("axios"));
const cheerio = __importStar(require("cheerio"));
const headers_1 = require("./headers");
function gdFlixExtracter(link, signal) {
return __awaiter(this, void 0, void 0, function* () {
var _a, _b, _c, _d, _e, _f, _g, _h;
try {
const streamLinks = [];
const res = yield (0, axios_1.default)(`${link}`, { headers: headers_1.headers, signal });
console.log('gdFlixExtracter', link);
const data = res.data;
let $drive = cheerio.load(data);
// handle if redirected to another link
if ((_a = $drive('body').attr('onload')) === null || _a === void 0 ? void 0 : _a.includes('location.replace')) {
const newLink = (_d = (_c = (_b = $drive('body')
.attr('onload')) === null || _b === void 0 ? void 0 : _b.split("location.replace('")) === null || _c === void 0 ? void 0 : _c[1].split("'")) === null || _d === void 0 ? void 0 : _d[0];
console.log('newLink', newLink);
if (newLink) {
const newRes = yield axios_1.default.get(newLink, { headers: headers_1.headers, signal });
$drive = cheerio.load(newRes.data);
}
}
// try {
// const resumeBot = $drive('.fab.fa-artstation').prev().attr('href') || '';
// console.log('resumeBot', resumeBot);
// const resumeBotRes = await axios.get(resumeBot, {headers});
// const resumeBotToken = resumeBotRes.data.match(
// /formData\.append\('token', '([a-f0-9]+)'\)/,
// )[1];
// const resumeBotBody = new FormData();
// resumeBotBody.append('token', resumeBotToken);
// const resumeBotPath = resumeBotRes.data.match(
// /fetch\('\/download\?id=([a-zA-Z0-9\/+]+)'/,
// )[1];
// const resumeBotBaseUrl = resumeBot.split('/download')[0];
// // console.log(
// // 'resumeBotPath',
// // resumeBotBaseUrl + '/download?id=' + resumeBotPath,
// // );
// // console.log('resumeBotBody', resumeBotToken);
// const resumeBotDownload = await fetch(
// resumeBotBaseUrl + '/download?id=' + resumeBotPath,
// {
// method: 'POST',
// body: resumeBotBody,
// headers: {
// Referer: resumeBot,
// Cookie: 'PHPSESSID=7e9658ce7c805dab5bbcea9046f7f308',
// },
// },
// );
// const resumeBotDownloadData = await resumeBotDownload.json();
// console.log('resumeBotDownloadData', resumeBotDownloadData.url);
// streamLinks.push({
// server: 'ResumeBot',
// link: resumeBotDownloadData.url,
// type: 'mkv',
// });
// } catch (err) {
// console.log('ResumeBot link not found', err);
// }
/// resume cloud
try {
const baseUrl = link.split('/').slice(0, 3).join('/');
const resumeDrive = $drive('.btn-secondary').attr('href') || '';
console.log('resumeDrive', resumeDrive);
if (resumeDrive.includes('indexbot')) {
const resumeBotRes = yield axios_1.default.get(resumeDrive, { headers: headers_1.headers });
const resumeBotToken = resumeBotRes.data.match(/formData\.append\('token', '([a-f0-9]+)'\)/)[1];
const resumeBotBody = new FormData();
resumeBotBody.append('token', resumeBotToken);
const resumeBotPath = resumeBotRes.data.match(/fetch\('\/download\?id=([a-zA-Z0-9\/+]+)'/)[1];
const resumeBotBaseUrl = resumeDrive.split('/download')[0];
// console.log(
// 'resumeBotPath',
// resumeBotBaseUrl + '/download?id=' + resumeBotPath,
// );
// console.log('resumeBotBody', resumeBotToken);
const resumeBotDownload = yield fetch(resumeBotBaseUrl + '/download?id=' + resumeBotPath, {
method: 'POST',
body: resumeBotBody,
headers: {
Referer: resumeDrive,
Cookie: 'PHPSESSID=7e9658ce7c805dab5bbcea9046f7f308',
},
});
const resumeBotDownloadData = yield resumeBotDownload.json();
console.log('resumeBotDownloadData', resumeBotDownloadData.url);
streamLinks.push({
server: 'ResumeBot',
link: resumeBotDownloadData.url,
type: 'mkv',
});
}
else {
const url = baseUrl + resumeDrive;
const resumeDriveRes = yield axios_1.default.get(url, { headers: headers_1.headers });
const resumeDriveHtml = resumeDriveRes.data;
const $resumeDrive = cheerio.load(resumeDriveHtml);
const resumeLink = $resumeDrive('.btn-success').attr('href');
// console.log('resumeLink', resumeLink);
if (resumeLink) {
streamLinks.push({
server: 'ResumeCloud',
link: resumeLink,
type: 'mkv',
});
}
}
}
catch (err) {
console.log('Resume link not found');
}
//instant link
try {
const seed = $drive('.btn-danger').attr('href') || '';
console.log('seed', seed);
if (!seed.includes('?url=')) {
const newLinkRes = yield axios_1.default.head(seed, { headers: headers_1.headers, signal });
console.log('newLinkRes', (_e = newLinkRes.request) === null || _e === void 0 ? void 0 : _e.responseURL);
const newLink = ((_h = (_g = (_f = newLinkRes.request) === null || _f === void 0 ? void 0 : _f.responseURL) === null || _g === void 0 ? void 0 : _g.split('?url=')) === null || _h === void 0 ? void 0 : _h[1]) || seed;
streamLinks.push({ server: 'G-Drive', link: newLink, type: 'mkv' });
}
else {
const instantToken = seed.split('=')[1];
// console.log('InstantToken', instantToken);
const InstantFromData = new FormData();
InstantFromData.append('keys', instantToken);
const videoSeedUrl = seed.split('/').slice(0, 3).join('/') + '/api';
// console.log('videoSeedUrl', videoSeedUrl);
const instantLinkRes = yield fetch(videoSeedUrl, {
method: 'POST',
body: InstantFromData,
headers: {
'x-token': videoSeedUrl,
},
});
const instantLinkData = yield instantLinkRes.json();
// console.log('instantLinkData', instantLinkData);
if (instantLinkData.error === false) {
const instantLink = instantLinkData.url;
streamLinks.push({
server: 'Gdrive-Instant',
link: instantLink,
type: 'mkv',
});
}
else {
console.log('Instant link not found', instantLinkData);
}
}
}
catch (err) {
console.log('Instant link not found', err);
}
return streamLinks;
}
catch (error) {
console.log('gdflix error: ', error);
return [];
}
});
}

39
dist/getBaseUrl.js vendored
View File

@@ -1,38 +1 @@
"use strict"; "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.getBaseUrl=void 0;const expireTime=36e5,getBaseUrl=providerValue=>__awaiter(void 0,void 0,void 0,function*(){try{let baseUrl="";const baseUrlRes=yield fetch("https://himanshu8443.github.io/providers/modflix.json");return baseUrl=(yield baseUrlRes.json())[providerValue].url,baseUrl}catch(error){return""}});exports.getBaseUrl=getBaseUrl;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getBaseUrl = void 0;
// 1 hour
const expireTime = 60 * 60 * 1000;
const getBaseUrl = (providerValue) => __awaiter(void 0, void 0, void 0, function* () {
try {
let baseUrl = "";
const cacheKey = "CacheBaseUrl" + providerValue;
const timeKey = "baseUrlTime" + providerValue;
// const cachedUrl = cacheStorageService.getString(cacheKey);
// const cachedTime = cacheStorageService.getObject<number>(timeKey);
// if (cachedUrl && cachedTime && Date.now() - cachedTime < expireTime) {
// baseUrl = cachedUrl;
// } else {
const baseUrlRes = yield fetch("https://himanshu8443.github.io/providers/modflix.json");
const baseUrlData = yield baseUrlRes.json();
baseUrl = baseUrlData[providerValue].url;
// cacheStorageService.setString(cacheKey, baseUrl);
// cacheStorageService.setObject(timeKey, Date.now());
// }
return baseUrl;
}
catch (error) {
console.error(`Error fetching baseUrl: ${providerValue}`, error);
return "";
}
});
exports.getBaseUrl = getBaseUrl;

View File

@@ -1,48 +1 @@
"use strict"; "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())})},__importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.gofileExtracter=gofileExtracter;const axios_1=__importDefault(require("axios"));function gofileExtracter(id){return __awaiter(this,void 0,void 0,function*(){try{yield axios_1.default.get("https://gofile.io/d/"+id);const token=(yield axios_1.default.post("https://api.gofile.io/accounts")).data.data.token,wt=(yield axios_1.default.get("https://gofile.io/dist/js/global.js")).data.match(/appdata\.wt\s*=\s*["']([^"']+)["']/)[1],res=yield axios_1.default.get(`https://api.gofile.io/contents/${id}?wt=${wt}`,{headers:{Authorization:`Bearer ${token}`}}),oId=Object.keys(res.data.data.children)[0];return{link:res.data.data.children[oId].link,token:token}}catch(e){return{link:"",token:""}}})}
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.gofileExtracter = gofileExtracter;
const axios_1 = __importDefault(require("axios"));
function gofileExtracter(id) {
return __awaiter(this, void 0, void 0, function* () {
try {
const gofileRes = yield axios_1.default.get('https://gofile.io/d/' + id);
const genAccountres = yield axios_1.default.post('https://api.gofile.io/accounts');
const token = genAccountres.data.data.token;
console.log('gofile token', token);
const wtRes = yield axios_1.default.get('https://gofile.io/dist/js/global.js');
const wt = wtRes.data.match(/appdata\.wt\s*=\s*["']([^"']+)["']/)[1];
console.log('gofile wt', wt);
const res = yield axios_1.default.get(`https://api.gofile.io/contents/${id}?wt=${wt}`, {
headers: {
Authorization: `Bearer ${token}`,
},
});
const oId = Object.keys(res.data.data.children)[0];
console.log('gofile extracter', res.data.data.children[oId].link);
const link = res.data.data.children[oId].link;
return {
link,
token,
};
}
catch (e) {
console.log('gofile extracter err', e);
return {
link: '',
token: '',
};
}
});
}

View File

@@ -1,14 +1 @@
"use strict"; "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.genres=exports.catalog=void 0,exports.catalog=[{title:"Popular Movies",filter:"/top/catalog/movie/top.json"},{title:"Featured Movies",filter:"/imdbRating/catalog/movie/imdbRating.json"}],exports.genres=[];
Object.defineProperty(exports, "__esModule", { value: true });
exports.genres = exports.catalog = void 0;
exports.catalog = [
{
title: "Popular Movies",
filter: "/top/catalog/movie/top.json",
},
{
title: "Featured Movies",
filter: "/imdbRating/catalog/movie/imdbRating.json",
},
];
exports.genres = [];

100
dist/guardahd/meta.js vendored
View File

@@ -1,99 +1 @@
"use strict"; "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,_e,_f,_g,_h,_j,_k,_l,_m;const axios=providerContext.axios;try{const data=(yield axios.get(link)).data,meta={title:"",synopsis:"",image:"",imdbId:(null===(_b=null==data?void 0:data.meta)||void 0===_b?void 0:_b.imdb_id)||"",type:(null===(_c=null==data?void 0:data.meta)||void 0===_c?void 0:_c.type)||"movie"},links=[];let directLinks=[],season=new Map;if("series"===meta.type){null===(_e=null===(_d=null==data?void 0:data.meta)||void 0===_d?void 0:_d.videos)||void 0===_e||_e.map(video=>{var _a,_b,_c,_d,_e,_f,_g,_h;(null==video?void 0:video.season)<=0||(season.has(null==video?void 0:video.season)||season.set(null==video?void 0:video.season,[]),season.get(null==video?void 0:video.season).push({title:"Episode "+(null==video?void 0:video.episode),type:"series",link:JSON.stringify({title:null===(_a=null==data?void 0:data.meta)||void 0===_a?void 0:_a.name,imdbId:null===(_b=null==data?void 0:data.meta)||void 0===_b?void 0:_b.imdb_id,season:null===(_c=null==video?void 0:video.id)||void 0===_c?void 0:_c.split(":")[1],episode:null===(_d=null==video?void 0:video.id)||void 0===_d?void 0:_d.split(":")[2],type:null===(_e=null==data?void 0:data.meta)||void 0===_e?void 0:_e.type,tmdbId:(null===(_g=null===(_f=null==data?void 0:data.meta)||void 0===_f?void 0:_f.moviedb_id)||void 0===_g?void 0:_g.toString())||"",year:null===(_h=null==data?void 0:data.meta)||void 0===_h?void 0:_h.year})}))});const keys=Array.from(season.keys());keys.sort(),keys.map(key=>{directLinks=season.get(key),links.push({title:`Season ${key}`,directLinks:directLinks})})}else links.push({title:null===(_f=null==data?void 0:data.meta)||void 0===_f?void 0:_f.name,directLinks:[{title:"Movie",type:"movie",link:JSON.stringify({title:null===(_g=null==data?void 0:data.meta)||void 0===_g?void 0:_g.name,imdbId:null===(_h=null==data?void 0:data.meta)||void 0===_h?void 0:_h.imdb_id,season:"",episode:"",type:null===(_j=null==data?void 0:data.meta)||void 0===_j?void 0:_j.type,tmdbId:(null===(_l=null===(_k=null==data?void 0:data.meta)||void 0===_k?void 0:_k.moviedb_id)||void 0===_l?void 0:_l.toString())||"",year:null===(_m=null==data?void 0:data.meta)||void 0===_m?void 0:_m.year})}]});return Object.assign(Object.assign({},meta),{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) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getMeta = void 0;
const getMeta = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ link, providerContext, }) {
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
const axios = providerContext.axios;
try {
console.log("all", link);
const res = yield axios.get(link);
const data = res.data;
const meta = {
title: "",
synopsis: "",
image: "",
imdbId: ((_b = data === null || data === void 0 ? void 0 : data.meta) === null || _b === void 0 ? void 0 : _b.imdb_id) || "",
type: ((_c = data === null || data === void 0 ? void 0 : data.meta) === null || _c === void 0 ? void 0 : _c.type) || "movie",
};
const links = [];
let directLinks = [];
let season = new Map();
if (meta.type === "series") {
(_e = (_d = data === null || data === void 0 ? void 0 : data.meta) === null || _d === void 0 ? void 0 : _d.videos) === null || _e === void 0 ? void 0 : _e.map((video) => {
var _a, _b, _c, _d, _e, _f, _g, _h;
if ((video === null || video === void 0 ? void 0 : video.season) <= 0)
return;
if (!season.has(video === null || video === void 0 ? void 0 : video.season)) {
season.set(video === null || video === void 0 ? void 0 : video.season, []);
}
season.get(video === null || video === void 0 ? void 0 : video.season).push({
title: "Episode " + (video === null || video === void 0 ? void 0 : video.episode),
type: "series",
link: JSON.stringify({
title: (_a = data === null || data === void 0 ? void 0 : data.meta) === null || _a === void 0 ? void 0 : _a.name,
imdbId: (_b = data === null || data === void 0 ? void 0 : data.meta) === null || _b === void 0 ? void 0 : _b.imdb_id,
season: (_c = video === null || video === void 0 ? void 0 : video.id) === null || _c === void 0 ? void 0 : _c.split(":")[1],
episode: (_d = video === null || video === void 0 ? void 0 : video.id) === null || _d === void 0 ? void 0 : _d.split(":")[2],
type: (_e = data === null || data === void 0 ? void 0 : data.meta) === null || _e === void 0 ? void 0 : _e.type,
tmdbId: ((_g = (_f = data === null || data === void 0 ? void 0 : data.meta) === null || _f === void 0 ? void 0 : _f.moviedb_id) === null || _g === void 0 ? void 0 : _g.toString()) || "",
year: (_h = data === null || data === void 0 ? void 0 : data.meta) === null || _h === void 0 ? void 0 : _h.year,
}),
});
});
const keys = Array.from(season.keys());
keys.sort();
keys.map((key) => {
directLinks = season.get(key);
links.push({
title: `Season ${key}`,
directLinks: directLinks,
});
});
}
else {
console.log("all meta Mv🔥🔥", meta);
links.push({
title: (_f = data === null || data === void 0 ? void 0 : data.meta) === null || _f === void 0 ? void 0 : _f.name,
directLinks: [
{
title: "Movie",
type: "movie",
link: JSON.stringify({
title: (_g = data === null || data === void 0 ? void 0 : data.meta) === null || _g === void 0 ? void 0 : _g.name,
imdbId: (_h = data === null || data === void 0 ? void 0 : data.meta) === null || _h === void 0 ? void 0 : _h.imdb_id,
season: "",
episode: "",
type: (_j = data === null || data === void 0 ? void 0 : data.meta) === null || _j === void 0 ? void 0 : _j.type,
tmdbId: ((_l = (_k = data === null || data === void 0 ? void 0 : data.meta) === null || _k === void 0 ? void 0 : _k.moviedb_id) === null || _l === void 0 ? void 0 : _l.toString()) || "",
year: (_m = data === null || data === void 0 ? void 0 : data.meta) === null || _m === void 0 ? void 0 : _m.year,
}),
},
],
});
}
return Object.assign(Object.assign({}, meta), { linkList: links });
}
catch (err) {
console.error(err);
return {
title: "",
synopsis: "",
image: "",
imdbId: "",
type: "movie",
linkList: [],
};
}
});
};
exports.getMeta = getMeta;

View File

@@ -1,79 +1 @@
"use strict"; "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}){try{const catalog=[],url="https://cinemeta-catalogs.strem.io"+filter,data=(yield providerContext.axios.get(url,{headers:providerContext.commonHeaders,signal:signal})).data;return null==data||data.metas.map(result=>{const title=null==result?void 0:result.name,id=(null==result?void 0:result.imdb_id)||(null==result?void 0:result.id),type=null==result?void 0:result.type,image=null==result?void 0:result.poster;id&&catalog.push({title:title,link:`https://v3-cinemeta.strem.io/meta/${type}/${id}.json`,image:image})}),catalog}catch(err){return[]}})};exports.getPosts=getPosts;const getSearchPosts=function(_a){return __awaiter(this,arguments,void 0,function*({searchQuery:searchQuery,page:page,signal:signal,providerContext:providerContext}){try{const{axios:axios,commonHeaders:headers}=providerContext;if(page>1)return[];const catalog=[],url2=`https://v3-cinemeta.strem.io/catalog/movie/top/search=${encodeURI(searchQuery)}.json`,data2=(yield axios.get(url2,{headers:headers,signal:signal})).data;return null==data2||data2.metas.map(result=>{const title=(null==result?void 0:result.name)||"",id=(null==result?void 0:result.imdb_id)||(null==result?void 0:result.id),image=null==result?void 0:result.poster,type=null==result?void 0:result.type;id&&catalog.push({title:title,link:`https://v3-cinemeta.strem.io/meta/${type}/${id}.json`,image:image})}),catalog}catch(err){return[]}})};exports.getSearchPosts=getSearchPosts;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getSearchPosts = exports.getPosts = void 0;
const getPosts = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ filter, signal, providerContext, }) {
try {
const catalog = [];
const url = "https://cinemeta-catalogs.strem.io" + filter;
console.log("allGetPostUrl", url);
const res = yield providerContext.axios.get(url, {
headers: providerContext.commonHeaders,
signal,
});
const data = res.data;
data === null || data === void 0 ? void 0 : data.metas.map((result) => {
const title = result === null || result === void 0 ? void 0 : result.name;
const id = (result === null || result === void 0 ? void 0 : result.imdb_id) || (result === null || result === void 0 ? void 0 : result.id);
const type = result === null || result === void 0 ? void 0 : result.type;
const image = result === null || result === void 0 ? void 0 : result.poster;
if (id) {
catalog.push({
title: title,
link: `https://v3-cinemeta.strem.io/meta/${type}/${id}.json`,
image: image,
});
}
});
console.log("catalog", catalog.length);
return catalog;
}
catch (err) {
console.error("AutoEmbed error ", err);
return [];
}
});
};
exports.getPosts = getPosts;
const getSearchPosts = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ searchQuery, page, signal, providerContext, }) {
try {
const { axios, commonHeaders: headers } = providerContext;
if (page > 1) {
return [];
}
const catalog = [];
const url2 = `https://v3-cinemeta.strem.io/catalog/movie/top/search=${encodeURI(searchQuery)}.json`;
const res2 = yield axios.get(url2, { headers, signal });
const data2 = res2.data;
data2 === null || data2 === void 0 ? void 0 : data2.metas.map((result) => {
const title = (result === null || result === void 0 ? void 0 : result.name) || "";
const id = (result === null || result === void 0 ? void 0 : result.imdb_id) || (result === null || result === void 0 ? void 0 : result.id);
const image = result === null || result === void 0 ? void 0 : result.poster;
const type = result === null || result === void 0 ? void 0 : result.type;
if (id) {
catalog.push({
title: title,
link: `https://v3-cinemeta.strem.io/meta/${type}/${id}.json`,
image: image,
});
}
});
return catalog;
}
catch (err) {
console.error("AutoEmbed error ", err);
return [];
}
});
};
exports.getSearchPosts = getSearchPosts;

View File

@@ -1,117 +1 @@
"use strict"; "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,type:type,providerContext:providerContext}){try{const{axios:axios,cheerio:cheerio,extractors:extractors}=providerContext,{superVideoExtractor:superVideoExtractor}=extractors;function ExtractGuardahd(_a){return __awaiter(this,arguments,void 0,function*({imdb:imdb}){try{const url="https://guardahd.stream"+("/set-movie-a/"+imdb),html=(yield axios.get(url,{timeout:4e3})).data,superVideoUrl=cheerio.load(html)('li:contains("supervideo")').attr("data-link");if(!superVideoUrl)return null;const controller2=new AbortController,signal2=controller2.signal;setTimeout(()=>controller2.abort(),4e3);const res2=yield fetch("https:"+superVideoUrl,{signal:signal2}),data=yield res2.text();return yield superVideoExtractor(data)}catch(err){}})}function GetMostraguardaStream(_a){return __awaiter(this,arguments,void 0,function*({imdb:imdb,type:type,season:season,episode:episode}){try{const url="https://mostraguarda.stream"+("tv"===type?`/serie/${imdb}/${season}/${episode}`:`/movie/${imdb}`),html=(yield axios(url,{timeout:4e3})).data,superVideoUrl=cheerio.load(html)('li:contains("supervideo")').attr("data-link");if(!superVideoUrl)return null;const controller2=new AbortController,signal2=controller2.signal;setTimeout(()=>controller2.abort(),4e3);const res2=yield fetch("https:"+superVideoUrl,{signal:signal2}),data=yield res2.text();return yield superVideoExtractor(data)}catch(err){}})}const streams=[],{imdbId:imdbId,season:season,episode:episode}=JSON.parse(id),mostraguardaStream=yield GetMostraguardaStream({imdb:imdbId,type:type,season:season,episode:episode});mostraguardaStream&&streams.push({server:"Supervideo 1",link:mostraguardaStream,type:"m3u8"});const guardahdStream=yield ExtractGuardahd({imdb:imdbId,type:type,season:season,episode:episode});return guardahdStream&&streams.push({server:"Supervideo 2",link:guardahdStream,type:"m3u8"}),streams}catch(err){return[]}})};exports.getStream=getStream;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getStream = void 0;
const getStream = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ link: id, type, providerContext, }) {
try {
const { axios, cheerio, extractors } = providerContext;
const { superVideoExtractor } = extractors;
function ExtractGuardahd(_a) {
return __awaiter(this, arguments, void 0, function* ({ imdb, // type, // season,
}) {
try {
const baseUrl = "https://guardahd.stream";
const path = "/set-movie-a/" + imdb;
const url = baseUrl + path;
console.log("url:", url);
const res = yield axios.get(url, { timeout: 4000 });
const html = res.data;
const $ = cheerio.load(html);
const superVideoUrl = $('li:contains("supervideo")').attr("data-link");
console.log("superVideoUrl:", superVideoUrl);
if (!superVideoUrl) {
return null;
}
const controller2 = new AbortController();
const signal2 = controller2.signal;
setTimeout(() => controller2.abort(), 4000);
const res2 = yield fetch("https:" + superVideoUrl, { signal: signal2 });
const data = yield res2.text();
// console.log('mostraguarda data:', data);
const streamUrl = yield superVideoExtractor(data);
return streamUrl;
}
catch (err) {
console.error("Error in GetMostraguardaStram:", err);
}
});
}
function GetMostraguardaStream(_a) {
return __awaiter(this, arguments, void 0, function* ({ imdb, type, season, episode, }) {
try {
const baseUrl = "https://mostraguarda.stream";
const path = type === "tv"
? `/serie/${imdb}/${season}/${episode}`
: `/movie/${imdb}`;
const url = baseUrl + path;
console.log("url:", url);
const res = yield axios(url, { timeout: 4000 });
const html = res.data;
const $ = cheerio.load(html);
const superVideoUrl = $('li:contains("supervideo")').attr("data-link");
console.log("superVideoUrl:", superVideoUrl);
if (!superVideoUrl) {
return null;
}
const controller2 = new AbortController();
const signal2 = controller2.signal;
setTimeout(() => controller2.abort(), 4000);
const res2 = yield fetch("https:" + superVideoUrl, { signal: signal2 });
const data = yield res2.text();
// console.log('mostraguarda data:', data);
const streamUrl = yield superVideoExtractor(data);
return streamUrl;
}
catch (err) {
console.error("Error in GetMostraguardaStram:", err);
}
});
}
console.log(id);
const streams = [];
const { imdbId, season, episode } = JSON.parse(id);
///// mostraguarda
const mostraguardaStream = yield GetMostraguardaStream({
imdb: imdbId,
type: type,
season: season,
episode: episode,
});
if (mostraguardaStream) {
streams.push({
server: "Supervideo 1",
link: mostraguardaStream,
type: "m3u8",
});
}
const guardahdStream = yield ExtractGuardahd({
imdb: imdbId,
type: type,
season: season,
episode: episode,
});
if (guardahdStream) {
streams.push({
server: "Supervideo 2",
link: guardahdStream,
type: "m3u8",
});
}
return streams;
}
catch (err) {
console.error(err);
return [];
}
});
};
exports.getStream = getStream;

View File

@@ -1,63 +1 @@
"use strict"; "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.genres=exports.catalog=void 0,exports.catalog=[{title:"Latest",filter:""},{title:"Web Series",filter:"/category/web-series"},{title:"Hollywood ",filter:"/category/hollywood-movies"},{title:"South Movies",filter:"/category/south-hindi-movies"}],exports.genres=[{title:"Action",filter:"/category/action"},{title:"Crime",filter:"/category/crime"},{title:"Comedy",filter:"/category/comedy"},{title:"Drama",filter:"/category/drama"},{title:"Horror",filter:"/category/horror"},{title:"Family",filter:"/category/family"},{title:"Sci-Fi",filter:"/category/sifi"},{title:"Thriller",filter:"/category/triller"},{title:"Romance",filter:"/category/romance"},{title:"Fight",filter:"/category/fight"}];
Object.defineProperty(exports, "__esModule", { value: true });
exports.genres = exports.catalog = void 0;
exports.catalog = [
{
title: "Latest",
filter: "",
},
{
title: "Web Series",
filter: "/category/web-series",
},
{
title: "Hollywood ",
filter: "/category/hollywood-movies",
},
{
title: "South Movies",
filter: "/category/south-hindi-movies",
},
];
exports.genres = [
{
title: "Action",
filter: "/category/action",
},
{
title: "Crime",
filter: "/category/crime",
},
{
title: "Comedy",
filter: "/category/comedy",
},
{
title: "Drama",
filter: "/category/drama",
},
{
title: "Horror",
filter: "/category/horror",
},
{
title: "Family",
filter: "/category/family",
},
{
title: "Sci-Fi",
filter: "/category/sifi",
},
{
title: "Thriller",
filter: "/category/triller",
},
{
title: "Romance",
filter: "/category/romance",
},
{
title: "Fight",
filter: "/category/fight",
},
];

128
dist/hdhub4u/meta.js vendored
View File

@@ -1,127 +1 @@
"use strict"; "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 hdbHeaders={Cookie:"xla=s4t",Referer:"https://google.com","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"},getMeta=function(_a){return __awaiter(this,arguments,void 0,function*({link:link,providerContext:providerContext}){var _b;try{const{axios:axios,cheerio:cheerio}=providerContext,url=link,data=(yield axios.get(url,{headers:hdbHeaders})).data,$=cheerio.load(data),container=$(".page-body"),imdbId=(null===(_b=container.find('a[href*="imdb.com/title/tt"]:not([href*="imdb.com/title/tt/"])').attr("href"))||void 0===_b?void 0:_b.split("/")[4])||"",title=container.find('h2[data-ved="2ahUKEwjL0NrBk4vnAhWlH7cAHRCeAlwQ3B0oATAfegQIFBAM"],h2[data-ved="2ahUKEwiP0pGdlermAhUFYVAKHV8tAmgQ3B0oATAZegQIDhAM"]').text(),type=title.toLocaleLowerCase().includes("season")?"series":"movie",synopsis=container.find('strong:contains("DESCRIPTION")').parent().text().replace("DESCRIPTION:",""),image=container.find('img[decoding="async"]').attr("src")||"",links=[],directLink=[];return $('strong:contains("EPiSODE")').map((i,element)=>{const epTitle=$(element).parent().parent().text(),episodesLink=$(element).parent().parent().parent().next().next().find("a").attr("href")||$(element).parent().parent().parent().next().find("a").attr("href");episodesLink&&episodesLink&&directLink.push({title:epTitle,link:episodesLink})}),0===directLink.length&&container.find('a:contains("EPiSODE")').map((i,element)=>{const epTitle=$(element).text(),episodesLink=$(element).attr("href");episodesLink&&directLink.push({title:epTitle.toLocaleUpperCase(),link:episodesLink})}),directLink.length>0&&links.push({title:title,directLinks:directLink}),0===directLink.length&&container.find('a:contains("480"),a:contains("720"),a:contains("1080"),a:contains("2160"),a:contains("4K")').map((i,element)=>{var _a;const quality=(null===(_a=$(element).text().match(/\b(480p|720p|1080p|2160p)\b/i))||void 0===_a?void 0:_a[0])||"",movieLinks=$(element).attr("href"),title=$(element).text();movieLinks&&links.push({directLinks:[{link:movieLinks,title:"Movie",type:"movie"}],quality:quality,title:title})}),{title:title,synopsis:synopsis,image:image,imdbId:imdbId,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) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getMeta = void 0;
const hdbHeaders = {
Cookie: "xla=s4t",
Referer: "https://google.com",
"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",
};
const getMeta = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ link, providerContext, }) {
var _b;
try {
const { axios, cheerio } = providerContext;
const url = link;
const res = yield axios.get(url, { headers: hdbHeaders });
const data = res.data;
const $ = cheerio.load(data);
const container = $(".page-body");
const imdbId = ((_b = container
.find('a[href*="imdb.com/title/tt"]:not([href*="imdb.com/title/tt/"])')
.attr("href")) === null || _b === void 0 ? void 0 : _b.split("/")[4]) || "";
const title = container
.find('h2[data-ved="2ahUKEwjL0NrBk4vnAhWlH7cAHRCeAlwQ3B0oATAfegQIFBAM"],h2[data-ved="2ahUKEwiP0pGdlermAhUFYVAKHV8tAmgQ3B0oATAZegQIDhAM"]')
.text();
const type = title.toLocaleLowerCase().includes("season")
? "series"
: "movie";
const synopsis = container
.find('strong:contains("DESCRIPTION")')
.parent()
.text()
.replace("DESCRIPTION:", "");
const image = container.find('img[decoding="async"]').attr("src") || "";
// Links
const links = [];
const directLink = [];
// direct link type
$('strong:contains("EPiSODE")').map((i, element) => {
const epTitle = $(element).parent().parent().text();
const episodesLink = $(element)
.parent()
.parent()
.parent()
.next()
.next()
.find("a")
.attr("href") ||
$(element).parent().parent().parent().next().find("a").attr("href");
if (episodesLink && episodesLink) {
directLink.push({
title: epTitle,
link: episodesLink,
});
}
});
if (directLink.length === 0) {
container.find('a:contains("EPiSODE")').map((i, element) => {
const epTitle = $(element).text();
const episodesLink = $(element).attr("href");
if (episodesLink) {
directLink.push({
title: epTitle.toLocaleUpperCase(),
link: episodesLink,
});
}
});
}
if (directLink.length > 0) {
links.push({
title: title,
directLinks: directLink,
});
}
if (directLink.length === 0) {
container
.find('a:contains("480"),a:contains("720"),a:contains("1080"),a:contains("2160"),a:contains("4K")')
.map((i, element) => {
var _a;
const quality = ((_a = $(element)
.text()
.match(/\b(480p|720p|1080p|2160p)\b/i)) === null || _a === void 0 ? void 0 : _a[0]) || "";
const movieLinks = $(element).attr("href");
const title = $(element).text();
if (movieLinks) {
links.push({
directLinks: [
{ link: movieLinks, title: "Movie", type: "movie" },
],
quality: quality,
title: title,
});
}
});
}
// console.log('drive meta', title, synopsis, image, imdbId, type, links);
return {
title,
synopsis,
image,
imdbId,
type,
linkList: links,
};
}
catch (err) {
console.error(err);
return {
title: "",
synopsis: "",
image: "",
imdbId: "",
type: "movie",
linkList: [],
};
}
});
};
exports.getMeta = getMeta;

69
dist/hdhub4u/posts.js vendored
View File

@@ -1,68 +1 @@
"use strict"; "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 hdbHeaders={Cookie:"xla=s4t",Referer:"https://google.com","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"},getPosts=function(_a){return __awaiter(this,arguments,void 0,function*({filter:filter,page:page,signal:signal,providerContext:providerContext}){const{getBaseUrl:getBaseUrl}=providerContext;return posts({url:`${(yield getBaseUrl("hdhub"))+filter}/page/${page}/`,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("hdhub")}/page/${page}/?s=${searchQuery}`,signal:signal,providerContext:providerContext})})};function posts(_a){return __awaiter(this,arguments,void 0,function*({url:url,signal:signal,providerContext:providerContext}){const{cheerio:cheerio}=providerContext;try{const res=yield fetch(url,{headers:hdbHeaders,signal:signal}),data=yield res.text(),$=cheerio.load(data),catalog=[];return $(".recent-movies").children().map((i,element)=>{const title=$(element).find("figure").find("img").attr("alt"),link=$(element).find("a").attr("href"),image=$(element).find("figure").find("img").attr("src");title&&link&&image&&catalog.push({title:title.replace("Download","").trim(),link:link,image:image})}),catalog}catch(err){return[]}})}exports.getSearchPosts=getSearchPosts;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getSearchPosts = exports.getPosts = void 0;
const hdbHeaders = {
Cookie: "xla=s4t",
Referer: "https://google.com",
"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",
};
const getPosts = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ filter, page, signal, providerContext, }) {
const { getBaseUrl } = providerContext;
const baseUrl = yield getBaseUrl("hdhub");
const url = `${baseUrl + filter}/page/${page}/`;
return posts({ url, signal, providerContext });
});
};
exports.getPosts = getPosts;
const getSearchPosts = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ searchQuery, page, signal, providerContext, }) {
const { getBaseUrl } = providerContext;
const baseUrl = yield getBaseUrl("hdhub");
const url = `${baseUrl}/page/${page}/?s=${searchQuery}`;
return posts({ url, signal, providerContext });
});
};
exports.getSearchPosts = getSearchPosts;
function posts(_a) {
return __awaiter(this, arguments, void 0, function* ({ url, signal, providerContext, }) {
const { cheerio } = providerContext;
try {
const res = yield fetch(url, {
headers: hdbHeaders,
signal,
});
const data = yield res.text();
const $ = cheerio.load(data);
const catalog = [];
$(".recent-movies")
.children()
.map((i, element) => {
const title = $(element).find("figure").find("img").attr("alt");
const link = $(element).find("a").attr("href");
const image = $(element).find("figure").find("img").attr("src");
if (title && link && image) {
catalog.push({
title: title.replace("Download", "").trim(),
link: link,
image: image,
});
}
});
return catalog;
}
catch (err) {
console.error("hdhubGetPosts error ", err);
return [];
}
});
}

165
dist/hdhub4u/stream.js vendored
View File

@@ -1,164 +1 @@
"use strict"; "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())})};function getStream(_a){return __awaiter(this,arguments,void 0,function*({link:link,signal:signal,providerContext:providerContext}){var _b,_c,_d,_e;const{axios:axios,cheerio:cheerio,extractors:extractors,commonHeaders:headers}=providerContext,{hubcloudExtracter:hubcloudExtracter}=extractors;let hubdriveLink="";if(link.includes("hubdrive")){const hubdriveText=(yield axios.get(link,{headers:headers,signal:signal})).data;hubdriveLink=cheerio.load(hubdriveText)(".btn.btn-primary.btn-user.btn-success1.m-1").attr("href")||link}else{const decodedString=decodeString(null===(_d=null===(_c=null===(_b=(yield axios.get(link,{headers:headers,signal:signal})).data.split("s('o','"))||void 0===_b?void 0:_b[1])||void 0===_c?void 0:_c.split("',180"))||void 0===_d?void 0:_d[0]);link=atob(null==decodedString?void 0:decodedString.o);const redirectLink=yield getRedirectLinks(link,signal,headers),redirectLinkText=(yield axios.get(redirectLink,{headers:headers,signal:signal})).data;if(hubdriveLink=cheerio.load(redirectLinkText)('h3:contains("1080p")').find("a").attr("href")||redirectLinkText.match(/href="(https:\/\/hubcloud\.[^\/]+\/drive\/[^"]+)"/)[1],hubdriveLink.includes("hubdrive")){const hubdriveText=(yield axios.get(hubdriveLink,{headers:headers,signal:signal})).data;hubdriveLink=cheerio.load(hubdriveText)(".btn.btn-primary.btn-user.btn-success1.m-1").attr("href")||hubdriveLink}}const hubcloudLink=(null===(_e=(yield axios.get(hubdriveLink,{headers:headers,signal:signal})).data.match(/<META HTTP-EQUIV="refresh" content="0; url=([^"]+)">/i))||void 0===_e?void 0:_e[1])||hubdriveLink;try{return yield hubcloudExtracter(hubcloudLink,signal)}catch(error){return[]}})}Object.defineProperty(exports,"__esModule",{value:!0}),exports.getStream=getStream,exports.getRedirectLinks=getRedirectLinks,exports.decodeString=decodeString;const encode=function(value){return btoa(value.toString())},decode=function(value){return void 0===value?"":atob(value.toString())},pen=function(value){return value.replace(/[a-zA-Z]/g,function(_0x1a470e){return String.fromCharCode((_0x1a470e<="Z"?90:122)>=(_0x1a470e=_0x1a470e.charCodeAt(0)+13)?_0x1a470e:_0x1a470e-26)})},abortableTimeout=(ms,{signal:signal}={})=>new Promise((resolve,reject)=>{if(signal&&signal.aborted)return reject(new Error("Aborted"));const timer=setTimeout(resolve,ms);signal&&signal.addEventListener("abort",()=>{clearTimeout(timer),reject(new Error("Aborted"))})});function getRedirectLinks(link,signal,headers){return __awaiter(this,void 0,void 0,function*(){try{const res=yield fetch(link,{headers:headers,signal:signal}),resText=yield res.text();for(var match,regex=/ck\('_wp_http_\d+','([^']+)'/g,combinedString="";null!==(match=regex.exec(resText));)combinedString+=match[1];const decodedString=decode(pen(decode(decode(combinedString)))),data=JSON.parse(decodedString),token=encode(null==data?void 0:data.data),blogLink=(null==data?void 0:data.wp_http1)+"?re="+token;let wait=abortableTimeout(1e3*(Number(null==data?void 0:data.total_time)+3),{signal:signal});yield wait;let vcloudLink="Invalid Request";for(;vcloudLink.includes("Invalid Request");){const blogRes=yield fetch(blogLink,{headers:headers,signal:signal}),blogResText=yield blogRes.text();if(!blogResText.includes("Invalid Request")){vcloudLink=blogResText.match(/var reurl = "([^"]+)"/)||"";break}}return blogLink||link}catch(err){return link}})}function rot13(str){return str.replace(/[a-zA-Z]/g,function(char){const charCode=char.charCodeAt(0),baseCharCode=char<="Z"?65:97;return String.fromCharCode((charCode-baseCharCode+13)%26+baseCharCode)})}function decodeString(encryptedString){try{let decoded=atob(encryptedString);return decoded=atob(decoded),decoded=rot13(decoded),decoded=atob(decoded),JSON.parse(decoded)}catch(error){return null}}
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getStream = getStream;
exports.getRedirectLinks = getRedirectLinks;
exports.decodeString = decodeString;
function getStream(_a) {
return __awaiter(this, arguments, void 0, function* ({ link, signal, providerContext, }) {
var _b, _c, _d, _e;
const { axios, cheerio, extractors, commonHeaders: headers, } = providerContext;
const { hubcloudExtracter } = extractors;
let hubdriveLink = "";
if (link.includes("hubdrive")) {
const hubdriveRes = yield axios.get(link, { headers, signal });
const hubdriveText = hubdriveRes.data;
const $ = cheerio.load(hubdriveText);
hubdriveLink =
$(".btn.btn-primary.btn-user.btn-success1.m-1").attr("href") || link;
}
else {
const res = yield axios.get(link, { headers, signal });
const text = res.data;
const encryptedString = (_d = (_c = (_b = text.split("s('o','")) === null || _b === void 0 ? void 0 : _b[1]) === null || _c === void 0 ? void 0 : _c.split("',180")) === null || _d === void 0 ? void 0 : _d[0];
const decodedString = decodeString(encryptedString);
link = atob(decodedString === null || decodedString === void 0 ? void 0 : decodedString.o);
const redirectLink = yield getRedirectLinks(link, signal, headers);
const redirectLinkRes = yield axios.get(redirectLink, { headers, signal });
const redirectLinkText = redirectLinkRes.data;
const $ = cheerio.load(redirectLinkText);
hubdriveLink =
$('h3:contains("1080p")').find("a").attr("href") ||
redirectLinkText.match(/href="(https:\/\/hubcloud\.[^\/]+\/drive\/[^"]+)"/)[1];
if (hubdriveLink.includes("hubdrive")) {
const hubdriveRes = yield axios.get(hubdriveLink, { headers, signal });
const hubdriveText = hubdriveRes.data;
const $$ = cheerio.load(hubdriveText);
hubdriveLink =
$$(".btn.btn-primary.btn-user.btn-success1.m-1").attr("href") ||
hubdriveLink;
}
}
const hubdriveLinkRes = yield axios.get(hubdriveLink, { headers, signal });
const hubcloudText = hubdriveLinkRes.data;
const hubcloudLink = ((_e = hubcloudText.match(/<META HTTP-EQUIV="refresh" content="0; url=([^"]+)">/i)) === null || _e === void 0 ? void 0 : _e[1]) || hubdriveLink;
try {
return yield hubcloudExtracter(hubcloudLink, signal);
}
catch (error) {
console.log("hd hub 4 getStream error: ", error);
return [];
}
});
}
const encode = function (value) {
return btoa(value.toString());
};
const decode = function (value) {
if (value === undefined) {
return "";
}
return atob(value.toString());
};
const pen = function (value) {
return value.replace(/[a-zA-Z]/g, function (_0x1a470e) {
return String.fromCharCode((_0x1a470e <= "Z" ? 90 : 122) >=
(_0x1a470e = _0x1a470e.charCodeAt(0) + 13)
? _0x1a470e
: _0x1a470e - 26);
});
};
const abortableTimeout = (ms, { signal } = {}) => {
return new Promise((resolve, reject) => {
if (signal && signal.aborted) {
return reject(new Error("Aborted"));
}
const timer = setTimeout(resolve, ms);
if (signal) {
signal.addEventListener("abort", () => {
clearTimeout(timer);
reject(new Error("Aborted"));
});
}
});
};
function getRedirectLinks(link, signal, headers) {
return __awaiter(this, void 0, void 0, function* () {
try {
const res = yield fetch(link, { headers, signal });
const resText = yield res.text();
var regex = /ck\('_wp_http_\d+','([^']+)'/g;
var combinedString = "";
var match;
while ((match = regex.exec(resText)) !== null) {
// console.log(match[1]);
combinedString += match[1];
}
// console.log(decode(combinedString));
const decodedString = decode(pen(decode(decode(combinedString))));
// console.log(decodedString);
const data = JSON.parse(decodedString);
console.log(data);
const token = encode(data === null || data === void 0 ? void 0 : data.data);
const blogLink = (data === null || data === void 0 ? void 0 : data.wp_http1) + "?re=" + token;
// abort timeout on signal
let wait = abortableTimeout((Number(data === null || data === void 0 ? void 0 : data.total_time) + 3) * 1000, {
signal,
});
yield wait;
console.log("blogLink", blogLink);
let vcloudLink = "Invalid Request";
while (vcloudLink.includes("Invalid Request")) {
const blogRes = yield fetch(blogLink, { headers, signal });
const blogResText = (yield blogRes.text());
if (blogResText.includes("Invalid Request")) {
console.log(blogResText);
}
else {
vcloudLink = blogResText.match(/var reurl = "([^"]+)"/) || "";
break;
}
}
// console.log('vcloudLink', vcloudLink?.[1]);
return blogLink || link;
}
catch (err) {
console.log("Error in getRedirectLinks", err);
return link;
}
});
}
function rot13(str) {
return str.replace(/[a-zA-Z]/g, function (char) {
const charCode = char.charCodeAt(0);
const isUpperCase = char <= "Z";
const baseCharCode = isUpperCase ? 65 : 97;
return String.fromCharCode(((charCode - baseCharCode + 13) % 26) + baseCharCode);
});
}
function decodeString(encryptedString) {
try {
// First base64 decode
let decoded = atob(encryptedString);
// Second base64 decode
decoded = atob(decoded);
// ROT13 decode
decoded = rot13(decoded);
// Third base64 decode
decoded = atob(decoded);
// Parse JSON
return JSON.parse(decoded);
}
catch (error) {
console.error("Error decoding string:", error);
return null;
}
}

12
dist/headers.js vendored
View File

@@ -1,11 +1 @@
"use strict"; "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.headers=void 0,exports.headers={"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"',"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0"};
Object.defineProperty(exports, "__esModule", { value: true });
exports.headers = void 0;
exports.headers = {
'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-Site': 'none',
// 'Sec-Fetch-User': '?1',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0',
};

View File

@@ -1,22 +1 @@
"use strict"; "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.genres=exports.catalog=void 0,exports.catalog=[{title:"Recent",filter:"/anime/zoro/recent-episodes"},{title:"Top Airing",filter:"/anime/zoro/top-airing"},{title:"Most Popular",filter:"/anime/zoro/most-popular"},{title:"Most Favorited",filter:"/anime/zoro/most-favorite"}],exports.genres=[];
Object.defineProperty(exports, "__esModule", { value: true });
exports.genres = exports.catalog = void 0;
exports.catalog = [
{
title: "Recent",
filter: "/anime/zoro/recent-episodes",
},
{
title: "Top Airing",
filter: "/anime/zoro/top-airing",
},
{
title: "Most Popular",
filter: "/anime/zoro/most-popular",
},
{
title: "Most Favorited",
filter: "/anime/zoro/most-favorite",
},
];
exports.genres = [];

87
dist/hiAnime/meta.js vendored
View File

@@ -1,86 +1 @@
"use strict"; "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}){try{const{getBaseUrl:getBaseUrl,axios:axios}=providerContext,url=`${yield getBaseUrl("consumet")}/anime/zoro/info?id=`+link,data=(yield axios.get(url)).data,meta={title:data.title,synopsis:data.description,image:data.image,tags:[null==data?void 0:data.type,"both"===(null==data?void 0:data.subOrDub)?"Sub And Dub":null==data?void 0:data.subOrDub],imdbId:"",type:data.episodes.length>0?"series":"movie"},linkList=[],subLinks=[];if(data.episodes.forEach(episode=>{if(!(null==episode?void 0:episode.isSubbed))return;const title="Episode "+episode.number+((null==episode?void 0:episode.isFiller)?" (Filler)":""),link=episode.id+"$sub";link&&title&&subLinks.push({title:title,link:link})}),linkList.push({title:meta.title+" (Sub)",directLinks:subLinks}),"both"===(null==data?void 0:data.subOrDub)){const dubLinks=[];data.episodes.forEach(episode=>{if(!(null==episode?void 0:episode.isDubbed))return;const title="Episode "+episode.number+((null==episode?void 0:episode.isFiller)?" (Filler)":""),link=episode.id+"$dub";link&&title&&dubLinks.push({title:title,link:link})}),linkList.push({title:meta.title+" (Dub)",directLinks:dubLinks})}return Object.assign(Object.assign({},meta),{linkList:linkList})}catch(err){return{title:"",synopsis:"",image:"",imdbId:"",type:"movie",linkList:[]}}})};exports.getMeta=getMeta;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getMeta = void 0;
const getMeta = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ link, providerContext, }) {
try {
const { getBaseUrl, axios } = providerContext;
const baseUrl = yield getBaseUrl("consumet");
const url = `${baseUrl}/anime/zoro/info?id=` + link;
const res = yield axios.get(url);
const data = res.data;
const meta = {
title: data.title,
synopsis: data.description,
image: data.image,
tags: [
data === null || data === void 0 ? void 0 : data.type,
(data === null || data === void 0 ? void 0 : data.subOrDub) === "both" ? "Sub And Dub" : data === null || data === void 0 ? void 0 : data.subOrDub,
],
imdbId: "",
type: data.episodes.length > 0 ? "series" : "movie",
};
const linkList = [];
const subLinks = [];
data.episodes.forEach((episode) => {
if (!(episode === null || episode === void 0 ? void 0 : episode.isSubbed)) {
return;
}
const title = "Episode " + episode.number + ((episode === null || episode === void 0 ? void 0 : episode.isFiller) ? " (Filler)" : "");
const link = episode.id + "$sub";
if (link && title) {
subLinks.push({
title,
link,
});
}
});
linkList.push({
title: meta.title + " (Sub)",
directLinks: subLinks,
});
if ((data === null || data === void 0 ? void 0 : data.subOrDub) === "both") {
const dubLinks = [];
data.episodes.forEach((episode) => {
if (!(episode === null || episode === void 0 ? void 0 : episode.isDubbed)) {
return;
}
const title = "Episode " + episode.number + ((episode === null || episode === void 0 ? void 0 : episode.isFiller) ? " (Filler)" : "");
const link = episode.id + "$dub";
if (link && title) {
dubLinks.push({
title,
link,
});
}
});
linkList.push({
title: meta.title + " (Dub)",
directLinks: dubLinks,
});
}
return Object.assign(Object.assign({}, meta), { linkList: linkList });
}
catch (err) {
console.error(err);
return {
title: "",
synopsis: "",
image: "",
imdbId: "",
type: "movie",
linkList: [],
};
}
});
};
exports.getMeta = getMeta;

58
dist/hiAnime/posts.js vendored
View File

@@ -1,57 +1 @@
"use strict"; "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}){const{getBaseUrl:getBaseUrl,axios:axios}=providerContext;return posts({url:`${(yield getBaseUrl("consumet"))+filter}?page=${page}`,signal:signal,axios:axios})})};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,axios:axios}=providerContext;return posts({url:`${yield getBaseUrl("consumet")}/anime/zoro/${searchQuery}?page=${page}`,signal:signal,axios:axios})})};function posts(_a){return __awaiter(this,arguments,void 0,function*({url:url,signal:signal,axios:axios}){var _b;try{const data=null===(_b=(yield axios.get(url,{signal:signal})).data)||void 0===_b?void 0:_b.results,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) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getSearchPosts = exports.getPosts = void 0;
const getPosts = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ filter, page, signal, providerContext, }) {
const { getBaseUrl, axios } = providerContext;
const baseUrl = yield getBaseUrl("consumet");
const url = `${baseUrl + filter}?page=${page}`;
return posts({ url, signal, axios });
});
};
exports.getPosts = getPosts;
const getSearchPosts = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ searchQuery, page, signal, providerContext, }) {
const { getBaseUrl, axios } = providerContext;
const baseUrl = yield getBaseUrl("consumet");
const url = `${baseUrl}/anime/zoro/${searchQuery}?page=${page}`;
return posts({ url, signal, axios });
});
};
exports.getSearchPosts = getSearchPosts;
function posts(_a) {
return __awaiter(this, arguments, void 0, function* ({ url, signal, axios, }) {
var _b;
try {
const res = yield axios.get(url, { signal });
const data = (_b = res.data) === null || _b === void 0 ? void 0 : _b.results;
const catalog = [];
data === null || data === void 0 ? void 0 : data.map((element) => {
const title = element.title;
const link = element.id;
const image = element.image;
if (title && link && image) {
catalog.push({
title: title,
link: link,
image: image,
});
}
});
return catalog;
}
catch (err) {
console.error("zoro error ", err);
return [];
}
});
}

View File

@@ -1,66 +1 @@
"use strict"; "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}){try{const{getBaseUrl:getBaseUrl,axios:axios}=providerContext,baseUrl=yield getBaseUrl("consumet"),servers=["vidcloud","vidstreaming"],url=`${baseUrl}/anime/zoro/watch?episodeId=${id}&server=`,streamLinks=[];return yield Promise.all(servers.map(server=>__awaiter(this,void 0,void 0,function*(){var _a,_b;try{const res=yield axios.get(url+server);if(res.data){const subtitles=[];null===(_a=res.data)||void 0===_a||_a.subtitles.forEach(sub=>{var _a,_b;"Thumbnails"!==(null==sub?void 0:sub.lang)&&subtitles.push({language:(null===(_a=null==sub?void 0:sub.lang)||void 0===_a?void 0:_a.slice(0,2))||"Und",uri:null==sub?void 0:sub.url,title:(null==sub?void 0:sub.lang)||"Undefined",type:(null===(_b=null==sub?void 0:sub.url)||void 0===_b?void 0:_b.endsWith(".vtt"))?"text/vtt":"application/x-subrip"})}),null===(_b=res.data)||void 0===_b||_b.sources.forEach(source=>{streamLinks.push({server:server,link:null==source?void 0:source.url,type:(null==source?void 0:source.isM3U8)?"m3u8":"mp4",headers:{Referer:"https://megacloud.club/",Origin:"https://megacloud.club"},subtitles:subtitles})})}}catch(e){}}))),streamLinks}catch(err){return[]}})};exports.getStream=getStream;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getStream = void 0;
const getStream = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ link: id, providerContext, }) {
try {
const { getBaseUrl, axios } = providerContext;
const baseUrl = yield getBaseUrl("consumet");
const servers = ["vidcloud", "vidstreaming"];
const url = `${baseUrl}/anime/zoro/watch?episodeId=${id}&server=`;
const streamLinks = [];
yield Promise.all(servers.map((server) => __awaiter(this, void 0, void 0, function* () {
var _a, _b;
try {
const res = yield axios.get(url + server);
if (res.data) {
const subtitles = [];
(_a = res.data) === null || _a === void 0 ? void 0 : _a.subtitles.forEach((sub) => {
var _a, _b;
if ((sub === null || sub === void 0 ? void 0 : sub.lang) === "Thumbnails")
return;
subtitles.push({
language: ((_a = sub === null || sub === void 0 ? void 0 : sub.lang) === null || _a === void 0 ? void 0 : _a.slice(0, 2)) || "Und",
uri: sub === null || sub === void 0 ? void 0 : sub.url,
title: (sub === null || sub === void 0 ? void 0 : sub.lang) || "Undefined",
type: ((_b = sub === null || sub === void 0 ? void 0 : sub.url) === null || _b === void 0 ? void 0 : _b.endsWith(".vtt"))
? "text/vtt"
: "application/x-subrip",
});
});
(_b = res.data) === null || _b === void 0 ? void 0 : _b.sources.forEach((source) => {
streamLinks.push({
server: server,
link: source === null || source === void 0 ? void 0 : source.url,
type: (source === null || source === void 0 ? void 0 : source.isM3U8) ? "m3u8" : "mp4",
headers: {
Referer: "https://megacloud.club/",
Origin: "https://megacloud.club",
},
subtitles: subtitles,
});
});
}
}
catch (e) {
console.log(e);
}
})));
return streamLinks;
}
catch (err) {
console.error(err);
return [];
}
});
};
exports.getStream = getStream;

View File

@@ -1,132 +1 @@
"use strict"; "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(o,m,k,k2){void 0===k2&&(k2=k);var desc=Object.getOwnPropertyDescriptor(m,k);desc&&!("get"in desc?!m.__esModule:desc.writable||desc.configurable)||(desc={enumerable:!0,get:function(){return m[k]}}),Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){void 0===k2&&(k2=k),o[k2]=m[k]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}:function(o,v){o.default=v}),__importStar=this&&this.__importStar||function(){var ownKeys=function(o){return ownKeys=Object.getOwnPropertyNames||function(o){var ar=[];for(var k in o)Object.prototype.hasOwnProperty.call(o,k)&&(ar[ar.length]=k);return ar},ownKeys(o)};return function(mod){if(mod&&mod.__esModule)return mod;var result={};if(null!=mod)for(var k=ownKeys(mod),i=0;i<k.length;i++)"default"!==k[i]&&__createBinding(result,mod,k[i]);return __setModuleDefault(result,mod),result}}(),__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())})},__importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.hubcloudExtracter=hubcloudExtracter;const axios_1=__importDefault(require("axios")),cheerio=__importStar(require("cheerio")),headers_1=require("./headers"),decode=function(value){return void 0===value?"":atob(value.toString())};function hubcloudExtracter(link,signal){return __awaiter(this,void 0,void 0,function*(){var _a,_b,_c,_d,_e;try{const baseUrl=link.split("/").slice(0,3).join("/"),streamLinks=[],vLinkText=(yield(0,axios_1.default)(`${link}`,{headers:headers_1.headers,signal:signal})).data,$vLink=cheerio.load(vLinkText),vLinkRedirect=vLinkText.match(/var\s+url\s*=\s*'([^']+)';/)||[];let vcloudLink=decode(null===(_b=null===(_a=vLinkRedirect[1])||void 0===_a?void 0:_a.split("r="))||void 0===_b?void 0:_b[1])||vLinkRedirect[1]||$vLink(".fa-file-download.fa-lg").parent().attr("href")||link;(null==vcloudLink?void 0:vcloudLink.startsWith("/"))&&(vcloudLink=`${baseUrl}${vcloudLink}`);const vcloudRes=yield fetch(vcloudLink,{headers:headers_1.headers,signal:signal,redirect:"follow"}),$=cheerio.load(yield vcloudRes.text()),linkClass=$(".btn-success.btn-lg.h6,.btn-danger,.btn-secondary");for(const element of linkClass){let link=$(element).attr("href")||"";if((null==link?void 0:link.includes(".dev"))&&!(null==link?void 0:link.includes("/?id="))&&streamLinks.push({server:"Cf Worker",link:link,type:"mkv"}),null==link?void 0:link.includes("pixeld")){if(!(null==link?void 0:link.includes("api"))){const token=link.split("/").pop(),baseUrl=link.split("/").slice(0,-2).join("/");link=`${baseUrl}/api/file/${token}?download`}streamLinks.push({server:"Pixeldrain",link:link,type:"mkv"})}if((null==link?void 0:link.includes("hubcloud"))||(null==link?void 0:link.includes("/?id=")))try{const newLink=(null===(_e=null===(_d=null===(_c=(yield axios_1.default.head(link,{headers:headers_1.headers,signal:signal})).request)||void 0===_c?void 0:_c.responseURL)||void 0===_d?void 0:_d.split("link="))||void 0===_e?void 0:_e[1])||link;streamLinks.push({server:"hubcloud",link:newLink,type:"mkv"})}catch(error){}(null==link?void 0:link.includes("cloudflarestorage"))&&streamLinks.push({server:"CfStorage",link:link,type:"mkv"}),(null==link?void 0:link.includes("fastdl"))&&streamLinks.push({server:"FastDl",link:link,type:"mkv"}),link.includes("hubcdn")&&streamLinks.push({server:"HubCdn",link:link,type:"mkv"})}return streamLinks}catch(error){return[]}})}
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.hubcloudExtracter = hubcloudExtracter;
const axios_1 = __importDefault(require("axios"));
const cheerio = __importStar(require("cheerio"));
const headers_1 = require("./headers");
const decode = function (value) {
if (value === undefined) {
return '';
}
return atob(value.toString());
};
function hubcloudExtracter(link, signal) {
return __awaiter(this, void 0, void 0, function* () {
var _a, _b, _c, _d, _e;
try {
console.log('hubcloudExtracter', link);
const baseUrl = link.split('/').slice(0, 3).join('/');
const streamLinks = [];
const vLinkRes = yield (0, axios_1.default)(`${link}`, { headers: headers_1.headers, signal });
const vLinkText = vLinkRes.data;
const $vLink = cheerio.load(vLinkText);
const vLinkRedirect = vLinkText.match(/var\s+url\s*=\s*'([^']+)';/) || [];
let vcloudLink = decode((_b = (_a = vLinkRedirect[1]) === null || _a === void 0 ? void 0 : _a.split('r=')) === null || _b === void 0 ? void 0 : _b[1]) ||
vLinkRedirect[1] ||
$vLink('.fa-file-download.fa-lg').parent().attr('href') ||
link;
console.log('vcloudLink', vcloudLink);
if (vcloudLink === null || vcloudLink === void 0 ? void 0 : vcloudLink.startsWith('/')) {
vcloudLink = `${baseUrl}${vcloudLink}`;
console.log('New vcloudLink', vcloudLink);
}
const vcloudRes = yield fetch(vcloudLink, {
headers: headers_1.headers,
signal,
redirect: 'follow',
});
const $ = cheerio.load(yield vcloudRes.text());
// console.log('vcloudRes', $.text());
const linkClass = $('.btn-success.btn-lg.h6,.btn-danger,.btn-secondary');
for (const element of linkClass) {
const itm = $(element);
let link = itm.attr('href') || '';
if ((link === null || link === void 0 ? void 0 : link.includes('.dev')) && !(link === null || link === void 0 ? void 0 : link.includes('/?id='))) {
streamLinks.push({ server: 'Cf Worker', link: link, type: 'mkv' });
}
if (link === null || link === void 0 ? void 0 : link.includes('pixeld')) {
if (!(link === null || link === void 0 ? void 0 : link.includes('api'))) {
const token = link.split('/').pop();
const baseUrl = link.split('/').slice(0, -2).join('/');
link = `${baseUrl}/api/file/${token}?download`;
}
streamLinks.push({ server: 'Pixeldrain', link: link, type: 'mkv' });
}
if ((link === null || link === void 0 ? void 0 : link.includes('hubcloud')) || (link === null || link === void 0 ? void 0 : link.includes('/?id='))) {
try {
const newLinkRes = yield axios_1.default.head(link, { headers: headers_1.headers, signal });
const newLink = ((_e = (_d = (_c = newLinkRes.request) === null || _c === void 0 ? void 0 : _c.responseURL) === null || _d === void 0 ? void 0 : _d.split('link=')) === null || _e === void 0 ? void 0 : _e[1]) || link;
streamLinks.push({ server: 'hubcloud', link: newLink, type: 'mkv' });
}
catch (error) {
console.log('hubcloudExtracter error in hubcloud link: ', error);
}
}
if (link === null || link === void 0 ? void 0 : link.includes('cloudflarestorage')) {
streamLinks.push({ server: 'CfStorage', link: link, type: 'mkv' });
}
if (link === null || link === void 0 ? void 0 : link.includes('fastdl')) {
streamLinks.push({ server: 'FastDl', link: link, type: 'mkv' });
}
if (link.includes('hubcdn')) {
streamLinks.push({
server: 'HubCdn',
link: link,
type: 'mkv',
});
}
}
console.log('streamLinks', streamLinks);
return streamLinks;
}
catch (error) {
console.log('hubcloudExtracter error: ', error);
return [];
}
});
}

View File

@@ -1,63 +1 @@
"use strict"; "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.genres=exports.catalog=void 0,exports.catalog=[{title:"Latest",filter:""},{title:"Netflix",filter:"/category/netflix"},{title:"Animated",filter:"/category/animated"},{title:"Amazon Prime",filter:"/category/amazon-prime"}],exports.genres=[{title:"Action",filter:"/category/action"},{title:"Crime",filter:"/category/crime"},{title:"Comedy",filter:"/category/comedy"},{title:"Drama",filter:"/category/drama"},{title:"Horror",filter:"/category/horror"},{title:"Family",filter:"/category/family"},{title:"Sci-Fi",filter:"/category/sifi"},{title:"Thriller",filter:"/category/triller"},{title:"Romance",filter:"/category/romance"},{title:"Fight",filter:"/category/fight"}];
Object.defineProperty(exports, "__esModule", { value: true });
exports.genres = exports.catalog = void 0;
exports.catalog = [
{
title: "Latest",
filter: "",
},
{
title: "Netflix",
filter: "/category/netflix",
},
{
title: "Animated",
filter: "/category/animated",
},
{
title: "Amazon Prime",
filter: "/category/amazon-prime",
},
];
exports.genres = [
{
title: "Action",
filter: "/category/action",
},
{
title: "Crime",
filter: "/category/crime",
},
{
title: "Comedy",
filter: "/category/comedy",
},
{
title: "Drama",
filter: "/category/drama",
},
{
title: "Horror",
filter: "/category/horror",
},
{
title: "Family",
filter: "/category/family",
},
{
title: "Sci-Fi",
filter: "/category/sifi",
},
{
title: "Thriller",
filter: "/category/triller",
},
{
title: "Romance",
filter: "/category/romance",
},
{
title: "Fight",
filter: "/category/fight",
},
];

View File

@@ -1,86 +1 @@
"use strict"; "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,exports.extractKmhdLink=extractKmhdLink;const getEpisodes=function(_a){return __awaiter(this,arguments,void 0,function*({url:url,providerContext:providerContext}){var _b;const{axios:axios,cheerio:cheerio}=providerContext,episodesLink=[];try{if(url.includes("gdflix")){const baseUrl=null===(_b=url.split("/pack"))||void 0===_b?void 0:_b[0],data=(yield axios.get(url)).data,$=cheerio.load(data),links=$(".list-group-item");if(null==links||links.map((i,link)=>{episodesLink.push({title:$(link).text()||"",link:baseUrl+$(link).find("a").attr("href")||""})}),episodesLink.length>0)return episodesLink}if(url.includes("/pack")){const epIds=yield extractKmhdEpisodes(url,providerContext);null==epIds||epIds.forEach((id,index)=>{episodesLink.push({title:`Episode ${index+1}`,link:url.split("/pack")[0]+"/file/"+id})})}const episodeData=(yield axios.get(url,{headers:{Cookie:"_ga_GNR438JY8N=GS1.1.1722240350.5.0.1722240350.0.0.0; _ga=GA1.1.372196696.1722150754; unlocked=true"}})).data,$=cheerio.load(episodeData),links=$(".autohyperlink");return null==links||links.map((i,link)=>{episodesLink.push({title:$(link).parent().children().remove().end().text()||"",link:$(link).attr("href")||""})}),episodesLink}catch(err){return[]}})};function extractKmhdLink(katlink,providerContext){return __awaiter(this,void 0,void 0,function*(){const{axios:axios}=providerContext,data=(yield axios.get(katlink)).data,hubDriveRes=data.match(/hubdrive_res:\s*"([^"]+)"/)[1];return data.match(/hubdrive_res\s*:\s*{[^}]*?link\s*:\s*"([^"]+)"/)[1]+hubDriveRes})}function extractKmhdEpisodes(katlink,providerContext){return __awaiter(this,void 0,void 0,function*(){const{axios:axios}=providerContext;return(yield axios.get(katlink)).data.match(/[\w]+_[a-f0-9]{8}/g)})}exports.getEpisodes=getEpisodes;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getEpisodes = void 0;
exports.extractKmhdLink = extractKmhdLink;
const getEpisodes = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ url, providerContext, }) {
var _b;
const { axios, cheerio } = providerContext;
const episodesLink = [];
try {
if (url.includes("gdflix")) {
const baseUrl = (_b = url.split("/pack")) === null || _b === void 0 ? void 0 : _b[0];
const res = yield axios.get(url);
const data = res.data;
const $ = cheerio.load(data);
const links = $(".list-group-item");
links === null || links === void 0 ? void 0 : links.map((i, link) => {
episodesLink.push({
title: $(link).text() || "",
link: baseUrl + $(link).find("a").attr("href") || "",
});
});
if (episodesLink.length > 0) {
return episodesLink;
}
}
if (url.includes("/pack")) {
const epIds = yield extractKmhdEpisodes(url, providerContext);
epIds === null || epIds === void 0 ? void 0 : epIds.forEach((id, index) => {
episodesLink.push({
title: `Episode ${index + 1}`,
link: url.split("/pack")[0] + "/file/" + id,
});
});
}
const res = yield axios.get(url, {
headers: {
Cookie: "_ga_GNR438JY8N=GS1.1.1722240350.5.0.1722240350.0.0.0; _ga=GA1.1.372196696.1722150754; unlocked=true",
},
});
const episodeData = res.data;
const $ = cheerio.load(episodeData);
const links = $(".autohyperlink");
links === null || links === void 0 ? void 0 : links.map((i, link) => {
episodesLink.push({
title: $(link).parent().children().remove().end().text() || "",
link: $(link).attr("href") || "",
});
});
return episodesLink;
}
catch (err) {
console.error(err);
return [];
}
});
};
exports.getEpisodes = getEpisodes;
function extractKmhdLink(katlink, providerContext) {
return __awaiter(this, void 0, void 0, function* () {
const { axios } = providerContext;
const res = yield axios.get(katlink);
const data = res.data;
const hubDriveRes = data.match(/hubdrive_res:\s*"([^"]+)"/)[1];
const hubDriveLink = data.match(/hubdrive_res\s*:\s*{[^}]*?link\s*:\s*"([^"]+)"/)[1];
return hubDriveLink + hubDriveRes;
});
}
function extractKmhdEpisodes(katlink, providerContext) {
return __awaiter(this, void 0, void 0, function* () {
const { axios } = providerContext;
const res = yield axios.get(katlink);
const data = res.data;
const ids = data.match(/[\w]+_[a-f0-9]{8}/g);
return ids;
});
}

129
dist/katmovies/meta.js vendored
View File

@@ -1,128 +1 @@
"use strict"; "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;try{const{axios:axios,cheerio:cheerio}=providerContext,url=link,data=(yield axios.get(url)).data,$=cheerio.load(data),container=$(".yQ8hqd.ksSzJd.LoQAYe").html()?$(".yQ8hqd.ksSzJd.LoQAYe"):$(".FxvUNb"),imdbId=(null===(_b=container.find('a[href*="imdb.com/title/tt"]:not([href*="imdb.com/title/tt/"])').attr("href"))||void 0===_b?void 0:_b.split("/")[4])||"",title=container.find('li:contains("Name")').children().remove().end().text(),type=$(".yQ8hqd.ksSzJd.LoQAYe").html()?"series":"movie",synopsis=container.find('li:contains("Stars")').text(),image=$('h4:contains("SCREENSHOTS")').next().find("img").attr("src")||"",links=[],directLink=[];return $(".entry-content").find('p:contains("Episode")').each((i,element)=>{const dlLink=$(element).nextAll("h3,h2").first().find('a:contains("1080"),a:contains("720"),a:contains("480")').attr("href")||"",dlTitle=$(element).find("span").text();link.trim().length>0&&dlTitle.includes("Episode ")&&directLink.push({title:dlTitle,link:dlLink})}),directLink.length>0&&links.push({quality:"",title:title,directLinks:directLink}),$(".entry-content").find("pre").nextUntil("div").filter("h2").each((i,element)=>{var _a;const link=$(element).find("a").attr("href"),quality=(null===(_a=$(element).text().match(/\b(480p|720p|1080p|2160p)\b/i))||void 0===_a?void 0:_a[0])||"",title=$(element).text();link&&title.includes("")&&links.push({quality:quality,title:title,episodesLink:link})}),0===links.length&&"movie"===type&&$(".entry-content").find('h2:contains("DOWNLOAD"),h3:contains("DOWNLOAD")').nextUntil("pre,div").filter("h2").each((i,element)=>{var _a;const link=$(element).find("a").attr("href"),quality=(null===(_a=$(element).text().match(/\b(480p|720p|1080p|2160p)\b/i))||void 0===_a?void 0:_a[0])||"",title=$(element).text();link&&!title.includes("Online")&&links.push({quality:quality,title:title,directLinks:[{link:link,title:title,type:"movie"}]})}),{title:title,synopsis:synopsis,image:image,imdbId:imdbId,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) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getMeta = void 0;
const getMeta = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ link, providerContext, }) {
var _b;
try {
const { axios, cheerio } = providerContext;
const url = link;
const res = yield axios.get(url);
const data = res.data;
const $ = cheerio.load(data);
const container = $(".yQ8hqd.ksSzJd.LoQAYe").html()
? $(".yQ8hqd.ksSzJd.LoQAYe")
: $(".FxvUNb");
const imdbId = ((_b = container
.find('a[href*="imdb.com/title/tt"]:not([href*="imdb.com/title/tt/"])')
.attr("href")) === null || _b === void 0 ? void 0 : _b.split("/")[4]) || "";
const title = container
.find('li:contains("Name")')
.children()
.remove()
.end()
.text();
const type = $(".yQ8hqd.ksSzJd.LoQAYe").html() ? "series" : "movie";
const synopsis = container.find('li:contains("Stars")').text();
const image = $('h4:contains("SCREENSHOTS")').next().find("img").attr("src") || "";
console.log("katGetInfo", title, synopsis, image, imdbId, type);
// Links
const links = [];
const directLink = [];
// direct links
$(".entry-content")
.find('p:contains("Episode")')
.each((i, element) => {
const dlLink = $(element)
.nextAll("h3,h2")
.first()
.find('a:contains("1080"),a:contains("720"),a:contains("480")')
.attr("href") || "";
const dlTitle = $(element).find("span").text();
if (link.trim().length > 0 && dlTitle.includes("Episode ")) {
directLink.push({
title: dlTitle,
link: dlLink,
});
}
});
if (directLink.length > 0) {
links.push({
quality: "",
title: title,
directLinks: directLink,
});
}
$(".entry-content")
.find("pre")
.nextUntil("div")
.filter("h2")
.each((i, element) => {
var _a;
const link = $(element).find("a").attr("href");
const quality = ((_a = $(element)
.text()
.match(/\b(480p|720p|1080p|2160p)\b/i)) === null || _a === void 0 ? void 0 : _a[0]) || "";
const title = $(element).text();
if (link && title.includes("")) {
links.push({
quality,
title,
episodesLink: link,
});
}
});
if (links.length === 0 && type === "movie") {
$(".entry-content")
.find('h2:contains("DOWNLOAD"),h3:contains("DOWNLOAD")')
.nextUntil("pre,div")
.filter("h2")
.each((i, element) => {
var _a;
const link = $(element).find("a").attr("href");
const quality = ((_a = $(element)
.text()
.match(/\b(480p|720p|1080p|2160p)\b/i)) === null || _a === void 0 ? void 0 : _a[0]) || "";
const title = $(element).text();
if (link && !title.includes("Online")) {
links.push({
quality,
title,
directLinks: [{ link, title, type: "movie" }],
});
}
});
}
// console.log('drive meta', title, synopsis, image, imdbId, type, links);
return {
title,
synopsis,
image,
imdbId,
type,
linkList: links,
};
}
catch (err) {
console.error(err);
return {
title: "",
synopsis: "",
image: "",
imdbId: "",
type: "movie",
linkList: [],
};
}
});
};
exports.getMeta = getMeta;

View File

@@ -1,59 +1 @@
"use strict"; "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}){const{getBaseUrl:getBaseUrl,cheerio:cheerio}=providerContext;return posts({url:`${(yield getBaseUrl("kat"))+filter}/page/${page}/`,signal:signal,cheerio:cheerio})})};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,cheerio:cheerio}=providerContext;return posts({url:`${yield getBaseUrl("kat")}/page/${page}/?s=${searchQuery}`,signal:signal,cheerio:cheerio})})};function posts(_a){return __awaiter(this,arguments,void 0,function*({url:url,signal:signal,cheerio:cheerio}){try{const res=yield fetch(url,{signal:signal}),data=yield res.text(),$=cheerio.load(data),catalog=[];return $(".recent-posts").children().map((i,element)=>{const title=$(element).find("img").attr("alt"),link=$(element).find("a").attr("href"),image=$(element).find("img").attr("src");title&&link&&image&&catalog.push({title:title.replace("Download","").trim(),link:link,image:image})}),catalog}catch(err){return[]}})}exports.getSearchPosts=getSearchPosts;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getSearchPosts = exports.getPosts = void 0;
const getPosts = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ filter, page, signal, providerContext, }) {
const { getBaseUrl, cheerio } = providerContext;
const baseUrl = yield getBaseUrl("kat");
const url = `${baseUrl + filter}/page/${page}/`;
return posts({ url, signal, cheerio });
});
};
exports.getPosts = getPosts;
const getSearchPosts = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ searchQuery, page, signal, providerContext, }) {
const { getBaseUrl, cheerio } = providerContext;
const baseUrl = yield getBaseUrl("kat");
const url = `${baseUrl}/page/${page}/?s=${searchQuery}`;
return posts({ url, signal, cheerio });
});
};
exports.getSearchPosts = getSearchPosts;
function posts(_a) {
return __awaiter(this, arguments, void 0, function* ({ url, signal, cheerio, }) {
try {
const res = yield fetch(url, { signal });
const data = yield res.text();
const $ = cheerio.load(data);
const catalog = [];
$(".recent-posts")
.children()
.map((i, element) => {
const title = $(element).find("img").attr("alt");
const link = $(element).find("a").attr("href");
const image = $(element).find("img").attr("src");
if (title && link && image) {
catalog.push({
title: title.replace("Download", "").trim(),
link: link,
image: image,
});
}
});
return catalog;
}
catch (err) {
console.error("katmovies error ", err);
return [];
}
});
}

View File

@@ -1,104 +1 @@
"use strict"; "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())})};function extractKmhdLink(katlink,providerContext){return __awaiter(this,void 0,void 0,function*(){const{axios:axios}=providerContext,data=(yield axios.get(katlink)).data,hubDriveRes=data.match(/hubdrive_res:\s*"([^"]+)"/)[1];return data.match(/hubdrive_res\s*:\s*{[^}]*?link\s*:\s*"([^"]+)"/)[1]+hubDriveRes})}Object.defineProperty(exports,"__esModule",{value:!0}),exports.getStream=void 0;const getStream=function(_a){return __awaiter(this,arguments,void 0,function*({link:link,signal:signal,providerContext:providerContext}){const{axios:axios,cheerio:cheerio,extractors:extractors}=providerContext,{hubcloudExtracter:hubcloudExtracter,gdFlixExtracter:gdFlixExtracter}=extractors,streamLinks=[];try{if(link.includes("gdflix"))return yield gdFlixExtracter(link,signal);if(link.includes("kmhd")){const hubcloudLink=yield extractKmhdLink(link,providerContext);return yield hubcloudExtracter(hubcloudLink,signal)}if(link.includes("gdflix")){try{const resumeDrive=link.replace("/file","/zfile"),resumeDriveHtml=(yield axios.get(resumeDrive)).data,resumeLink=cheerio.load(resumeDriveHtml)(".btn-success").attr("href");resumeLink&&streamLinks.push({server:"ResumeCloud",link:resumeLink,type:"mkv"})}catch(err){}try{const driveres=yield axios.get(link,{timeout:1e4}),seed=cheerio.load(driveres.data)(".btn-danger").attr("href")||"",instantToken=seed.split("=")[1],InstantFromData=new FormData;InstantFromData.append("keys",instantToken);const videoSeedUrl=seed.split("/").slice(0,3).join("/")+"/api",instantLinkRes=yield fetch(videoSeedUrl,{method:"POST",body:InstantFromData,headers:{"x-token":videoSeedUrl}}),instantLinkData=yield instantLinkRes.json();if(!1===instantLinkData.error){const instantLink=instantLinkData.url;streamLinks.push({server:"Gdrive-Instant",link:instantLink,type:"mkv"})}}catch(err){}return streamLinks}return yield hubcloudExtracter(link,signal)}catch(error){return[]}})};exports.getStream=getStream;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getStream = void 0;
function extractKmhdLink(katlink, providerContext) {
return __awaiter(this, void 0, void 0, function* () {
const { axios } = providerContext;
const res = yield axios.get(katlink);
const data = res.data;
const hubDriveRes = data.match(/hubdrive_res:\s*"([^"]+)"/)[1];
const hubDriveLink = data.match(/hubdrive_res\s*:\s*{[^}]*?link\s*:\s*"([^"]+)"/)[1];
return hubDriveLink + hubDriveRes;
});
}
const getStream = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ link, signal, providerContext, }) {
const { axios, cheerio, extractors } = providerContext;
const { hubcloudExtracter, gdFlixExtracter } = extractors;
const streamLinks = [];
console.log("katGetStream", link);
try {
if (link.includes("gdflix")) {
return yield gdFlixExtracter(link, signal);
}
if (link.includes("kmhd")) {
const hubcloudLink = yield extractKmhdLink(link, providerContext);
return yield hubcloudExtracter(hubcloudLink, signal);
}
if (link.includes("gdflix")) {
// resume link
try {
const resumeDrive = link.replace("/file", "/zfile");
// console.log('resumeDrive', resumeDrive);
const resumeDriveRes = yield axios.get(resumeDrive);
const resumeDriveHtml = resumeDriveRes.data;
const $resumeDrive = cheerio.load(resumeDriveHtml);
const resumeLink = $resumeDrive(".btn-success").attr("href");
console.log("resumeLink", resumeLink);
if (resumeLink) {
streamLinks.push({
server: "ResumeCloud",
link: resumeLink,
type: "mkv",
});
}
}
catch (err) {
console.log("Resume link not found");
}
//instant link
try {
const driveres = yield axios.get(link, { timeout: 10000 });
const $drive = cheerio.load(driveres.data);
const seed = $drive(".btn-danger").attr("href") || "";
const instantToken = seed.split("=")[1];
// console.log('InstantToken', instantToken);
const InstantFromData = new FormData();
InstantFromData.append("keys", instantToken);
const videoSeedUrl = seed.split("/").slice(0, 3).join("/") + "/api";
// console.log('videoSeedUrl', videoSeedUrl);
const instantLinkRes = yield fetch(videoSeedUrl, {
method: "POST",
body: InstantFromData,
headers: {
"x-token": videoSeedUrl,
},
});
const instantLinkData = yield instantLinkRes.json();
console.log("instantLinkData", instantLinkData);
if (instantLinkData.error === false) {
const instantLink = instantLinkData.url;
streamLinks.push({
server: "Gdrive-Instant",
link: instantLink,
type: "mkv",
});
}
else {
console.log("Instant link not found", instantLinkData);
}
}
catch (err) {
console.log("Instant link not found", err);
}
return streamLinks;
}
const stereams = yield hubcloudExtracter(link, signal);
return stereams;
}
catch (error) {
console.log("katgetStream error: ", error);
return [];
}
});
};
exports.getStream = getStream;

View File

@@ -1,22 +1 @@
"use strict"; "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.genres=exports.catalog=void 0,exports.catalog=[{title:"Latest",filter:"/api/DramaList/List?type=0&sub=0&country=0&status=0&order=2"},{title:"Hollywood",filter:"/api/DramaList/List?type=4&sub=0&country=0&status=0&order=2"},{title:"Anime",filter:"/api/DramaList/List?type=3&sub=0&country=0&status=0&order=2"},{title:"K Drama",filter:"/api/DramaList/List?type=0&sub=0&country=0&status=0&order=2"}],exports.genres=[];
Object.defineProperty(exports, "__esModule", { value: true });
exports.genres = exports.catalog = void 0;
exports.catalog = [
{
title: "Latest",
filter: "/api/DramaList/List?type=0&sub=0&country=0&status=0&order=2",
},
{
title: "Hollywood",
filter: "/api/DramaList/List?type=4&sub=0&country=0&status=0&order=2",
},
{
title: "Anime",
filter: "/api/DramaList/List?type=3&sub=0&country=0&status=0&order=2",
},
{
title: "K Drama",
filter: "/api/DramaList/List?type=0&sub=0&country=0&status=0&order=2",
},
];
exports.genres = [];

61
dist/kissKh/meta.js vendored
View File

@@ -1,60 +1 @@
"use strict"; "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;try{const{axios:axios}=providerContext,data=(yield axios.get(link)).data,meta={title:data.title,synopsis:data.description,image:data.thumbnail,tags:[null===(_b=null==data?void 0:data.releaseDate)||void 0===_b?void 0:_b.split("-")[0],null==data?void 0:data.status,null==data?void 0:data.type],imdbId:"",type:data.episodesCount>1?"series":"movie"},linkList=[],subLinks=[];return null===(_c=null==data?void 0:data.episodes)||void 0===_c||_c.reverse().map(episode=>{var _a;const title="Episode "+(null==episode?void 0:episode.number),link=null===(_a=null==episode?void 0:episode.id)||void 0===_a?void 0:_a.toString();link&&title&&subLinks.push({title:title,link:link})}),linkList.push({title:meta.title,directLinks:subLinks}),Object.assign(Object.assign({},meta),{linkList:linkList})}catch(err){return{title:"",synopsis:"",image:"",imdbId:"",type:"movie",linkList:[]}}})};exports.getMeta=getMeta;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getMeta = void 0;
const getMeta = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ link, providerContext, }) {
var _b, _c;
try {
const { axios } = providerContext;
const res = yield axios.get(link);
const data = res.data;
const meta = {
title: data.title,
synopsis: data.description,
image: data.thumbnail,
tags: [(_b = data === null || data === void 0 ? void 0 : data.releaseDate) === null || _b === void 0 ? void 0 : _b.split("-")[0], data === null || data === void 0 ? void 0 : data.status, data === null || data === void 0 ? void 0 : data.type],
imdbId: "",
type: data.episodesCount > 1 ? "series" : "movie",
};
const linkList = [];
const subLinks = [];
(_c = data === null || data === void 0 ? void 0 : data.episodes) === null || _c === void 0 ? void 0 : _c.reverse().map((episode) => {
var _a;
const title = "Episode " + (episode === null || episode === void 0 ? void 0 : episode.number);
const link = (_a = episode === null || episode === void 0 ? void 0 : episode.id) === null || _a === void 0 ? void 0 : _a.toString();
if (link && title) {
subLinks.push({
title,
link,
});
}
});
linkList.push({
title: meta.title,
directLinks: subLinks,
});
return Object.assign(Object.assign({}, meta), { linkList: linkList });
}
catch (err) {
console.error(err);
return {
title: "",
synopsis: "",
image: "",
imdbId: "",
type: "movie",
linkList: [],
};
}
});
};
exports.getMeta = getMeta;

74
dist/kissKh/posts.js vendored
View File

@@ -1,73 +1 @@
"use strict"; "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}){var _b;const{getBaseUrl:getBaseUrl,axios:axios}=providerContext,baseUrl=yield getBaseUrl("kissKh"),url=`${baseUrl+filter}&type=0`;try{const data=null===(_b=(yield axios.get(url,{signal:signal})).data)||void 0===_b?void 0:_b.data,catalog=[];return null==data||data.map(element=>{const title=element.title,link=baseUrl+`/api/DramaList/Drama/${null==element?void 0:element.id}?isq=false`,image=element.thumbnail;title&&link&&image&&catalog.push({title: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,signal:signal,providerContext:providerContext}){const{getBaseUrl:getBaseUrl,axios:axios}=providerContext,baseUrl=yield getBaseUrl("kissKh"),url=`${baseUrl}/api/DramaList/Search?q=${searchQuery}&type=0`;try{const data=(yield axios.get(url,{signal:signal})).data,catalog=[];return null==data||data.map(element=>{const title=element.title,link=baseUrl+`/api/DramaList/Drama/${null==element?void 0:element.id}?isq=false`,image=element.thumbnail;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) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getSearchPosts = exports.getPosts = void 0;
const getPosts = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ filter, signal, providerContext, }) {
var _b;
const { getBaseUrl, axios } = providerContext;
const baseUrl = yield getBaseUrl("kissKh");
const url = `${baseUrl + filter}&type=0`;
try {
const res = yield axios.get(url, { signal });
const data = (_b = res.data) === null || _b === void 0 ? void 0 : _b.data;
const catalog = [];
data === null || data === void 0 ? void 0 : data.map((element) => {
const title = element.title;
const link = baseUrl + `/api/DramaList/Drama/${element === null || element === void 0 ? void 0 : element.id}?isq=false`;
const image = element.thumbnail;
if (title && link && image) {
catalog.push({
title: title,
link: link,
image: image,
});
}
});
return catalog;
}
catch (err) {
console.error("kiss error ", err);
return [];
}
});
};
exports.getPosts = getPosts;
const getSearchPosts = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ searchQuery, signal, providerContext, }) {
const { getBaseUrl, axios } = providerContext;
const baseUrl = yield getBaseUrl("kissKh");
const url = `${baseUrl}/api/DramaList/Search?q=${searchQuery}&type=0`;
try {
const res = yield axios.get(url, { signal });
const data = res.data;
const catalog = [];
data === null || data === void 0 ? void 0 : data.map((element) => {
const title = element.title;
const link = baseUrl + `/api/DramaList/Drama/${element === null || element === void 0 ? void 0 : element.id}?isq=false`;
const image = element.thumbnail;
if (title && link && image) {
catalog.push({
title: title,
link: link,
image: image,
});
}
});
return catalog;
}
catch (err) {
console.error("kiss error ", err);
return [];
}
});
};
exports.getSearchPosts = getSearchPosts;

53
dist/kissKh/stream.js vendored
View File

@@ -1,52 +1 @@
"use strict"; "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,_c,_d;try{const{axios:axios,getBaseUrl:getBaseUrl}=providerContext,streamLinks=[],subtitles=[],baseUrl=yield getBaseUrl("kissKh"),streamUrl="https://adorable-salamander-ecbb21.netlify.app/api/kisskh/video?id="+id,res=yield axios.get(streamUrl),stream=null===(_c=null===(_b=res.data)||void 0===_b?void 0:_b.source)||void 0===_c?void 0:_c.Video,subData=null===(_d=res.data)||void 0===_d?void 0:_d.subtitles;return null==subData||subData.map(sub=>{var _a;subtitles.push({title:null==sub?void 0:sub.label,language:null==sub?void 0:sub.land,type:(null===(_a=null==sub?void 0:sub.src)||void 0===_a?void 0:_a.includes(".vtt"))?"text/vtt":"application/x-subrip",uri:null==sub?void 0:sub.src})}),streamLinks.push({server:"kissKh",link:stream,type:"m3u8",subtitles:subtitles,headers:{referer:baseUrl}}),streamLinks}catch(err){return[]}})};exports.getStream=getStream;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getStream = void 0;
const getStream = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ link: id, providerContext, }) {
var _b, _c, _d;
try {
const { axios, getBaseUrl } = providerContext;
const streamLinks = [];
const subtitles = [];
const baseUrl = yield getBaseUrl("kissKh");
const streamUrl = "https://adorable-salamander-ecbb21.netlify.app/api/kisskh/video?id=" +
id;
const res = yield axios.get(streamUrl);
const stream = (_c = (_b = res.data) === null || _b === void 0 ? void 0 : _b.source) === null || _c === void 0 ? void 0 : _c.Video;
const subData = (_d = res.data) === null || _d === void 0 ? void 0 : _d.subtitles;
subData === null || subData === void 0 ? void 0 : subData.map((sub) => {
var _a;
subtitles.push({
title: sub === null || sub === void 0 ? void 0 : sub.label,
language: sub === null || sub === void 0 ? void 0 : sub.land,
type: ((_a = sub === null || sub === void 0 ? void 0 : sub.src) === null || _a === void 0 ? void 0 : _a.includes(".vtt")) ? "text/vtt" : "application/x-subrip",
uri: sub === null || sub === void 0 ? void 0 : sub.src,
});
});
streamLinks.push({
server: "kissKh",
link: stream,
type: "m3u8",
subtitles,
headers: {
referer: baseUrl,
},
});
return streamLinks;
}
catch (err) {
console.error(err);
return [];
}
});
};
exports.getStream = getStream;

View File

@@ -1,103 +1 @@
"use strict"; "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.genres=exports.catalog=void 0,exports.catalog=[{title:"New",filter:""},{title:"Netflix",filter:"category/web-series/netflix"},{title:"Amazon Prime",filter:"category/web-series/amazon-prime-video"},{title:"4K Movies",filter:"category/movies-by-quality/2160p"}],exports.genres=[{title:"Action",filter:"category/movies-by-genres/action/"},{title:"Adventure",filter:"category/movies-by-genres/adventure/"},{title:"Animation",filter:"category/movies-by-genres/animation/"},{title:"Biography",filter:"category/movies-by-genres/biography/"},{title:"Comedy",filter:"category/movies-by-genres/comedy/"},{title:"Crime",filter:"category/movies-by-genres/crime/"},{title:"Documentary",filter:"category/movies-by-genres/documentary/"},{title:"Drama",filter:"category/movies-by-genres/drama/"},{title:"Family",filter:"category/movies-by-genres/family/"},{title:"Fantasy",filter:"category/movies-by-genres/fantasy/"},{title:"History",filter:"category/movies-by-genres/history/"},{title:"Horror",filter:"category/movies-by-genres/horror/"},{title:"Music",filter:"category/movies-by-genres/music/"},{title:"Mystery",filter:"category/movies-by-genres/mystery/"},{title:"Romance",filter:"category/movies-by-genres/romance/"},{title:"Sci-Fi",filter:"category/movies-by-genres/sci-fi/"},{title:"Sport",filter:"category/movies-by-genres/sport/"},{title:"Thriller",filter:"category/movies-by-genres/thriller/"},{title:"War",filter:"category/movies-by-genres/war/"},{title:"Western",filter:"category/movies-by-genres/western/"}];
Object.defineProperty(exports, "__esModule", { value: true });
exports.genres = exports.catalog = void 0;
exports.catalog = [
{
title: "New",
filter: "",
},
{
title: "Netflix",
filter: "category/web-series/netflix",
},
{
title: "Amazon Prime",
filter: "category/web-series/amazon-prime-video",
},
{
title: "4K Movies",
filter: "category/movies-by-quality/2160p",
},
];
exports.genres = [
{
title: "Action",
filter: "category/movies-by-genres/action/",
},
{
title: "Adventure",
filter: "category/movies-by-genres/adventure/",
},
{
title: "Animation",
filter: "category/movies-by-genres/animation/",
},
{
title: "Biography",
filter: "category/movies-by-genres/biography/",
},
{
title: "Comedy",
filter: "category/movies-by-genres/comedy/",
},
{
title: "Crime",
filter: "category/movies-by-genres/crime/",
},
{
title: "Documentary",
filter: "category/movies-by-genres/documentary/",
},
{
title: "Drama",
filter: "category/movies-by-genres/drama/",
},
{
title: "Family",
filter: "category/movies-by-genres/family/",
},
{
title: "Fantasy",
filter: "category/movies-by-genres/fantasy/",
},
{
title: "History",
filter: "category/movies-by-genres/history/",
},
{
title: "Horror",
filter: "category/movies-by-genres/horror/",
},
{
title: "Music",
filter: "category/movies-by-genres/music/",
},
{
title: "Mystery",
filter: "category/movies-by-genres/mystery/",
},
{
title: "Romance",
filter: "category/movies-by-genres/romance/",
},
{
title: "Sci-Fi",
filter: "category/movies-by-genres/sci-fi/",
},
{
title: "Sport",
filter: "category/movies-by-genres/sport/",
},
{
title: "Thriller",
filter: "category/movies-by-genres/thriller/",
},
{
title: "War",
filter: "category/movies-by-genres/war/",
},
{
title: "Western",
filter: "category/movies-by-genres/western/",
},
];

View File

@@ -1,45 +1 @@
"use strict"; "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}){const{axios:axios,cheerio:cheerio,commonHeaders:headers}=providerContext;try{const res=yield axios.get(url,{headers:headers}),$=cheerio.load(res.data),container=$(".entry-content,.entry-inner");$(".unili-content,.code-block-1").remove();const episodes=[];return container.find("h4").each((index,element)=>{const el=$(element),title=el.text().replace(/-/g,"").replace(/:/g,""),link=el.next("p").find('.btn-outline[style="background:linear-gradient(135deg,#ed0b0b,#f2d152); color: white;"]').parent().attr("href");title&&link&&episodes.push({title:title,link:link})}),episodes}catch(err){return[]}})};exports.getEpisodes=getEpisodes;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getEpisodes = void 0;
const getEpisodes = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ url, providerContext, }) {
const { axios, cheerio, commonHeaders: headers } = providerContext;
console.log("getEpisodeLinks", url);
try {
const res = yield axios.get(url, { headers });
const $ = cheerio.load(res.data);
const container = $(".entry-content,.entry-inner");
$(".unili-content,.code-block-1").remove();
const episodes = [];
container.find("h4").each((index, element) => {
const el = $(element);
const title = el.text().replace(/-/g, "").replace(/:/g, "");
const link = el
.next("p")
.find('.btn-outline[style="background:linear-gradient(135deg,#ed0b0b,#f2d152); color: white;"]')
.parent()
.attr("href");
if (title && link) {
episodes.push({ title, link });
}
});
// console.log(episodes);
return episodes;
}
catch (err) {
console.log("getEpisodeLinks error: ");
// console.error(err);
return [];
}
});
};
exports.getEpisodes = getEpisodes;

128
dist/luxMovies/meta.js vendored

File diff suppressed because one or more lines are too long

View File

@@ -1,85 +1 @@
"use strict"; "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:"text/html,application/xhtml+xml,application/xml;q=0.9,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:"ext_name=ojplmecpdpgccookcobabopnaifgidhf; cf_clearance=lDWFqLsHL5LZ.VpfxQRtHY2_mpXRuq3OFTbVDKNIZGw-1752051595-1.2.1.1-VZ2S8yUrcCuOMLUgWfNv9a1LrtuhUKEd.uPN1Au_9tuTFYLra7ugoFBYKfsunvzrBOlYSYM0q8J7vpw.JhGZH0RO6MlaVBKH5olmoryhd6s11LXg7ZF1Ld_NedYoA7uKk_SBhbb1CCsj11S52U9VUve7twrLEjILmw3MEURU1eGqOOi3YGxtGgpQBNYgfnkJCoRkLB_6vQESw4RcIvO1j1BHMuyMVEkbn7sBtLEX52w","Upgrade-Insecure-Requests":"1","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0"},getPosts=_a=>__awaiter(void 0,[_a],void 0,function*({filter:filter,page:page,providerValue:providerValue,signal:signal,providerContext:providerContext}){const{getBaseUrl:getBaseUrl}=providerContext;return posts(`${yield getBaseUrl("lux")}/${filter}/page/${page}/`,signal,providerContext)});exports.getPosts=getPosts;const getSearchPosts=_a=>__awaiter(void 0,[_a],void 0,function*({searchQuery:searchQuery,page:page,providerValue:providerValue,signal:signal,providerContext:providerContext}){const{getBaseUrl:getBaseUrl}=providerContext,baseUrl=yield getBaseUrl("lux");return posts(1===page?`${baseUrl}/?s=${searchQuery}`:`${baseUrl}/page/${page}/?s=${searchQuery}`,signal,providerContext)});function posts(url,signal,providerContext){return __awaiter(this,void 0,void 0,function*(){var _a,_b;try{const{axios:axios,cheerio:cheerio}=providerContext,urlRes=yield axios.get(url,{headers:Object.assign(Object.assign({},headers),{Referer:url}),signal:signal}),$=cheerio.load(urlRes.data),posts=[];return null===(_b=null===(_a=$(".blog-items"))||void 0===_a?void 0:_a.children("article"))||void 0===_b||_b.each((index,element)=>{var _a,_b,_c,_d,_e,_f,_g,_h,_j,_k;const post={title:(null===(_e=null===(_d=null===(_c=null===(_b=null===(_a=$(element))||void 0===_a?void 0:_a.find("a"))||void 0===_b?void 0:_b.attr("title"))||void 0===_c?void 0:_c.replace("Download",""))||void 0===_d?void 0:_d.match(/^(.*?)\s*\((\d{4})\)|^(.*?)\s*\((Season \d+)\)/))||void 0===_e?void 0:_e[0])||(null===(_h=null===(_g=null===(_f=$(element))||void 0===_f?void 0:_f.find("a"))||void 0===_g?void 0:_g.attr("title"))||void 0===_h?void 0:_h.replace("Download",""))||"",link:(null===(_k=null===(_j=$(element))||void 0===_j?void 0:_j.find("a"))||void 0===_k?void 0:_k.attr("href"))||"",image:$(element).find("a").find("img").attr("data-lazy-src")||$(element).find("a").find("img").attr("data-src")||$(element).find("a").find("img").attr("src")||""};post.image.startsWith("//")&&(post.image="https:"+post.image),posts.push(post)}),posts}catch(error){return[]}})}exports.getSearchPosts=getSearchPosts;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getSearchPosts = exports.getPosts = void 0;
const headers = {
Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,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: "ext_name=ojplmecpdpgccookcobabopnaifgidhf; cf_clearance=lDWFqLsHL5LZ.VpfxQRtHY2_mpXRuq3OFTbVDKNIZGw-1752051595-1.2.1.1-VZ2S8yUrcCuOMLUgWfNv9a1LrtuhUKEd.uPN1Au_9tuTFYLra7ugoFBYKfsunvzrBOlYSYM0q8J7vpw.JhGZH0RO6MlaVBKH5olmoryhd6s11LXg7ZF1Ld_NedYoA7uKk_SBhbb1CCsj11S52U9VUve7twrLEjILmw3MEURU1eGqOOi3YGxtGgpQBNYgfnkJCoRkLB_6vQESw4RcIvO1j1BHMuyMVEkbn7sBtLEX52w",
"Upgrade-Insecure-Requests": "1",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0",
};
const getPosts = (_a) => __awaiter(void 0, [_a], void 0, function* ({ filter, page, providerValue, signal, providerContext, }) {
const { getBaseUrl } = providerContext;
const baseUrl = yield getBaseUrl("lux");
console.log("vegaGetPosts baseUrl:", providerValue, baseUrl);
const url = `${baseUrl}/${filter}/page/${page}/`;
console.log("lux url:", url);
return posts(url, signal, providerContext);
});
exports.getPosts = getPosts;
const getSearchPosts = (_a) => __awaiter(void 0, [_a], void 0, function* ({ searchQuery, page, providerValue, signal, providerContext, }) {
const { getBaseUrl } = providerContext;
const baseUrl = yield getBaseUrl("lux");
console.log("vegaGetPosts baseUrl:", providerValue, baseUrl);
const url = page === 1
? `${baseUrl}/?s=${searchQuery}`
: `${baseUrl}/page/${page}/?s=${searchQuery}`;
console.log("lux url:", url);
return posts(url, signal, providerContext);
});
exports.getSearchPosts = getSearchPosts;
function posts(url, signal, providerContext) {
return __awaiter(this, void 0, void 0, function* () {
var _a, _b;
try {
const { axios, cheerio } = providerContext;
const urlRes = yield axios.get(url, {
headers: Object.assign(Object.assign({}, headers), { Referer: url }),
signal,
});
const $ = cheerio.load(urlRes.data);
const posts = [];
(_b = (_a = $(".blog-items")) === null || _a === void 0 ? void 0 : _a.children("article")) === null || _b === void 0 ? void 0 : _b.each((index, element) => {
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
const post = {
title: ((_e = (_d = (_c = (_b = (_a = $(element)) === null || _a === void 0 ? void 0 : _a.find("a")) === null || _b === void 0 ? void 0 : _b.attr("title")) === null || _c === void 0 ? void 0 : _c.replace("Download", "")) === null || _d === void 0 ? void 0 : _d.match(/^(.*?)\s*\((\d{4})\)|^(.*?)\s*\((Season \d+)\)/)) === null || _e === void 0 ? void 0 : _e[0]) ||
((_h = (_g = (_f = $(element)) === null || _f === void 0 ? void 0 : _f.find("a")) === null || _g === void 0 ? void 0 : _g.attr("title")) === null || _h === void 0 ? void 0 : _h.replace("Download", "")) ||
"",
link: ((_k = (_j = $(element)) === null || _j === void 0 ? void 0 : _j.find("a")) === null || _k === void 0 ? void 0 : _k.attr("href")) || "",
image: $(element).find("a").find("img").attr("data-lazy-src") ||
$(element).find("a").find("img").attr("data-src") ||
$(element).find("a").find("img").attr("src") ||
"",
};
if (post.image.startsWith("//")) {
post.image = "https:" + post.image;
}
posts.push(post);
});
// console.log(posts);
return posts;
}
catch (error) {
console.error("vegaGetPosts error:", error);
return [];
}
});
}

View File

@@ -1,103 +1 @@
"use strict"; "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"),[]}})}
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
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, type, signal, providerContext, }) {
var _b, _c, _d, _e;
const { axios, cheerio, extractors } = providerContext;
const { hubcloudExtracter } = extractors;
try {
const streamLinks = [];
console.log("dotlink", link);
if (type === "movie") {
// vlink
const dotlinkRes = yield axios(`${link}`, { headers });
const dotlinkText = dotlinkRes.data;
// console.log('dotlinkText', dotlinkText);
const vlink = dotlinkText.match(/<a\s+href="([^"]*cloud\.[^"]*)"/i) || [];
// console.log('vLink', vlink[1]);
link = vlink[1];
// filepress link
try {
const $ = cheerio.load(dotlinkText);
const filepressLink = $('.btn.btn-sm.btn-outline[style="background:linear-gradient(135deg,rgb(252,185,0) 0%,rgb(0,0,0)); color: #fdf8f2;"]')
.parent()
.attr("href");
// console.log('filepressLink', filepressLink);
const filepressID = filepressLink === null || filepressLink === void 0 ? void 0 : filepressLink.split("/").pop();
const filepressBaseUrl = filepressLink === null || filepressLink === void 0 ? void 0 : filepressLink.split("/").slice(0, -2).join("/");
// console.log('filepressID', filepressID);
// console.log('filepressBaseUrl', filepressBaseUrl);
const filepressTokenRes = yield axios.post(filepressBaseUrl + "/api/file/downlaod/", {
id: filepressID,
method: "indexDownlaod",
captchaValue: null,
}, {
headers: {
"Content-Type": "application/json",
Referer: filepressBaseUrl,
},
});
// console.log('filepressTokenRes', filepressTokenRes.data);
if ((_b = filepressTokenRes.data) === null || _b === void 0 ? void 0 : _b.status) {
const filepressToken = (_c = filepressTokenRes.data) === null || _c === void 0 ? void 0 : _c.data;
const filepressStreamLink = yield axios.post(filepressBaseUrl + "/api/file/downlaod2/", {
id: filepressToken,
method: "indexDownlaod",
captchaValue: null,
}, {
headers: {
"Content-Type": "application/json",
Referer: filepressBaseUrl,
},
});
// console.log('filepressStreamLink', filepressStreamLink.data);
streamLinks.push({
server: "filepress",
link: (_e = (_d = filepressStreamLink.data) === null || _d === void 0 ? void 0 : _d.data) === null || _e === void 0 ? void 0 : _e[0],
type: "mkv",
});
}
}
catch (error) {
console.log("filepress error: ");
// console.error(error);
}
}
return yield hubcloudExtracter(link, signal);
}
catch (error) {
console.log("getStream error: ", error);
if (error.message.includes("Aborted")) {
}
else {
}
return [];
}
});
}

88
dist/mod/catalog.js vendored
View File

@@ -1,87 +1 @@
"use strict"; "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.genres=exports.catalog=void 0,exports.catalog=[{title:"Latest",filter:""},{title:"Netflix",filter:"/ott/netflix"},{title:"HBO Max",filter:"/ott/hbo-max"},{title:"Amazon Prime",filter:"/ott/amazon-prime-video"}],exports.genres=[{title:"Apple TV+",filter:"/ott/apple-tv"},{title:"Disney+",filter:"/ott/disney-plus"},{title:"Hulu",filter:"/ott/hulu"},{title:"Crunchyroll",filter:"/ott/crunchyroll"},{title:"Action",filter:"/movies-by-genre/action/"},{title:"Adventure",filter:"/movies-by-genre/adventure/"},{title:"Animation",filter:"/movies-by-genre/animated/"},{title:"Comedy",filter:"/movies-by-genre/comedy/"},{title:"Crime",filter:"/movies-by-genre/crime/"},{title:"Documentary",filter:"/movies-by-genre/documentary/"},{title:"Fantasy",filter:"/movies-by-genre/fantasy/"},{title:"Horror",filter:"/movies-by-genre/horror/"},{title:"Mystery",filter:"/movies-by-genre/mystery/"},{title:"Romance",filter:"/movies-by-genre/romance/"},{title:"Thriller",filter:"/movies-by-genre/thriller/"},{title:"Sci-Fi",filter:"/movies-by-genre/sci-fi/"}];
Object.defineProperty(exports, "__esModule", { value: true });
exports.genres = exports.catalog = void 0;
exports.catalog = [
{
title: "Latest",
filter: "",
},
{
title: "Netflix",
filter: "/ott/netflix",
},
{
title: "HBO Max",
filter: "/ott/hbo-max",
},
{
title: "Amazon Prime",
filter: "/ott/amazon-prime-video",
},
];
exports.genres = [
{
title: "Apple TV+",
filter: "/ott/apple-tv",
},
{
title: "Disney+",
filter: "/ott/disney-plus",
},
{
title: "Hulu",
filter: "/ott/hulu",
},
{
title: "Crunchyroll",
filter: "/ott/crunchyroll",
},
{
title: "Action",
filter: "/movies-by-genre/action/",
},
{
title: "Adventure",
filter: "/movies-by-genre/adventure/",
},
{
title: "Animation",
filter: "/movies-by-genre/animated/",
},
{
title: "Comedy",
filter: "/movies-by-genre/comedy/",
},
{
title: "Crime",
filter: "/movies-by-genre/crime/",
},
{
title: "Documentary",
filter: "/movies-by-genre/documentary/",
},
{
title: "Fantasy",
filter: "/movies-by-genre/fantasy/",
},
{
title: "Horror",
filter: "/movies-by-genre/horror/",
},
{
title: "Mystery",
filter: "/movies-by-genre/mystery/",
},
{
title: "Romance",
filter: "/movies-by-genre/romance/",
},
{
title: "Thriller",
filter: "/movies-by-genre/thriller/",
},
{
title: "Sci-Fi",
filter: "/movies-by-genre/sci-fi/",
},
];

61
dist/mod/episodes.js vendored
View File

@@ -1,60 +1 @@
"use strict"; "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{url.includes("url=")&&(url=atob(url.split("url=")[1]));const html=(yield axios.get(url)).data;let $=cheerio.load(html);if(url.includes("url=")){const newUrl=null===(_b=$("meta[http-equiv='refresh']").attr("content"))||void 0===_b?void 0:_b.split("url=")[1],html2=(yield axios.get(newUrl||url)).data;$=cheerio.load(html2)}const episodeLinks=[];return $("h3,h4").map((i,element)=>{const seriesTitle=$(element).text(),episodesLink=$(element).find("a").attr("href");episodesLink&&"#"!==episodesLink&&episodeLinks.push({title:seriesTitle.trim()||"No title found",link:episodesLink||""})}),$("a.maxbutton").map((i,element)=>{const seriesTitle=$(element).children("span").text(),episodesLink=$(element).attr("href");episodesLink&&"#"!==episodesLink&&episodeLinks.push({title:seriesTitle.trim()||"No title found",link:episodesLink||""})}),episodeLinks}catch(err){return[]}})};exports.getEpisodes=getEpisodes;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getEpisodes = void 0;
const getEpisodes = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ url, providerContext, }) {
var _b;
const { axios, cheerio } = providerContext;
try {
if (url.includes("url=")) {
url = atob(url.split("url=")[1]);
}
const res = yield axios.get(url);
const html = res.data;
let $ = cheerio.load(html);
if (url.includes("url=")) {
const newUrl = (_b = $("meta[http-equiv='refresh']")
.attr("content")) === null || _b === void 0 ? void 0 : _b.split("url=")[1];
const res2 = yield axios.get(newUrl || url);
const html2 = res2.data;
$ = cheerio.load(html2);
}
const episodeLinks = [];
$("h3,h4").map((i, element) => {
const seriesTitle = $(element).text();
const episodesLink = $(element).find("a").attr("href");
if (episodesLink && episodesLink !== "#") {
episodeLinks.push({
title: seriesTitle.trim() || "No title found",
link: episodesLink || "",
});
}
});
$("a.maxbutton").map((i, element) => {
const seriesTitle = $(element).children("span").text();
const episodesLink = $(element).attr("href");
if (episodesLink && episodesLink !== "#") {
episodeLinks.push({
title: seriesTitle.trim() || "No title found",
link: episodesLink || "",
});
}
});
return episodeLinks;
}
catch (err) {
console.error(err);
return [];
}
});
};
exports.getEpisodes = getEpisodes;

76
dist/mod/meta.js vendored
View File

@@ -1,75 +1 @@
"use strict"; "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;try{const{axios:axios,cheerio:cheerio}=providerContext,url=link,data=(yield axios.get(url)).data,$=cheerio.load(data),meta={title:$(".imdbwp__title").text(),synopsis:$(".imdbwp__teaser").text(),image:$(".imdbwp__thumb").find("img").attr("src")||"",imdbId:(null===(_b=$(".imdbwp__link").attr("href"))||void 0===_b?void 0:_b.split("/")[4])||"",type:$(".thecontent").text().toLocaleLowerCase().includes("season")?"series":"movie"},links=[];return $("h3,h4").map((i,element)=>{var _a;const seriesTitle=$(element).text(),episodesLink=$(element).next("p").find(".maxbutton-episode-links,.maxbutton-g-drive,.maxbutton-af-download").attr("href"),movieLink=$(element).next("p").find(".maxbutton-download-links").attr("href");(movieLink||episodesLink&&"javascript:void(0);"!==episodesLink)&&links.push({title:seriesTitle.replace("Download ","").trim()||"Download",episodesLink:episodesLink||"",directLinks:movieLink?[{link:movieLink,title:"Movie",type:"movie"}]:[],quality:(null===(_a=null==seriesTitle?void 0:seriesTitle.match(/\d+p\b/))||void 0===_a?void 0:_a[0])||""})}),Object.assign(Object.assign({},meta),{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) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getMeta = void 0;
const getMeta = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ link, providerContext, }) {
var _b;
try {
const { axios, cheerio } = providerContext;
const url = link;
const res = yield axios.get(url);
const data = res.data;
const $ = cheerio.load(data);
const meta = {
title: $(".imdbwp__title").text(),
synopsis: $(".imdbwp__teaser").text(),
image: $(".imdbwp__thumb").find("img").attr("src") || "",
imdbId: ((_b = $(".imdbwp__link").attr("href")) === null || _b === void 0 ? void 0 : _b.split("/")[4]) || "",
type: $(".thecontent").text().toLocaleLowerCase().includes("season")
? "series"
: "movie",
};
const links = [];
$("h3,h4").map((i, element) => {
var _a;
const seriesTitle = $(element).text();
// const batchZipLink = $(element)
// .next("p")
// .find(".maxbutton-batch-zip,.maxbutton-zip-download")
// .attr("href");
const episodesLink = $(element)
.next("p")
.find(".maxbutton-episode-links,.maxbutton-g-drive,.maxbutton-af-download")
.attr("href");
const movieLink = $(element)
.next("p")
.find(".maxbutton-download-links")
.attr("href");
if (movieLink ||
(episodesLink && episodesLink !== "javascript:void(0);")) {
links.push({
title: seriesTitle.replace("Download ", "").trim() || "Download",
episodesLink: episodesLink || "",
directLinks: movieLink
? [{ link: movieLink, title: "Movie", type: "movie" }]
: [],
quality: ((_a = seriesTitle === null || seriesTitle === void 0 ? void 0 : seriesTitle.match(/\d+p\b/)) === null || _a === void 0 ? void 0 : _a[0]) || "",
});
}
});
// console.log('mod meta', links);
return Object.assign(Object.assign({}, meta), { linkList: links });
}
catch (err) {
console.error(err);
return {
title: "",
synopsis: "",
image: "",
imdbId: "",
type: "movie",
linkList: [],
};
}
});
};
exports.getMeta = getMeta;

60
dist/mod/posts.js vendored
View File

@@ -1,59 +1 @@
"use strict"; "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}){const{getBaseUrl:getBaseUrl,axios:axios,cheerio:cheerio}=providerContext;return posts({url:`${(yield getBaseUrl("Moviesmod"))+filter}/page/${page}/`,signal:signal,axios:axios,cheerio:cheerio})})};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,axios:axios,cheerio:cheerio}=providerContext;return posts({url:`${yield getBaseUrl("Moviesmod")}/search/${searchQuery}/page/${page}/`,signal:signal,axios:axios,cheerio:cheerio})})};function posts(_a){return __awaiter(this,arguments,void 0,function*({url:url,signal:signal,axios:axios,cheerio:cheerio}){try{const data=(yield axios.get(url,{signal:signal})).data,$=cheerio.load(data),catalog=[];return $(".post-cards").find("article").map((i,element)=>{const title=$(element).find("a").attr("title"),link=$(element).find("a").attr("href"),image=$(element).find("img").attr("src");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) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getSearchPosts = exports.getPosts = void 0;
const getPosts = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ filter, page, signal, providerContext, }) {
const { getBaseUrl, axios, cheerio } = providerContext;
const baseUrl = yield getBaseUrl("Moviesmod");
const url = `${baseUrl + filter}/page/${page}/`;
return posts({ url, signal, axios, cheerio });
});
};
exports.getPosts = getPosts;
const getSearchPosts = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ searchQuery, page, signal, providerContext, }) {
const { getBaseUrl, axios, cheerio } = providerContext;
const baseUrl = yield getBaseUrl("Moviesmod");
const url = `${baseUrl}/search/${searchQuery}/page/${page}/`;
return posts({ url, signal, axios, cheerio });
});
};
exports.getSearchPosts = getSearchPosts;
function posts(_a) {
return __awaiter(this, arguments, void 0, function* ({ url, signal, axios, cheerio, }) {
try {
const res = yield axios.get(url, { signal });
const data = res.data;
const $ = cheerio.load(data);
const catalog = [];
$(".post-cards")
.find("article")
.map((i, element) => {
const title = $(element).find("a").attr("title");
const link = $(element).find("a").attr("href");
const image = $(element).find("img").attr("src");
if (title && link && image) {
catalog.push({
title: title,
link: link,
image: image,
});
}
});
return catalog;
}
catch (err) {
console.error("modGetPosts error ", err);
return [];
}
});
}

275
dist/mod/stream.js vendored

File diff suppressed because one or more lines are too long

View File

@@ -1,97 +1 @@
"use strict"; "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.mpGetStream=void 0;const mpGetStream=function(_a){return __awaiter(this,arguments,void 0,function*({link:id,type:type,providerContext:providerContext}){var _b,_c;try{const{getBaseUrl:getBaseUrl,cheerio:cheerio}=providerContext,streams=[],{season:season,episode:episode,tmdbId:tmdbId}=JSON.parse(id),baseUrl=yield getBaseUrl("moviesapi"),link="movie"===type?`${baseUrl}/movie/${tmdbId}`:`${baseUrl}/tv/${tmdbId}-${season}-${episode}`,res=yield fetch(link,{headers:{referer:baseUrl}}),baseData=yield res.text(),embededUrl=cheerio.load(baseData)("iframe").attr("src")||"",response=yield fetch(embededUrl,{credentials:"omit",headers:{"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:101.0) Gecko/20100101 Firefox/101.0",Accept:"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8","Accept-Language":"en-US,en;q=0.5","Alt-Used":"w1.moviesapi.club","Upgrade-Insecure-Requests":"1","Sec-Fetch-Dest":"document","Sec-Fetch-Mode":"navigate","Sec-Fetch-Site":"none","Sec-Fetch-User":"?1",Pragma:"no-cache","Cache-Control":"no-cache",referer:baseUrl},referrer:baseUrl,method:"GET",mode:"cors"}),contents=(null===(_b=(yield response.text()).match(/const\s+Encrypted\s*=\s*['"]({.*})['"]/))||void 0===_b?void 0:_b[1])||"";if(embededUrl){const res2=yield fetch("https://ext.8man.me/api/decrypt?passphrase==JV[t}{trEV=Ilh5",{method:"POST",body:contents}),finalData=yield res2.json(),subtitle=null===(_c=null==finalData?void 0:finalData.subtitles)||void 0===_c?void 0:_c.map(sub=>{var _a;return{title:(null==sub?void 0:sub.label)||"Unknown",language:null==sub?void 0:sub.label,type:(null===(_a=null==sub?void 0:sub.file)||void 0===_a?void 0:_a.includes(".vtt"))?"text/vtt":"application/x-subrip",uri:null==sub?void 0:sub.file}});streams.push({server:"vidstreaming ",type:"m3u8",subtitles:subtitle,link:null==finalData?void 0:finalData.videoUrl,headers:{"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:101.0) Gecko/20100101 Firefox/101.0",Referer:baseUrl,Origin:baseUrl,Accept:"*/*","Accept-Language":"en-US,en;q=0.5","Sec-Fetch-Dest":"empty","Sec-Fetch-Mode":"cors","Sec-Fetch-Site":"cross-site",Pragma:"no-cache","Cache-Control":"no-cache"}})}return streams}catch(err){return[]}})};exports.mpGetStream=mpGetStream;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.mpGetStream = void 0;
const mpGetStream = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ link: id, type, providerContext, }) {
var _b, _c;
try {
const { getBaseUrl, cheerio } = providerContext;
const streams = [];
const { season, episode, tmdbId } = JSON.parse(id);
const baseUrl = yield getBaseUrl("moviesapi");
const link = type === "movie"
? `${baseUrl}/movie/${tmdbId}`
: `${baseUrl}/tv/${tmdbId}-${season}-${episode}`;
const res = yield fetch(link, {
headers: {
referer: baseUrl,
},
});
const baseData = yield res.text();
const $ = cheerio.load(baseData);
const embededUrl = $("iframe").attr("src") || "";
const response = yield fetch(embededUrl, {
credentials: "omit",
headers: {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:101.0) Gecko/20100101 Firefox/101.0",
Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
"Accept-Language": "en-US,en;q=0.5",
"Alt-Used": "w1.moviesapi.club",
"Upgrade-Insecure-Requests": "1",
"Sec-Fetch-Dest": "document",
"Sec-Fetch-Mode": "navigate",
"Sec-Fetch-Site": "none",
"Sec-Fetch-User": "?1",
Pragma: "no-cache",
"Cache-Control": "no-cache",
referer: baseUrl,
},
referrer: baseUrl,
method: "GET",
mode: "cors",
});
const data2 = yield response.text();
// Extract the encrypted content
const contents = ((_b = data2.match(/const\s+Encrypted\s*=\s*['"]({.*})['"]/)) === null || _b === void 0 ? void 0 : _b[1]) || "";
if (embededUrl) {
const res2 = yield fetch("https://ext.8man.me/api/decrypt?passphrase==JV[t}{trEV=Ilh5", {
method: "POST",
body: contents,
});
const finalData = yield res2.json();
const subtitle = (_c = finalData === null || finalData === void 0 ? void 0 : finalData.subtitles) === null || _c === void 0 ? void 0 : _c.map((sub) => {
var _a;
return ({
title: (sub === null || sub === void 0 ? void 0 : sub.label) || "Unknown",
language: sub === null || sub === void 0 ? void 0 : sub.label,
type: ((_a = sub === null || sub === void 0 ? void 0 : sub.file) === null || _a === void 0 ? void 0 : _a.includes(".vtt")) ? "text/vtt" : "application/x-subrip",
uri: sub === null || sub === void 0 ? void 0 : sub.file,
});
});
streams.push({
server: "vidstreaming ",
type: "m3u8",
subtitles: subtitle,
link: finalData === null || finalData === void 0 ? void 0 : finalData.videoUrl,
headers: {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:101.0) Gecko/20100101 Firefox/101.0",
Referer: baseUrl,
Origin: baseUrl,
Accept: "*/*",
"Accept-Language": "en-US,en;q=0.5",
"Sec-Fetch-Dest": "empty",
"Sec-Fetch-Mode": "cors",
"Sec-Fetch-Site": "cross-site",
Pragma: "no-cache",
"Cache-Control": "no-cache",
},
});
}
return streams;
}
catch (err) {
console.error(err);
return [];
}
});
};
exports.mpGetStream = mpGetStream;

View File

@@ -1,22 +1 @@
"use strict"; "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.genres=exports.catalog=void 0,exports.catalog=[{title:"Telugu Movies",filter:"/category/Telugu-(2025)-Movies.html"},{title:"Tamil Movies",filter:"/category/Tamil-(2025)-Movies.html"},{title:"Hollywood Telugu Dubbed",filter:"/category/Telugu-Dubbed-Hollywood-Movies-Complete-Set.html"},{title:"Web Series",filter:"/category/Telugu-Web-Series.html"}],exports.genres=[];
Object.defineProperty(exports, "__esModule", { value: true });
exports.genres = exports.catalog = void 0;
exports.catalog = [
{
title: "Telugu Movies",
filter: "/category/Telugu-(2025)-Movies.html",
},
{
title: "Tamil Movies",
filter: "/category/Tamil-(2025)-Movies.html",
},
{
title: "Hollywood Telugu Dubbed",
filter: "/category/Telugu-Dubbed-Hollywood-Movies-Complete-Set.html",
},
{
title: "Web Series",
filter: "/category/Telugu-Web-Series.html",
},
];
exports.genres = [];

View File

@@ -1,46 +1 @@
"use strict"; "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}){const{axios:axios,cheerio:cheerio,getBaseUrl:getBaseUrl}=providerContext;try{const res=yield axios.get(url),baseUrl=yield getBaseUrl("moviezwap"),html=res.data,$=cheerio.load(html),episodeLinks=[];return $('a[href*="download.php?file="], a[href*="dwload.php?file="]').each((i,el)=>{var _a;const downloadPage=(null===(_a=$(el).attr("href"))||void 0===_a?void 0:_a.replace("dwload.php","download.php"))||"";let text=$(el).text().trim();text.includes("Download page")&&(text="Play"),downloadPage&&text&&episodeLinks.push({title:text,link:baseUrl+downloadPage})}),episodeLinks}catch(err){return[]}})};exports.getEpisodes=getEpisodes;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getEpisodes = void 0;
const getEpisodes = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ url, providerContext, }) {
const { axios, cheerio, getBaseUrl } = providerContext;
try {
const res = yield axios.get(url);
const baseUrl = yield getBaseUrl("moviezwap");
const html = res.data;
const $ = cheerio.load(html);
const episodeLinks = [];
$('a[href*="download.php?file="], a[href*="dwload.php?file="]').each((i, el) => {
var _a;
const downloadPage = ((_a = $(el).attr("href")) === null || _a === void 0 ? void 0 : _a.replace("dwload.php", "download.php")) || "";
let text = $(el).text().trim();
if (text.includes("Download page")) {
// Remove "Download" from the text
text = "Play";
}
if (downloadPage && text) {
// Only add links with quality in text
episodeLinks.push({
title: text,
link: baseUrl + downloadPage,
});
}
});
return episodeLinks;
}
catch (err) {
console.error(err);
return [];
}
});
};
exports.getEpisodes = getEpisodes;

107
dist/moviezwap/meta.js vendored
View File

@@ -1,106 +1 @@
"use strict"; "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}){try{const{axios:axios,cheerio:cheerio,getBaseUrl:getBaseUrl}=providerContext,baseUrl=yield getBaseUrl("moviezwap"),url=link.startsWith("http")?link:`${baseUrl}${link}`,data=(yield axios.get(url)).data,$=cheerio.load(data);let image=$('img[width="260"]').attr("src")||"";image&&!image.startsWith("http")&&(image=baseUrl+image);const tags=$("font[color='steelblue']").map((i,el)=>$(el).text().trim()).get().slice(0,2),title=$("title").text().replace(" - MoviezWap","").trim()||"";let synopsis="",imdbId="",type="movie",infoRows=[];$("td:contains('Movie Information')").parent().nextAll("tr").each((i,el)=>{const tds=$(el).find("td");if(2===tds.length){const key=tds.eq(0).text().trim(),value=tds.eq(1).text().trim();infoRows.push(`${key}: ${value}`),key.toLowerCase().includes("plot")&&(synopsis=value),key.toLowerCase().includes("imdb")&&(imdbId=value)}}),synopsis||(synopsis=$("p:contains('plot')").text().trim());const links=[];return $('a[href*="download.php?file="], a[href*="dwload.php?file="]').each((i,el)=>{var _a;const downloadPage=(null===(_a=$(el).attr("href"))||void 0===_a?void 0:_a.replace("dwload.php","download.php"))||"",text=$(el).text().trim();downloadPage&&/\d+p/i.test(text)&&links.push({title:text,directLinks:[{title:"Movie",link:baseUrl+downloadPage}]})}),$("img[src*='/images/play.png']").each((i,el)=>{const downloadPage=$(el).siblings("a").attr("href"),text=$(el).siblings("a").text().trim();downloadPage&&text&&links.push({title:text,episodesLink:baseUrl+downloadPage})}),{title:title,synopsis:synopsis,image:image,imdbId:imdbId,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) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getMeta = void 0;
const getMeta = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ link, providerContext, }) {
try {
const { axios, cheerio, getBaseUrl } = providerContext;
const baseUrl = yield getBaseUrl("moviezwap");
const url = link.startsWith("http") ? link : `${baseUrl}${link}`;
const res = yield axios.get(url);
const data = res.data;
const $ = cheerio.load(data);
// 1. Poster image find image with width 260
let image = $('img[width="260"]').attr("src") || "";
if (image && !image.startsWith("http")) {
image = baseUrl + image;
}
const tags = $("font[color='steelblue']")
.map((i, el) => $(el).text().trim())
.get()
.slice(0, 2);
// 2. Title
const title = $("title").text().replace(" - MoviezWap", "").trim() || "";
// 3. Info table
let synopsis = "";
let imdbId = "";
let type = "movie";
let infoRows = [];
$("td:contains('Movie Information')")
.parent()
.nextAll("tr")
.each((i, el) => {
const tds = $(el).find("td");
if (tds.length === 2) {
const key = tds.eq(0).text().trim();
const value = tds.eq(1).text().trim();
infoRows.push(`${key}: ${value}`);
if (key.toLowerCase().includes("plot"))
synopsis = value;
if (key.toLowerCase().includes("imdb"))
imdbId = value;
}
});
if (!synopsis) {
// fallback: try to find a <p> with plot
synopsis = $("p:contains('plot')").text().trim();
}
// 4. Download links (multiple qualities)
const links = [];
$('a[href*="download.php?file="], a[href*="dwload.php?file="]').each((i, el) => {
var _a;
const downloadPage = ((_a = $(el).attr("href")) === null || _a === void 0 ? void 0 : _a.replace("dwload.php", "download.php")) || "";
const text = $(el).text().trim();
if (downloadPage && /\d+p/i.test(text)) {
// Only add links with quality in text
links.push({
title: text,
directLinks: [{ title: "Movie", link: baseUrl + downloadPage }],
});
}
});
$("img[src*='/images/play.png']").each((i, el) => {
const downloadPage = $(el).siblings("a").attr("href");
const text = $(el).siblings("a").text().trim();
console.log("Found link:🔥🔥", text, downloadPage);
if (downloadPage && text) {
links.push({
title: text,
episodesLink: baseUrl + downloadPage,
});
}
});
return {
title,
synopsis,
image,
imdbId,
tags,
type,
linkList: links,
//info: infoRows.join("\n"),
};
}
catch (err) {
console.error(err);
return {
title: "",
synopsis: "",
image: "",
imdbId: "",
type: "movie",
linkList: [],
};
}
});
};
exports.getMeta = getMeta;

View File

@@ -1,57 +1 @@
"use strict"; "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}){const{getBaseUrl:getBaseUrl,cheerio:cheerio}=providerContext;return posts({url:`${yield getBaseUrl("moviezwap")}${filter}`,signal:signal,cheerio:cheerio})})};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,cheerio:cheerio}=providerContext;return posts({url:`${yield getBaseUrl("moviezwap")}/search.php?q=${encodeURIComponent(searchQuery)}`,signal:signal,cheerio:cheerio})})};function posts(_a){return __awaiter(this,arguments,void 0,function*({url:url,signal:signal,cheerio:cheerio}){try{const res=yield fetch(url,{signal:signal}),data=yield res.text(),$=cheerio.load(data),catalog=[];return $('a[href^="/movie/"]').each((i,el)=>{const title=$(el).text().trim(),link=$(el).attr("href");title&&link&&catalog.push({title:title,link:link,image:""})}),catalog}catch(err){return[]}})}exports.getSearchPosts=getSearchPosts;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getSearchPosts = exports.getPosts = void 0;
const getPosts = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ filter, page, signal, providerContext, }) {
const { getBaseUrl, cheerio } = providerContext;
const baseUrl = yield getBaseUrl("moviezwap");
const url = `${baseUrl}${filter}`;
return posts({ url, signal, cheerio });
});
};
exports.getPosts = getPosts;
const getSearchPosts = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ searchQuery, page, signal, providerContext, }) {
const { getBaseUrl, cheerio } = providerContext;
const baseUrl = yield getBaseUrl("moviezwap");
const url = `${baseUrl}/search.php?q=${encodeURIComponent(searchQuery)}`;
return posts({ url, signal, cheerio });
});
};
exports.getSearchPosts = getSearchPosts;
function posts(_a) {
return __awaiter(this, arguments, void 0, function* ({ url, signal, cheerio, }) {
try {
const res = yield fetch(url, { signal });
const data = yield res.text();
const $ = cheerio.load(data);
const catalog = [];
$('a[href^="/movie/"]').each((i, el) => {
const title = $(el).text().trim();
const link = $(el).attr("href");
const image = "";
if (title && link) {
catalog.push({
title: title,
link: link,
image: image,
});
}
});
return catalog;
}
catch (err) {
console.error("moviezwapGetPosts error ", err);
return [];
}
});
}

View File

@@ -1,35 +1 @@
"use strict"; "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())})};function getStream(_a){return __awaiter(this,arguments,void 0,function*({link:link,signal:signal,providerContext:providerContext}){const{axios:axios,cheerio:cheerio,commonHeaders:headers}=providerContext,html=(yield axios.get(link,{headers:headers,signal:signal})).data,$=cheerio.load(html),Streams=[];return $('a:contains("Fast Download Server")').each((i,el)=>{const href=$(el).attr("href");href&&href.toLocaleLowerCase().includes(".mp4")&&Streams.push({link:href,type:"mp4",server:"Fast Download",headers:headers})}),Streams})}Object.defineProperty(exports,"__esModule",{value:!0}),exports.getStream=getStream;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getStream = getStream;
function getStream(_a) {
return __awaiter(this, arguments, void 0, function* ({ link, signal, providerContext, }) {
const { axios, cheerio, commonHeaders: headers } = providerContext;
const res = yield axios.get(link, { headers, signal });
const html = res.data;
const $ = cheerio.load(html);
const Streams = [];
// Find the actual .mp4 download link
let downloadLink = null;
$('a:contains("Fast Download Server")').each((i, el) => {
const href = $(el).attr("href");
if (href && href.toLocaleLowerCase().includes(".mp4")) {
Streams.push({
link: href,
type: "mp4",
server: "Fast Download",
headers: headers,
});
}
});
return Streams;
});
}

80
dist/multi/catalog.js vendored
View File

@@ -1,79 +1 @@
"use strict"; "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.genres=exports.catalog=void 0,exports.catalog=[{title:"Trending",filter:"/trending/"},{title:"Netflix",filter:"/genre/netflix/"},{title:"Amazon Prime",filter:"/genre/amazon-prime/"},{title:"Disney Hotstar",filter:"/genre/disney-hotstar/"}],exports.genres=[{title:"Action",filter:"/genre/action/"},{title:"Adventure",filter:"/genre/adventure/"},{title:"Animation",filter:"/genre/animation/"},{title:"Comedy",filter:"/genre/comedy/"},{title:"Crime",filter:"/genre/crime/"},{title:"Drama",filter:"/genre/drama/"},{title:"Family",filter:"/genre/family/"},{title:"Fantasy",filter:"/genre/fantasy/"},{title:"History",filter:"/genre/history/"},{title:"Horror",filter:"/genre/horror/"},{title:"Mystery",filter:"/genre/mystery/"},{title:"Romance",filter:"/genre/romance/"},{title:"Science Fiction",filter:"/genre/science-fiction/"},{title:"Thriller",filter:"/genre/thriller/"}];
Object.defineProperty(exports, "__esModule", { value: true });
exports.genres = exports.catalog = void 0;
exports.catalog = [
{
title: "Trending",
filter: "/trending/",
},
{
title: "Netflix",
filter: "/genre/netflix/",
},
{
title: "Amazon Prime",
filter: "/genre/amazon-prime/",
},
{
title: "Disney Hotstar",
filter: "/genre/disney-hotstar/",
},
];
exports.genres = [
{
title: "Action",
filter: "/genre/action/",
},
{
title: "Adventure",
filter: "/genre/adventure/",
},
{
title: "Animation",
filter: "/genre/animation/",
},
{
title: "Comedy",
filter: "/genre/comedy/",
},
{
title: "Crime",
filter: "/genre/crime/",
},
{
title: "Drama",
filter: "/genre/drama/",
},
{
title: "Family",
filter: "/genre/family/",
},
{
title: "Fantasy",
filter: "/genre/fantasy/",
},
{
title: "History",
filter: "/genre/history/",
},
{
title: "Horror",
filter: "/genre/horror/",
},
{
title: "Mystery",
filter: "/genre/mystery/",
},
{
title: "Romance",
filter: "/genre/romance/",
},
{
title: "Science Fiction",
filter: "/genre/science-fiction/",
},
{
title: "Thriller",
filter: "/genre/thriller/",
},
];

88
dist/multi/meta.js vendored
View File

@@ -1,87 +1 @@
"use strict"; "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}){try{const{axios:axios,cheerio:cheerio}=providerContext,url=link,data=(yield axios.get(url)).data,$=cheerio.load(data),type=url.includes("tvshows")?"series":"movie",imdbId="",title=url.split("/")[4].replace(/-/g," "),image=$(".g-item").find("a").attr("href")||"",synopsis=$(".wp-content").find("p").text()||"",links=[];return"series"===type?$("#seasons").children().map((i,element)=>{const title=$(element).find(".title").children().remove().end().text();let episodesList=[];$(element).find(".episodios").children().map((i,element)=>{const title="Episode"+$(element).find(".numerando").text().trim().split("-")[1],link=$(element).find("a").attr("href");title&&link&&episodesList.push({title:title,link:link})}),title&&episodesList.length>0&&links.push({title:title,directLinks:episodesList})}):links.push({title:title,directLinks:[{title:title,link:url.slice(0,-1),type:"movie"}]}),{title:title,synopsis:synopsis,image:image,imdbId:imdbId,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) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getMeta = void 0;
const getMeta = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ link, providerContext, }) {
try {
const { axios, cheerio } = providerContext;
const url = link;
const res = yield axios.get(url);
const data = res.data;
const $ = cheerio.load(data);
const type = url.includes("tvshows") ? "series" : "movie";
const imdbId = "";
const title = url.split("/")[4].replace(/-/g, " ");
const image = $(".g-item").find("a").attr("href") || "";
const synopsis = $(".wp-content").find("p").text() || "";
// Links
const links = [];
if (type === "series") {
$("#seasons")
.children()
.map((i, element) => {
const title = $(element)
.find(".title")
.children()
.remove()
.end()
.text();
let episodesList = [];
$(element)
.find(".episodios")
.children()
.map((i, element) => {
const title = "Episode" +
$(element).find(".numerando").text().trim().split("-")[1];
const link = $(element).find("a").attr("href");
if (title && link) {
episodesList.push({ title, link });
}
});
if (title && episodesList.length > 0) {
links.push({
title,
directLinks: episodesList,
});
}
});
}
else {
links.push({
title: title,
directLinks: [{ title: title, link: url.slice(0, -1), type: "movie" }],
});
}
// console.log('multi meta', links);
return {
title,
synopsis,
image,
imdbId,
type,
linkList: links,
};
}
catch (err) {
console.error(err);
return {
title: "",
synopsis: "",
image: "",
imdbId: "",
type: "movie",
linkList: [],
};
}
});
};
exports.getMeta = getMeta;

61
dist/multi/posts.js vendored
View File

@@ -1,60 +1 @@
"use strict"; "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}){const{getBaseUrl:getBaseUrl,cheerio:cheerio}=providerContext;return posts({url:`${(yield getBaseUrl("multi"))+filter}page/${page}/`,signal:signal,cheerio:cheerio})})};exports.getPosts=getPosts;const getSearchPosts=function(_a){return __awaiter(this,arguments,void 0,function*({searchQuery:searchQuery,signal:signal,providerContext:providerContext}){const{getBaseUrl:getBaseUrl,cheerio:cheerio}=providerContext;return posts({url:`${yield getBaseUrl("multi")}/?s=${searchQuery}`,signal:signal,cheerio:cheerio})})};function posts(_a){return __awaiter(this,arguments,void 0,function*({url:url,signal:signal,cheerio:cheerio}){try{const res=yield fetch(url,{signal:signal}),data=yield res.text(),$=cheerio.load(data),catalog=[];return $(".items.full").children().map((i,element)=>{const title=$(element).find(".poster").find("img").attr("alt"),link=$(element).find(".poster").find("a").attr("href"),image=$(element).find(".poster").find("img").attr("data-src")||$(element).find(".poster").find("img").attr("src");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) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getSearchPosts = exports.getPosts = void 0;
const getPosts = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ filter, page, signal, providerContext, }) {
const { getBaseUrl, cheerio } = providerContext;
const baseUrl = yield getBaseUrl("multi");
const url = `${baseUrl + filter}page/${page}/`;
return posts({ url, signal, cheerio });
});
};
exports.getPosts = getPosts;
const getSearchPosts = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ searchQuery, signal, providerContext, }) {
const { getBaseUrl, cheerio } = providerContext;
const baseUrl = yield getBaseUrl("multi");
const url = `${baseUrl}/?s=${searchQuery}`;
return posts({ url, signal, cheerio });
});
};
exports.getSearchPosts = getSearchPosts;
function posts(_a) {
return __awaiter(this, arguments, void 0, function* ({ url, signal, cheerio, }) {
try {
const res = yield fetch(url, { signal });
const data = yield res.text();
const $ = cheerio.load(data);
const catalog = [];
$(".items.full")
.children()
.map((i, element) => {
const title = $(element).find(".poster").find("img").attr("alt");
const link = $(element).find(".poster").find("a").attr("href");
const image = $(element).find(".poster").find("img").attr("data-src") ||
$(element).find(".poster").find("img").attr("src");
if (title && link && image) {
catalog.push({
title: title,
link: link,
image: image,
});
}
});
return catalog;
}
catch (err) {
console.error("multiGetPosts error ", err);
return [];
}
});
}

140
dist/multi/stream.js vendored
View File

@@ -1,139 +1 @@
"use strict"; "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,providerContext:providerContext}){var _b,_c,_d,_e,_f,_g,_h,_j,_k;const{axios:axios,cheerio:cheerio}=providerContext,headers={"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"',Referer:"https://multimovies.online/","Sec-Fetch-User":"?1","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0"};try{const html=(yield axios.get(url,{headers:headers})).data,$=cheerio.load(html),streamLinks=[],postId=$("#player-option-1").attr("data-post"),nume=$("#player-option-1").attr("data-nume"),typeValue=$("#player-option-1").attr("data-type"),baseUrl=url.split("/").slice(0,3).join("/"),formData=new FormData;formData.append("action","doo_player_ajax"),formData.append("post",postId||""),formData.append("nume",nume||""),formData.append("type",typeValue||"");const playerRes=yield fetch(`${baseUrl}/wp-admin/admin-ajax.php`,{headers:headers,body:formData,method:"POST"}),playerData=yield playerRes.json();let ifameUrl=(null===(_c=null===(_b=null==playerData?void 0:playerData.embed_url)||void 0===_b?void 0:_b.match(/<iframe[^>]+src="([^"]+)"[^>]*>/i))||void 0===_c?void 0:_c[1])||(null==playerData?void 0:playerData.embed_url);if(!ifameUrl.includes("multimovies")){let playerBaseUrl=ifameUrl.split("/").slice(0,3).join("/");const newPlayerBaseUrl=yield axios.head(playerBaseUrl,{headers:headers});newPlayerBaseUrl&&(playerBaseUrl=null===(_e=null===(_d=newPlayerBaseUrl.request)||void 0===_d?void 0:_d.responseURL)||void 0===_e?void 0:_e.split("/").slice(0,3).join("/"));const playerId=ifameUrl.split("/").pop(),NewformData=new FormData;NewformData.append("sid",playerId);const playerRes=yield fetch(`${playerBaseUrl}/embedhelper.php`,{headers:headers,body:NewformData,method:"POST"}),playerData=yield playerRes.json(),siteUrl=null===(_f=null==playerData?void 0:playerData.siteUrls)||void 0===_f?void 0:_f.smwh,newIframeUrl=siteUrl+((null===(_g=JSON.parse(atob(null==playerData?void 0:playerData.mresult)))||void 0===_g?void 0:_g.smwh)||(null===(_h=null==playerData?void 0:playerData.mresult)||void 0===_h?void 0:_h.smwh));newIframeUrl&&(ifameUrl=newIframeUrl)}const iframeData=(yield axios.get(ifameUrl,{headers:Object.assign(Object.assign({},headers),{Referer:url})})).data;var match=/eval\(function\((.*?)\)\{.*?return p\}.*?\('(.*?)'\.split/.exec(iframeData);let p="";if(match){var encodedString=match[2];p=null===(_j=encodedString.split("',36,"))||void 0===_j?void 0:_j[0].trim();let a=36,c=encodedString.split("',36,")[1].slice(2).split("|").length,k=encodedString.split("',36,")[1].slice(2).split("|");for(;c--;)if(k[c]){var regex=new RegExp("\\b"+c.toString(a)+"\\b","g");p=p.replace(regex,k[c])}}const streamUrl=null===(_k=null==p?void 0:p.match(/https?:\/\/[^"]+?\.m3u8[^"]*/))||void 0===_k?void 0:_k[0],subtitles=[],subtitleMatch=null==p?void 0:p.match(/https:\/\/[^\s"]+\.vtt/g);return(null==subtitleMatch?void 0:subtitleMatch.length)&&subtitleMatch.forEach(sub=>{const lang=sub.match(/_([a-zA-Z]{3})\.vtt$/)[1];subtitles.push({language:lang,uri:sub,type:"text/vtt",title:lang})}),streamUrl&&streamLinks.push({server:"Multi",link:streamUrl.replace(/&i=\d+,'\.4&/,"&i=0.4&"),type:"m3u8",subtitles:subtitles}),streamLinks}catch(err){return[]}})};exports.getStream=getStream;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getStream = void 0;
const getStream = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ link: url, providerContext, }) {
var _b, _c, _d, _e, _f, _g, _h, _j, _k;
const { axios, cheerio } = providerContext;
const headers = {
"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"',
Referer: "https://multimovies.online/",
"Sec-Fetch-User": "?1",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0",
};
try {
const res = yield axios.get(url, { headers });
const html = res.data;
const $ = cheerio.load(html);
const streamLinks = [];
const postId = $("#player-option-1").attr("data-post");
const nume = $("#player-option-1").attr("data-nume");
const typeValue = $("#player-option-1").attr("data-type");
const baseUrl = url.split("/").slice(0, 3).join("/");
console.log("baseUrl", baseUrl);
const formData = new FormData();
formData.append("action", "doo_player_ajax");
formData.append("post", postId || "");
formData.append("nume", nume || "");
formData.append("type", typeValue || "");
console.log("formData", formData);
const playerRes = yield fetch(`${baseUrl}/wp-admin/admin-ajax.php`, {
headers: headers,
body: formData,
method: "POST",
});
const playerData = yield playerRes.json();
console.log("playerData", playerData);
let ifameUrl = ((_c = (_b = playerData === null || playerData === void 0 ? void 0 : playerData.embed_url) === null || _b === void 0 ? void 0 : _b.match(/<iframe[^>]+src="([^"]+)"[^>]*>/i)) === null || _c === void 0 ? void 0 : _c[1]) ||
(playerData === null || playerData === void 0 ? void 0 : playerData.embed_url);
console.log("ifameUrl", ifameUrl);
if (!ifameUrl.includes("multimovies")) {
let playerBaseUrl = ifameUrl.split("/").slice(0, 3).join("/");
const newPlayerBaseUrl = yield axios.head(playerBaseUrl, { headers });
if (newPlayerBaseUrl) {
playerBaseUrl = (_e = (_d = newPlayerBaseUrl.request) === null || _d === void 0 ? void 0 : _d.responseURL) === null || _e === void 0 ? void 0 : _e.split("/").slice(0, 3).join("/");
}
const playerId = ifameUrl.split("/").pop();
const NewformData = new FormData();
NewformData.append("sid", playerId);
console.log("NewformData", playerBaseUrl + "/embedhelper.php", NewformData);
const playerRes = yield fetch(`${playerBaseUrl}/embedhelper.php`, {
headers: headers,
body: NewformData,
method: "POST",
});
const playerData = yield playerRes.json();
// console.log('playerData', playerData);
const siteUrl = (_f = playerData === null || playerData === void 0 ? void 0 : playerData.siteUrls) === null || _f === void 0 ? void 0 : _f.smwh;
const siteId = ((_g = JSON.parse(atob(playerData === null || playerData === void 0 ? void 0 : playerData.mresult))) === null || _g === void 0 ? void 0 : _g.smwh) ||
((_h = playerData === null || playerData === void 0 ? void 0 : playerData.mresult) === null || _h === void 0 ? void 0 : _h.smwh);
const newIframeUrl = siteUrl + siteId;
console.log("newIframeUrl", newIframeUrl);
if (newIframeUrl) {
ifameUrl = newIframeUrl;
}
}
const iframeRes = yield axios.get(ifameUrl, {
headers: Object.assign(Object.assign({}, headers), { Referer: url }),
});
const iframeData = iframeRes.data;
// Step 1: Extract the function parameters and the encoded string
var functionRegex = /eval\(function\((.*?)\)\{.*?return p\}.*?\('(.*?)'\.split/;
var match = functionRegex.exec(iframeData);
let p = "";
if (match) {
// var params = match[1].split(',').map(param => param.trim());
var encodedString = match[2];
// console.log('Parameters:', params);
// console.log('Encoded String:', encodedString.split("',36,")[0], '🔥🔥');
p = (_j = encodedString.split("',36,")) === null || _j === void 0 ? void 0 : _j[0].trim();
let a = 36;
let c = encodedString.split("',36,")[1].slice(2).split("|").length;
let k = encodedString.split("',36,")[1].slice(2).split("|");
while (c--) {
if (k[c]) {
var regex = new RegExp("\\b" + c.toString(a) + "\\b", "g");
p = p.replace(regex, k[c]);
}
}
// console.log('Decoded String:', p);
}
else {
console.log("No match found");
}
const streamUrl = (_k = p === null || p === void 0 ? void 0 : p.match(/https?:\/\/[^"]+?\.m3u8[^"]*/)) === null || _k === void 0 ? void 0 : _k[0];
const subtitles = [];
const subtitleMatch = p === null || p === void 0 ? void 0 : p.match(/https:\/\/[^\s"]+\.vtt/g);
// console.log('subtitleMatch', subtitleMatch);
// console.log('streamUrl', streamUrl);
if (subtitleMatch === null || subtitleMatch === void 0 ? void 0 : subtitleMatch.length) {
subtitleMatch.forEach((sub) => {
const lang = sub.match(/_([a-zA-Z]{3})\.vtt$/)[1];
subtitles.push({
language: lang,
uri: sub,
type: "text/vtt",
title: lang,
});
});
}
console.log("streamUrl", streamUrl);
console.log("newUrl", streamUrl === null || streamUrl === void 0 ? void 0 : streamUrl.replace(/&i=\d+,'\.4&/, "&i=0.4&"));
if (streamUrl) {
streamLinks.push({
server: "Multi",
link: streamUrl.replace(/&i=\d+,'\.4&/, "&i=0.4&"),
type: "m3u8",
subtitles: subtitles,
});
}
return streamLinks;
}
catch (err) {
console.error(err);
return [];
}
});
};
exports.getStream = getStream;

View File

@@ -1,18 +1 @@
"use strict"; "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.genres=exports.catalog=void 0,exports.catalog=[{title:"Home",filter:"/mobile/home?app=1"},{title:"Series",filter:"/mobile/series"},{title:"Movies",filter:"/mobile/movies"}],exports.genres=[];
Object.defineProperty(exports, "__esModule", { value: true });
exports.genres = exports.catalog = void 0;
exports.catalog = [
{
title: "Home",
filter: "/mobile/home?app=1",
},
{
title: "Series",
filter: "/mobile/series",
},
{
title: "Movies",
filter: "/mobile/movies",
},
];
exports.genres = [];

View File

@@ -1,64 +1 @@
"use strict"; "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:link,providerContext:providerContext}){var _b;const{getBaseUrl:getBaseUrl,axios:axios}=providerContext;try{const url=`${yield getBaseUrl("nfMirror")}/episodes.php?s=`+link+"&t="+Math.round((new Date).getTime()/1e3);let page=1,hasMorePages=!0;const episodeList=[];for(;hasMorePages;){const data=(yield axios.get(url+`&page=${page}`,{headers:{"Content-Type":"application/json","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36","Accept-Language":"en-US,en;q=0.9"}})).data;null===(_b=null==data?void 0:data.episodes)||void 0===_b||_b.map(episode=>{episodeList.push({title:"Episode "+(null==episode?void 0:episode.ep.replace("E","")),link:null==episode?void 0:episode.id})}),(null==data?void 0:data.nextPageShow)?page++:hasMorePages=!1}return episodeList.sort((a,b)=>parseInt(a.title.replace("Episode ",""))-parseInt(b.title.replace("Episode ","")))}catch(err){return[]}})};exports.getEpisodes=getEpisodes;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getEpisodes = void 0;
const getEpisodes = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ url: link, providerContext, }) {
var _b;
const { getBaseUrl, axios } = providerContext;
let providerValue = "netflixMirror";
try {
const baseUrl = yield getBaseUrl("nfMirror");
const url = `${baseUrl}${providerValue === "netflixMirror"
? "/episodes.php?s="
: "/pv/episodes.php?s="}` +
link +
"&t=" +
Math.round(new Date().getTime() / 1000);
console.log("nfEpisodesUrl", url);
let page = 1;
let hasMorePages = true;
const episodeList = [];
while (hasMorePages) {
const res = yield axios.get(url + `&page=${page}`, {
headers: {
"Content-Type": "application/json",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36",
"Accept-Language": "en-US,en;q=0.9",
},
});
const data = res.data;
(_b = data === null || data === void 0 ? void 0 : data.episodes) === null || _b === void 0 ? void 0 : _b.map((episode) => {
episodeList.push({
title: "Episode " + (episode === null || episode === void 0 ? void 0 : episode.ep.replace("E", "")),
link: episode === null || episode === void 0 ? void 0 : episode.id,
});
});
if (data === null || data === void 0 ? void 0 : data.nextPageShow) {
page++;
}
else {
hasMorePages = false;
}
}
return episodeList.sort((a, b) => {
const aNum = parseInt(a.title.replace("Episode ", ""));
const bNum = parseInt(b.title.replace("Episode ", ""));
return aNum - bNum;
});
}
catch (err) {
console.error("nfGetEpisodes error", err);
return [];
}
});
};
exports.getEpisodes = getEpisodes;

View File

@@ -1,66 +1 @@
"use strict"; "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}){var _b,_c,_d,_e;try{const url=`https://netmirror.zendax.tech/api/net-proxy?${"isPrime=false"}&url=${encodeURIComponent(link)}`,res=yield fetch(url,{credentials:"omit"}),data=yield res.json(),id=null===(_b=link.split("id=")[1])||void 0===_b?void 0:_b.split("&")[0],meta={title:data.title,synopsis:data.desc,image:`https://img.nfmirrorcdn.top/poster/h/${id}.jpg`,cast:null===(_c=null==data?void 0:data.short_cast)||void 0===_c?void 0:_c.split(","),tags:[null==data?void 0:data.year,null==data?void 0:data.hdsd,...null===(_d=null==data?void 0:data.thismovieis)||void 0===_d?void 0:_d.split(",")],imdbId:"",type:"series"},linkList=[];return(null===(_e=null==data?void 0:data.season)||void 0===_e?void 0:_e.length)>0?data.season.map(season=>{linkList.push({title:"Season "+(null==season?void 0:season.s),episodesLink:null==season?void 0:season.id})}):linkList.push({title:meta.title,directLinks:[{link:id,title:"Movie",type:"movie"}]}),Object.assign(Object.assign({},meta),{linkList:linkList})}catch(err){return{title:"",synopsis:"",image:"",imdbId:"",type:"",linkList:[]}}})};exports.getMeta=getMeta;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getMeta = void 0;
const getMeta = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ link, }) {
var _b, _c, _d, _e;
let providerValue = "netflixMirror";
try {
const isPrime = providerValue === "primeMirror" ? "isPrime=true" : "isPrime=false";
const url = `https://netmirror.zendax.tech/api/net-proxy?${isPrime}&url=${encodeURIComponent(link)}`;
console.log("nfifo", url);
const res = yield fetch(url, {
credentials: "omit",
});
const data = yield res.json();
const id = (_b = link.split("id=")[1]) === null || _b === void 0 ? void 0 : _b.split("&")[0];
const meta = {
title: data.title,
synopsis: data.desc,
image: `https://img.nfmirrorcdn.top/poster/h/${id}.jpg`,
cast: (_c = data === null || data === void 0 ? void 0 : data.short_cast) === null || _c === void 0 ? void 0 : _c.split(","),
tags: [data === null || data === void 0 ? void 0 : data.year, data === null || data === void 0 ? void 0 : data.hdsd, ...(_d = data === null || data === void 0 ? void 0 : data.thismovieis) === null || _d === void 0 ? void 0 : _d.split(",")],
imdbId: "",
type: "series",
};
console.log("nfinfo", meta);
const linkList = [];
if (((_e = data === null || data === void 0 ? void 0 : data.season) === null || _e === void 0 ? void 0 : _e.length) > 0) {
data.season.map((season) => {
linkList.push({
title: "Season " + (season === null || season === void 0 ? void 0 : season.s),
episodesLink: season === null || season === void 0 ? void 0 : season.id,
});
});
}
else {
linkList.push({
title: meta.title,
directLinks: [{ link: id, title: "Movie", type: "movie" }],
});
}
return Object.assign(Object.assign({}, meta), { linkList: linkList });
}
catch (err) {
console.error(err);
return {
title: "",
synopsis: "",
image: "",
imdbId: "",
type: "",
linkList: [],
};
}
});
};
exports.getMeta = getMeta;

View File

@@ -1,108 +1 @@
"use strict"; "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,providerValue:providerValue,signal:signal,providerContext:providerContext}){try{const{getBaseUrl:getBaseUrl,cheerio:cheerio}=providerContext,baseUrl=yield getBaseUrl("nfMirror"),catalog=[];if(page>1)return[];const url=`https://netmirror.zendax.tech/api/net-proxy?${"primeMirror"===providerValue?"isPrime=true":"isPrime=false"}&url=${baseUrl+filter}`,res=yield fetch(url,{signal:signal,method:"GET",credentials:"omit"}),data=yield res.text(),$=cheerio.load(data);return $("a.post-data").map((i,element)=>{const id=$(element).attr("data-post"),image=$(element).find("img").attr("data-src")||"";id&&catalog.push({title:"",link:baseUrl+""+("netflixMirror"===providerValue?"/post.php?id=":"/pv/post.php?id=")+id+"&t="+Math.round((new Date).getTime()/1e3),image:image})}),catalog}catch(err){return[]}})};exports.getPosts=getPosts;const getSearchPosts=function(_a){return __awaiter(this,arguments,void 0,function*({searchQuery:searchQuery,page:page,providerValue:providerValue,signal:signal,providerContext:providerContext}){var _b;const{getBaseUrl:getBaseUrl}=providerContext;try{if(page>1)return[];const catalog=[],baseUrl=yield getBaseUrl("nfMirror"),url=`https://netmirror.zendax.tech/api/net-proxy?${"primeMirror"===providerValue?"isPrime=true":"isPrime=false"}&url=${baseUrl}${"netflixMirror"===providerValue?"":"/pv"}/search.php?s=${encodeURI(searchQuery)}`,res=yield fetch(url,{signal:signal,method:"GET",credentials:"omit"}),data=yield res.json();return null===(_b=null==data?void 0:data.searchResult)||void 0===_b||_b.forEach(result=>{const title=(null==result?void 0:result.t)||"",id=null==result?void 0:result.id,image="netflixMirror"===providerValue?`https://imgcdn.media/poster/v/${id}.jpg`:"";id&&catalog.push({title:title,link:baseUrl+""+("netflixMirror"===providerValue?"/mobile/post.php?id=":"/mobile/pv/post.php?id=")+id+"&t="+Math.round((new Date).getTime()/1e3),image:image})}),catalog}catch(err){return[]}})};exports.getSearchPosts=getSearchPosts;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getSearchPosts = exports.getPosts = void 0;
const getPosts = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ filter, page, providerValue, signal, providerContext, }) {
try {
const { getBaseUrl, cheerio } = providerContext;
const baseUrl = yield getBaseUrl("nfMirror");
const catalog = [];
if (page > 1) {
return [];
}
// console.log(filter);
const isPrime = providerValue === "primeMirror" ? "isPrime=true" : "isPrime=false";
const url = `https://netmirror.zendax.tech/api/net-proxy?${isPrime}&url=${baseUrl + filter}`;
const res = yield fetch(url, {
signal: signal,
method: "GET",
credentials: "omit",
});
const data = yield res.text();
// console.log('nfPost', data);
const $ = cheerio.load(data);
$("a.post-data").map((i, element) => {
const title = "";
const id = $(element).attr("data-post");
// console.log('id', id);
const image = $(element).find("img").attr("data-src") || "";
if (id) {
catalog.push({
title: title,
link: baseUrl +
`${providerValue === "netflixMirror"
? "/post.php?id="
: "/pv/post.php?id="}` +
id +
"&t=" +
Math.round(new Date().getTime() / 1000),
image: image,
});
}
});
// console.log(catalog);
return catalog;
}
catch (err) {
console.error("nf error ", err);
return [];
}
});
};
exports.getPosts = getPosts;
const getSearchPosts = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ searchQuery, page, providerValue, signal, providerContext, }) {
var _b;
const { getBaseUrl } = providerContext;
try {
if (page > 1) {
return [];
}
const catalog = [];
const baseUrl = yield getBaseUrl("nfMirror");
const isPrime = providerValue === "primeMirror" ? "isPrime=true" : "isPrime=false";
const url = `https://netmirror.zendax.tech/api/net-proxy?${isPrime}&url=${baseUrl}${providerValue === "netflixMirror" ? "" : "/pv"}/search.php?s=${encodeURI(searchQuery)}`;
const res = yield fetch(url, {
signal: signal,
method: "GET",
credentials: "omit",
});
const data = yield res.json();
(_b = data === null || data === void 0 ? void 0 : data.searchResult) === null || _b === void 0 ? void 0 : _b.forEach((result) => {
const title = (result === null || result === void 0 ? void 0 : result.t) || "";
const id = result === null || result === void 0 ? void 0 : result.id;
const image = providerValue === "netflixMirror"
? `https://imgcdn.media/poster/v/${id}.jpg`
: "";
if (id) {
catalog.push({
title: title,
link: baseUrl +
`${providerValue === "netflixMirror"
? "/mobile/post.php?id="
: "/mobile/pv/post.php?id="}` +
id +
"&t=" +
Math.round(new Date().getTime() / 1000),
image: image,
});
}
});
return catalog;
}
catch (err) {
console.error("Search error:", err);
return [];
}
});
};
exports.getSearchPosts = getSearchPosts;

View File

@@ -1,49 +1 @@
"use strict"; "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=_a=>__awaiter(void 0,[_a],void 0,function*({link:id,providerContext:providerContext}){const{getBaseUrl:getBaseUrl}=providerContext;try{const baseUrl="https://netfree2.cc",url=`https://netmirror.zendax.tech/api/net-proxy?url=${baseUrl}${"netflixMirror"==="netflixMirror"?"/mobile/playlist.php?id=":"/pv/playlist.php?id="}${id}&t=${Math.round((new Date).getTime()/1e3)}`,res=yield fetch(url,{credentials:"omit"}),resJson=yield res.json(),data=null==resJson?void 0:resJson[0],streamLinks=[];return null==data||data.sources.forEach(source=>{var _a;streamLinks.push({server:source.label,link:null===(_a=source.file)||void 0===_a?void 0:_a.replace(":su",":ni"),type:"m3u8",headers:{Referer:baseUrl,origin:baseUrl,Cookie:"hd=on"}})}),streamLinks}catch(err){return[]}});exports.getStream=getStream;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getStream = void 0;
const getStream = (_a) => __awaiter(void 0, [_a], void 0, function* ({ link: id, providerContext, }) {
const { getBaseUrl } = providerContext;
try {
let providerValue = "netflixMirror";
const baseUrl = "https://netfree2.cc";
const url = `https://netmirror.zendax.tech/api/net-proxy?url=${baseUrl}${providerValue === "netflixMirror"
? "/mobile/playlist.php?id="
: "/pv/playlist.php?id="}${id}&t=${Math.round(new Date().getTime() / 1000)}`;
console.log("nfGetStream, url:", url);
const res = yield fetch(url, {
credentials: "omit",
});
const resJson = yield res.json();
const data = resJson === null || resJson === void 0 ? void 0 : resJson[0];
const streamLinks = [];
data === null || data === void 0 ? void 0 : data.sources.forEach((source) => {
var _a;
streamLinks.push({
server: source.label,
link: (_a = source.file) === null || _a === void 0 ? void 0 : _a.replace(":su", ":ni"),
type: "m3u8",
headers: {
Referer: baseUrl,
origin: baseUrl,
Cookie: "hd=on",
},
});
});
console.log(streamLinks);
return streamLinks;
}
catch (err) {
console.error(err);
return [];
}
});
exports.getStream = getStream;

View File

@@ -1,18 +1 @@
"use strict"; "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.genres=exports.catalog=void 0,exports.catalog=[{title:"Home",filter:"/mobile/home?app=1"},{title:"Series",filter:"/mobile/series"},{title:"Movies",filter:"/mobile/movies"}],exports.genres=[];
Object.defineProperty(exports, "__esModule", { value: true });
exports.genres = exports.catalog = void 0;
exports.catalog = [
{
title: "Home",
filter: "/mobile/home?app=1",
},
{
title: "Series",
filter: "/mobile/series",
},
{
title: "Movies",
filter: "/mobile/movies",
},
];
exports.genres = [];

View File

@@ -1,62 +1 @@
"use strict"; "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:link,providerContext:providerContext}){var _b;const{getBaseUrl:getBaseUrl,axios:axios}=providerContext;try{const url=`${yield getBaseUrl("nfMirror")}/pv/episodes.php?s=`+link+"&t="+Math.round((new Date).getTime()/1e3);let page=1,hasMorePages=!0;const episodeList=[];for(;hasMorePages;){const data=(yield axios.get(url+`&page=${page}`,{headers:{"Content-Type":"application/json","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36","Accept-Language":"en-US,en;q=0.9"}})).data;null===(_b=null==data?void 0:data.episodes)||void 0===_b||_b.map(episode=>{episodeList.push({title:"Episode "+(null==episode?void 0:episode.ep.replace("E","")),link:null==episode?void 0:episode.id})}),(null==data?void 0:data.nextPageShow)?page++:hasMorePages=!1}return episodeList.sort((a,b)=>parseInt(a.title.replace("Episode ",""))-parseInt(b.title.replace("Episode ","")))}catch(err){return[]}})};exports.getEpisodes=getEpisodes;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getEpisodes = void 0;
const getEpisodes = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ url: link, providerContext, }) {
var _b;
const { getBaseUrl, axios } = providerContext;
let providerValue = "netflixMirror";
try {
const baseUrl = yield getBaseUrl("nfMirror");
const url = `${baseUrl}${"/pv/episodes.php?s="}` +
link +
"&t=" +
Math.round(new Date().getTime() / 1000);
console.log("nfEpisodesUrl", url);
let page = 1;
let hasMorePages = true;
const episodeList = [];
while (hasMorePages) {
const res = yield axios.get(url + `&page=${page}`, {
headers: {
"Content-Type": "application/json",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36",
"Accept-Language": "en-US,en;q=0.9",
},
});
const data = res.data;
(_b = data === null || data === void 0 ? void 0 : data.episodes) === null || _b === void 0 ? void 0 : _b.map((episode) => {
episodeList.push({
title: "Episode " + (episode === null || episode === void 0 ? void 0 : episode.ep.replace("E", "")),
link: episode === null || episode === void 0 ? void 0 : episode.id,
});
});
if (data === null || data === void 0 ? void 0 : data.nextPageShow) {
page++;
}
else {
hasMorePages = false;
}
}
return episodeList.sort((a, b) => {
const aNum = parseInt(a.title.replace("Episode ", ""));
const bNum = parseInt(b.title.replace("Episode ", ""));
return aNum - bNum;
});
}
catch (err) {
console.error("nfGetEpisodes error", err);
return [];
}
});
};
exports.getEpisodes = getEpisodes;

View File

@@ -1,66 +1 @@
"use strict"; "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}){var _b,_c,_d,_e;try{const url=`https://netmirror.zendax.tech/api/net-proxy?${"isPrime=true"}&url=${encodeURIComponent(link)}`,res=yield fetch(url,{credentials:"omit"}),data=yield res.json(),id=null===(_b=link.split("id=")[1])||void 0===_b?void 0:_b.split("&")[0],meta={title:data.title,synopsis:data.desc,image:`https://img.nfmirrorcdn.top/poster/h/${id}.jpg`,cast:null===(_c=null==data?void 0:data.short_cast)||void 0===_c?void 0:_c.split(","),tags:[null==data?void 0:data.year,null==data?void 0:data.hdsd,...null===(_d=null==data?void 0:data.thismovieis)||void 0===_d?void 0:_d.split(",")],imdbId:"",type:"series"},linkList=[];return(null===(_e=null==data?void 0:data.season)||void 0===_e?void 0:_e.length)>0?data.season.map(season=>{linkList.push({title:"Season "+(null==season?void 0:season.s),episodesLink:null==season?void 0:season.id})}):linkList.push({title:meta.title,directLinks:[{link:id,title:"Movie",type:"movie"}]}),Object.assign(Object.assign({},meta),{linkList:linkList})}catch(err){return{title:"",synopsis:"",image:"",imdbId:"",type:"",linkList:[]}}})};exports.getMeta=getMeta;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getMeta = void 0;
const getMeta = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ link, }) {
var _b, _c, _d, _e;
let providerValue = "primeMirror";
try {
const isPrime = providerValue === "primeMirror" ? "isPrime=true" : "isPrime=false";
const url = `https://netmirror.zendax.tech/api/net-proxy?${isPrime}&url=${encodeURIComponent(link)}`;
console.log("nfifo", url);
const res = yield fetch(url, {
credentials: "omit",
});
const data = yield res.json();
const id = (_b = link.split("id=")[1]) === null || _b === void 0 ? void 0 : _b.split("&")[0];
const meta = {
title: data.title,
synopsis: data.desc,
image: `https://img.nfmirrorcdn.top/poster/h/${id}.jpg`,
cast: (_c = data === null || data === void 0 ? void 0 : data.short_cast) === null || _c === void 0 ? void 0 : _c.split(","),
tags: [data === null || data === void 0 ? void 0 : data.year, data === null || data === void 0 ? void 0 : data.hdsd, ...(_d = data === null || data === void 0 ? void 0 : data.thismovieis) === null || _d === void 0 ? void 0 : _d.split(",")],
imdbId: "",
type: "series",
};
console.log("nfinfo", meta);
const linkList = [];
if (((_e = data === null || data === void 0 ? void 0 : data.season) === null || _e === void 0 ? void 0 : _e.length) > 0) {
data.season.map((season) => {
linkList.push({
title: "Season " + (season === null || season === void 0 ? void 0 : season.s),
episodesLink: season === null || season === void 0 ? void 0 : season.id,
});
});
}
else {
linkList.push({
title: meta.title,
directLinks: [{ link: id, title: "Movie", type: "movie" }],
});
}
return Object.assign(Object.assign({}, meta), { linkList: linkList });
}
catch (err) {
console.error(err);
return {
title: "",
synopsis: "",
image: "",
imdbId: "",
type: "",
linkList: [],
};
}
});
};
exports.getMeta = getMeta;

View File

@@ -1,108 +1 @@
"use strict"; "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,providerValue:providerValue,signal:signal,providerContext:providerContext}){try{const{getBaseUrl:getBaseUrl,cheerio:cheerio}=providerContext,baseUrl=yield getBaseUrl("nfMirror"),catalog=[];if(page>1)return[];const url=`https://netmirror.zendax.tech/api/net-proxy?${"primeMirror"===providerValue?"isPrime=true":"isPrime=false"}&url=${baseUrl+filter}`,res=yield fetch(url,{signal:signal,method:"GET",credentials:"omit"}),data=yield res.text(),$=cheerio.load(data);return $("a.post-data").map((i,element)=>{const id=$(element).attr("data-post"),image=$(element).find("img").attr("data-src")||"";id&&catalog.push({title:"",link:baseUrl+""+("netflixMirror"===providerValue?"/post.php?id=":"/pv/post.php?id=")+id+"&t="+Math.round((new Date).getTime()/1e3),image:image})}),catalog}catch(err){return[]}})};exports.getPosts=getPosts;const getSearchPosts=function(_a){return __awaiter(this,arguments,void 0,function*({searchQuery:searchQuery,page:page,providerValue:providerValue,signal:signal,providerContext:providerContext}){var _b;const{getBaseUrl:getBaseUrl}=providerContext;try{if(page>1)return[];const catalog=[],baseUrl=yield getBaseUrl("nfMirror"),url=`https://netmirror.zendax.tech/api/net-proxy?${"primeMirror"===providerValue?"isPrime=true":"isPrime=false"}&url=${baseUrl}${"netflixMirror"===providerValue?"":"/pv"}/search.php?s=${encodeURI(searchQuery)}`,res=yield fetch(url,{signal:signal,method:"GET",credentials:"omit"}),data=yield res.json();return null===(_b=null==data?void 0:data.searchResult)||void 0===_b||_b.forEach(result=>{const title=(null==result?void 0:result.t)||"",id=null==result?void 0:result.id,image="netflixMirror"===providerValue?`https://imgcdn.media/poster/v/${id}.jpg`:`https://imgcdn.media/pv/341/${id}.jpg`;id&&catalog.push({title:title,link:baseUrl+""+("netflixMirror"===providerValue?"/mobile/post.php?id=":"/mobile/pv/post.php?id=")+id+"&t="+Math.round((new Date).getTime()/1e3),image:image})}),catalog}catch(err){return[]}})};exports.getSearchPosts=getSearchPosts;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getSearchPosts = exports.getPosts = void 0;
const getPosts = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ filter, page, providerValue, signal, providerContext, }) {
try {
const { getBaseUrl, cheerio } = providerContext;
const baseUrl = yield getBaseUrl("nfMirror");
const catalog = [];
if (page > 1) {
return [];
}
// console.log(filter);
const isPrime = providerValue === "primeMirror" ? "isPrime=true" : "isPrime=false";
const url = `https://netmirror.zendax.tech/api/net-proxy?${isPrime}&url=${baseUrl + filter}`;
const res = yield fetch(url, {
signal: signal,
method: "GET",
credentials: "omit",
});
const data = yield res.text();
// console.log('nfPost', data);
const $ = cheerio.load(data);
$("a.post-data").map((i, element) => {
const title = "";
const id = $(element).attr("data-post");
// console.log('id', id);
const image = $(element).find("img").attr("data-src") || "";
if (id) {
catalog.push({
title: title,
link: baseUrl +
`${providerValue === "netflixMirror"
? "/post.php?id="
: "/pv/post.php?id="}` +
id +
"&t=" +
Math.round(new Date().getTime() / 1000),
image: image,
});
}
});
// console.log(catalog);
return catalog;
}
catch (err) {
console.error("nf error ", err);
return [];
}
});
};
exports.getPosts = getPosts;
const getSearchPosts = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ searchQuery, page, providerValue, signal, providerContext, }) {
var _b;
const { getBaseUrl } = providerContext;
try {
if (page > 1) {
return [];
}
const catalog = [];
const baseUrl = yield getBaseUrl("nfMirror");
const isPrime = providerValue === "primeMirror" ? "isPrime=true" : "isPrime=false";
const url = `https://netmirror.zendax.tech/api/net-proxy?${isPrime}&url=${baseUrl}${providerValue === "netflixMirror" ? "" : "/pv"}/search.php?s=${encodeURI(searchQuery)}`;
const res = yield fetch(url, {
signal: signal,
method: "GET",
credentials: "omit",
});
const data = yield res.json();
(_b = data === null || data === void 0 ? void 0 : data.searchResult) === null || _b === void 0 ? void 0 : _b.forEach((result) => {
const title = (result === null || result === void 0 ? void 0 : result.t) || "";
const id = result === null || result === void 0 ? void 0 : result.id;
const image = providerValue === "netflixMirror"
? `https://imgcdn.media/poster/v/${id}.jpg`
: `https://imgcdn.media/pv/341/${id}.jpg`;
if (id) {
catalog.push({
title: title,
link: baseUrl +
`${providerValue === "netflixMirror"
? "/mobile/post.php?id="
: "/mobile/pv/post.php?id="}` +
id +
"&t=" +
Math.round(new Date().getTime() / 1000),
image: image,
});
}
});
return catalog;
}
catch (err) {
console.error("Search error:", err);
return [];
}
});
};
exports.getSearchPosts = getSearchPosts;

View File

@@ -1,49 +1 @@
"use strict"; "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=_a=>__awaiter(void 0,[_a],void 0,function*({link:id,providerContext:providerContext}){const{getBaseUrl:getBaseUrl}=providerContext;try{const baseUrl="https://netfree2.cc",url=`https://netmirror.zendax.tech/api/net-proxy?url=${baseUrl}${"netflixMirror"==="primeMirror"?"/mobile/playlist.php?id=":"/pv/playlist.php?id="}${id}&t=${Math.round((new Date).getTime()/1e3)}`,res=yield fetch(url,{credentials:"omit"}),resJson=yield res.json(),data=null==resJson?void 0:resJson[0],streamLinks=[];return null==data||data.sources.forEach(source=>{var _a;streamLinks.push({server:source.label,link:null===(_a=baseUrl+source.file)||void 0===_a?void 0:_a.replace(":su",":ni"),type:"m3u8",headers:{Referer:baseUrl,origin:baseUrl,Cookie:"hd=on"}})}),streamLinks}catch(err){return[]}});exports.getStream=getStream;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getStream = void 0;
const getStream = (_a) => __awaiter(void 0, [_a], void 0, function* ({ link: id, providerContext, }) {
const { getBaseUrl } = providerContext;
try {
let providerValue = "primeMirror";
const baseUrl = "https://netfree2.cc";
const url = `https://netmirror.zendax.tech/api/net-proxy?url=${baseUrl}${providerValue === "netflixMirror"
? "/mobile/playlist.php?id="
: "/pv/playlist.php?id="}${id}&t=${Math.round(new Date().getTime() / 1000)}`;
console.log("nfGetStream, url:", url);
const res = yield fetch(url, {
credentials: "omit",
});
const resJson = yield res.json();
const data = resJson === null || resJson === void 0 ? void 0 : resJson[0];
const streamLinks = [];
data === null || data === void 0 ? void 0 : data.sources.forEach((source) => {
var _a;
streamLinks.push({
server: source.label,
link: (_a = (baseUrl + source.file)) === null || _a === void 0 ? void 0 : _a.replace(":su", ":ni"),
type: "m3u8",
headers: {
Referer: baseUrl,
origin: baseUrl,
Cookie: "hd=on",
},
});
});
console.log(streamLinks);
return streamLinks;
}
catch (err) {
console.error(err);
return [];
}
});
exports.getStream = getStream;

View File

@@ -1,18 +1 @@
"use strict"; "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.genres=exports.catalog=void 0,exports.catalog=[{title:"Recently Added",filter:"/filter?sort=Just+Added&free_links=true"},{title:"TV Shows",filter:"/filter?sort=Trending+Today&type=tv"},{title:"Movies",filter:"/filter?sort=Trending+Today&type=movie"}],exports.genres=[];
Object.defineProperty(exports, "__esModule", { value: true });
exports.genres = exports.catalog = void 0;
exports.catalog = [
{
title: "Recently Added",
filter: "/filter?sort=Just+Added&free_links=true",
},
{
title: "TV Shows",
filter: "/filter?sort=Trending+Today&type=tv",
},
{
title: "Movies",
filter: "/filter?sort=Trending+Today&type=movie",
},
];
exports.genres = [];

View File

@@ -1,89 +1 @@
"use strict"; "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;try{const{axios:axios,cheerio:cheerio}=providerContext,url=link,baseUrl=link.split("/").slice(0,3).join("/"),res=yield axios.get(url),html=yield res.data,$=cheerio.load(html),imdbId=(null===(_b=$(".movie_info").find('a[href*="imdb.com/title/tt"]:not([href*="imdb.com/title/tt/"])').attr("href"))||void 0===_b?void 0:_b.split("/")[4])||"",type=$(".show_season").html()?"series":"movie",linkList=[];return $(".show_season").each((i,element)=>{const seasonTitle="Season "+$(element).attr("data-id"),episodes=[];$(element).children().each((i,element2)=>{const episodeTitle=$(element2).find("a").children().remove().end().text().trim().replace("E","Epiosode "),episodeLink=baseUrl+$(element2).find("a").attr("href");episodeTitle&&episodeLink&&episodes.push({title:episodeTitle,link:episodeLink})}),linkList.push({title:seasonTitle,directLinks:episodes})}),"movie"===type&&linkList.push({title:"Movie",directLinks:[{link:link,title:"Movie",type:"movie"}]}),{title:"",image:"",imdbId:imdbId,synopsis:"",type:type,linkList:linkList}}catch(error){return{title:"",image:"",imdbId:"",synopsis:"",linkList:[],type:"uhd"}}})};exports.getMeta=getMeta;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getMeta = void 0;
const getMeta = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ link, providerContext, }) {
var _b;
try {
const { axios, cheerio } = providerContext;
const url = link;
const baseUrl = link.split("/").slice(0, 3).join("/");
const res = yield axios.get(url);
const html = yield res.data;
const $ = cheerio.load(html);
const imdbId = ((_b = $(".movie_info")
.find('a[href*="imdb.com/title/tt"]:not([href*="imdb.com/title/tt/"])')
.attr("href")) === null || _b === void 0 ? void 0 : _b.split("/")[4]) || "";
const type = $(".show_season").html() ? "series" : "movie";
const linkList = [];
$(".show_season").each((i, element) => {
const seasonTitle = "Season " + $(element).attr("data-id");
const episodes = [];
$(element)
.children()
.each((i, element2) => {
const episodeTitle = $(element2)
.find("a")
.children()
.remove()
.end()
.text()
.trim()
.replace("E", "Epiosode ");
const episodeLink = baseUrl + $(element2).find("a").attr("href");
if (episodeTitle && episodeLink) {
episodes.push({
title: episodeTitle,
link: episodeLink,
});
}
});
linkList.push({
title: seasonTitle,
directLinks: episodes,
});
});
if (type === "movie") {
linkList.push({
title: "Movie",
directLinks: [
{
link: link,
title: "Movie",
type: "movie",
},
],
});
}
return {
title: "",
image: "",
imdbId: imdbId,
synopsis: "",
type: type,
linkList: linkList,
};
}
catch (error) {
console.error(error);
return {
title: "",
image: "",
imdbId: "",
synopsis: "",
linkList: [],
type: "uhd",
};
}
});
};
exports.getMeta = getMeta;

View File

@@ -1,63 +1 @@
"use strict"; "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}){const{getBaseUrl:getBaseUrl,axios:axios,cheerio:cheerio}=providerContext,baseUrl=yield getBaseUrl("primewire");return posts({baseUrl:baseUrl,url:`${baseUrl+filter}&page=${page}`,signal:signal,axios:axios,cheerio:cheerio})})};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,axios:axios,cheerio:cheerio,Aes:Aes}=providerContext,baseUrl=yield getBaseUrl("primewire");return posts({baseUrl:baseUrl,url:`${baseUrl}/filter?s=${searchQuery}&page=${page}&ds=${(yield function(input){return __awaiter(this,void 0,void 0,function*(){return yield Aes.sha1(input)})}(searchQuery+"JyjId97F9PVqUPuMO0")).slice(0,10)}`,signal:signal,axios:axios,cheerio:cheerio})})};function posts(_a){return __awaiter(this,arguments,void 0,function*({baseUrl:baseUrl,url:url,signal:signal,axios:axios,cheerio:cheerio}){try{const data=(yield axios.get(url,{signal:signal})).data,$=cheerio.load(data),catalog=[];return $(".index_item.index_item_ie").map((i,element)=>{const title=$(element).find("a").attr("title"),link=$(element).find("a").attr("href"),image=$(element).find("img").attr("src")||"";title&&link&&catalog.push({title:title,link:baseUrl+link,image:image})}),catalog}catch(err){return[]}})}exports.getSearchPosts=getSearchPosts;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getSearchPosts = exports.getPosts = void 0;
const getPosts = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ filter, page, signal, providerContext, }) {
const { getBaseUrl, axios, cheerio } = providerContext;
const baseUrl = yield getBaseUrl("primewire");
const url = `${baseUrl + filter}&page=${page}`;
return posts({ baseUrl, url, signal, axios, cheerio });
});
};
exports.getPosts = getPosts;
const getSearchPosts = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ searchQuery, page, signal, providerContext, }) {
const { getBaseUrl, axios, cheerio, Aes } = providerContext;
const getSHA256ofJSON = function (input) {
return __awaiter(this, void 0, void 0, function* () {
return yield Aes.sha1(input);
});
};
const baseUrl = yield getBaseUrl("primewire");
const hash = yield getSHA256ofJSON(searchQuery + "JyjId97F9PVqUPuMO0");
const url = `${baseUrl}/filter?s=${searchQuery}&page=${page}&ds=${hash.slice(0, 10)}`;
return posts({ baseUrl, url, signal, axios, cheerio });
});
};
exports.getSearchPosts = getSearchPosts;
function posts(_a) {
return __awaiter(this, arguments, void 0, function* ({ baseUrl, url, signal, axios, cheerio, }) {
try {
const res = yield axios.get(url, { signal });
const data = res.data;
const $ = cheerio.load(data);
const catalog = [];
$(".index_item.index_item_ie").map((i, element) => {
const title = $(element).find("a").attr("title");
const link = $(element).find("a").attr("href");
const image = $(element).find("img").attr("src") || "";
if (title && link) {
catalog.push({
title: title,
link: baseUrl + link,
image: image,
});
}
});
return catalog;
}
catch (err) {
console.error("primewire error ", err);
return [];
}
});
}

View File

@@ -1,137 +1 @@
"use strict"; "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}){var _b,_c,_d,_e,_f,_g;const{axios:axios,cheerio:cheerio}=providerContext;try{const baseUrl=url.split("/").slice(0,3).join("/"),streamLinks=[],urls=[],data=(yield axios.get(url)).data,$=cheerio.load(data);$('tr:contains("mixdrop")').map((i,element)=>{const id=$(element).find(".wp-menu-btn").attr("data-wp-menu"),size=$(element).find(".wp-menu-btn").next().text();id&&urls.push({id:baseUrl+"/links/go/"+id,size:size})});for(const url of urls){const res2=yield axios.head(url.id),location=null===(_b=res2.request)||void 0===_b?void 0:_b.responseURL.replace("/f/","/e/"),res3=yield fetch(location,{credentials:"include",headers:{"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:101.0) Gecko/20100101 Firefox/101.0",Accept:"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8","Accept-Language":"en-US,en;q=0.5","Upgrade-Insecure-Requests":"1","Sec-Fetch-Dest":"iframe","Sec-Fetch-Mode":"navigate","Sec-Fetch-Site":"same-origin",Pragma:"no-cache","Cache-Control":"no-cache",referer:null===(_c=res2.request)||void 0===_c?void 0:_c.responseURL},referrer:null===(_d=res2.request)||void 0===_d?void 0:_d.responseURL,method:"GET",mode:"cors"}),data3=yield res3.text();var match=/eval\(function\((.*?)\)\{.*?return p\}.*?\('(.*?)'\.split/.exec(data3);let p="";if(match){var encodedString=match[2];const base=Number(encodedString.split(",'|MDCore|")[0].split(",")[encodedString.split(",'|MDCore|")[0].split(",").length-1]);p=null===(_e=encodedString.split(`',${base},`))||void 0===_e?void 0:_e[0].trim();let a=base,c=encodedString.split(`',${base},`)[1].slice(2).split("|").length,k=encodedString.split(`',${base},`)[1].slice(2).split("|");const decode=function(p,a,c,k,e,d){if(e=function(c){return c.toString(36)},!"".replace(/^/,String)){for(;c--;)d[c.toString(a)]=k[c]||c.toString(a);k=[function(e){return d[e]}],e=function(){return"\\w+"},c=1}for(;c--;)k[c]&&(p=p.replace(new RegExp("\\b"+e(c)+"\\b","g"),k[c]));return p},decoded=decode(p,a,c,k,0,{}),streamUrl="https:"+(null===(_f=decoded.match(/MDCore\.wurl="([^"]+)"/))||void 0===_f?void 0:_f[1]);streamLinks.push({server:"Mixdrop "+url.size,link:streamUrl,type:"mp4",headers:{"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:101.0) Gecko/20100101 Firefox/101.0",Accept:"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8","Accept-Language":"en-US,en;q=0.5","Upgrade-Insecure-Requests":"1","Sec-Fetch-Dest":"iframe","Sec-Fetch-Mode":"navigate","Sec-Fetch-Site":"same-origin",Pragma:"no-cache","Cache-Control":"no-cache",referer:null===(_g=res2.request)||void 0===_g?void 0:_g.responseURL}})}}return streamLinks}catch(err){return[]}})};exports.getStream=getStream;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getStream = void 0;
const getStream = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ link: url, type, providerContext, }) {
var _b, _c, _d, _e, _f, _g;
const { axios, cheerio } = providerContext;
try {
console.log("pwGetStream", type, url);
const baseUrl = url.split("/").slice(0, 3).join("/");
const streamLinks = [];
const urls = [];
const res = yield axios.get(url);
const data = res.data;
const $ = cheerio.load(data);
$('tr:contains("mixdrop")').map((i, element) => {
const id = $(element).find(".wp-menu-btn").attr("data-wp-menu");
const size = $(element).find(".wp-menu-btn").next().text();
if (id) {
urls.push({ id: baseUrl + "/links/go/" + id, size });
}
});
console.log("urls", urls);
for (const url of urls) {
const res2 = yield axios.head(url.id);
const location = (_b = res2.request) === null || _b === void 0 ? void 0 : _b.responseURL.replace("/f/", "/e/");
const res3 = yield fetch(location, {
credentials: "include",
headers: {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:101.0) Gecko/20100101 Firefox/101.0",
Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
"Accept-Language": "en-US,en;q=0.5",
"Upgrade-Insecure-Requests": "1",
"Sec-Fetch-Dest": "iframe",
"Sec-Fetch-Mode": "navigate",
"Sec-Fetch-Site": "same-origin",
Pragma: "no-cache",
"Cache-Control": "no-cache",
referer: (_c = res2.request) === null || _c === void 0 ? void 0 : _c.responseURL,
},
referrer: (_d = res2.request) === null || _d === void 0 ? void 0 : _d.responseURL,
method: "GET",
mode: "cors",
});
const data3 = yield res3.text();
// let MDCore: any = {};
// Step 1: Extract the function parameters and the encoded string
var functionRegex = /eval\(function\((.*?)\)\{.*?return p\}.*?\('(.*?)'\.split/;
var match = functionRegex.exec(data3);
let p = "";
if (match) {
// var params = match[1].split(',').map(param => param.trim());
var encodedString = match[2];
console.log("Encoded String:", encodedString);
// console.log('Parameters:', params);
// console.log('Encoded String:', encodedString.split("',36,")[0], '🔥🔥');
const base = Number(encodedString.split(",'|MDCore|")[0].split(",")[encodedString.split(",'|MDCore|")[0].split(",").length - 1]);
console.log("Base:", base);
p = (_e = encodedString.split(`',${base},`)) === null || _e === void 0 ? void 0 : _e[0].trim();
let a = base;
let c = encodedString.split(`',${base},`)[1].slice(2).split("|").length;
let k = encodedString.split(`',${base},`)[1].slice(2).split("|");
// console.log('p:', p);
// console.log('a:', a);
// console.log('c:', c);
// console.log('k:', k);
const decode = function (p, a, c, k, e, d) {
e = function (c) {
return c.toString(36);
};
if (!"".replace(/^/, String)) {
while (c--) {
d[c.toString(a)] = k[c] || c.toString(a);
}
k = [
function (e) {
return d[e];
},
];
e = function () {
return "\\w+";
};
c = 1;
}
while (c--) {
if (k[c]) {
p = p.replace(new RegExp("\\b" + e(c) + "\\b", "g"), k[c]);
}
}
return p;
};
const decoded = decode(p, a, c, k, 0, {});
// get MDCore.wurl=
const wurl = (_f = decoded.match(/MDCore\.wurl="([^"]+)"/)) === null || _f === void 0 ? void 0 : _f[1];
console.log("wurl:", wurl);
const streamUrl = "https:" + wurl;
console.log("streamUrl:", streamUrl);
streamLinks.push({
server: "Mixdrop " + url.size,
link: streamUrl,
type: "mp4",
headers: {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:101.0) Gecko/20100101 Firefox/101.0",
Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
"Accept-Language": "en-US,en;q=0.5",
"Upgrade-Insecure-Requests": "1",
"Sec-Fetch-Dest": "iframe",
"Sec-Fetch-Mode": "navigate",
"Sec-Fetch-Site": "same-origin",
Pragma: "no-cache",
"Cache-Control": "no-cache",
referer: (_g = res2.request) === null || _g === void 0 ? void 0 : _g.responseURL,
},
});
}
else {
console.log("No match found");
}
}
return streamLinks;
}
catch (err) {
console.error(err);
return [];
}
});
};
exports.getStream = getStream;

View File

@@ -1,22 +1 @@
"use strict"; "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.genres=exports.catalog=void 0,exports.catalog=[{title:"Latest",filter:"/movies"},{title:"Netflix",filter:"/platform/netflix"},{title:"Disney +",filter:"/platform/disney-hotstar"},{title:"Amazon Prime",filter:"/platform/amazon-prime-video"}],exports.genres=[];
Object.defineProperty(exports, "__esModule", { value: true });
exports.genres = exports.catalog = void 0;
exports.catalog = [
{
title: "Latest",
filter: "/movies",
},
{
title: "Netflix",
filter: "/platform/netflix",
},
{
title: "Disney +",
filter: "/platform/disney-hotstar",
},
{
title: "Amazon Prime",
filter: "/platform/amazon-prime-video",
},
];
exports.genres = [];

View File

@@ -1,102 +1 @@
"use strict"; "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,_e,_f;try{const{axios:axios,cheerio:cheerio,getBaseUrl:getBaseUrl}=providerContext,baseUrl=yield getBaseUrl("protonMovies"),data=(yield axios.get(`${baseUrl}${link}`)).data;const htmlArray=null===(_f=null===(_e=null===(_d=null===(_c=null===(_b=cheerio.load(data)('script:contains("decodeURIComponent")').text().split(" = "))||void 0===_b?void 0:_b[1])||void 0===_c?void 0:_c.split("protomovies"))||void 0===_d?void 0:_d[0])||void 0===_e?void 0:_e.trim())||void 0===_f?void 0:_f.slice(0,-1),html=JSON.parse(htmlArray).join("").replace(/\\"/g,'"').replace(/\\'/g,"'").replace(/\\n/g,"\n").replace(/\\t/g,"\t").replace(/\\r/g,"\r").replace(/&quot;/g,'"').replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&amp;/g,"&"),$=cheerio.load(html),title=$(".trending-text.fw-bold.texture-text.text-uppercase.my-0.fadeInLeft.animated.d-inline-block").text(),image=$("#thumbnail").attr("src"),type=link.includes("series")?"series":"movie",synopsis=$(".col-12.iq-mb-30.animated.fadeIn").first().text()||$(".description-content").text(),tags=$(".p-0.mt-2.list-inline.d-flex.flex-wrap.movie-tag").find("li").map((i,el)=>$(el).text()).slice(0,3).get(),links=[];if("movie"===type){const directLinks=[];directLinks.push({title:"Movie",link:baseUrl+link}),links.push({title:"Movie",directLinks:directLinks})}else $("#episodes").children().map((i,element)=>{let directLinks=[];$(element).find(".episode-block").map((j,ep)=>{const link=baseUrl+$(ep).find("a").attr("href")||"",title="Episode "+$(ep).find(".episode-number").text().split("E")[1];directLinks.push({title:title,link:link})}),links.push({title:"Season "+(i+1),directLinks:directLinks})});return{image:image||"",imdbId:"",linkList:links,title:title||"",synopsis:synopsis,tags:tags,type:type}}catch(err){return{title:"",synopsis:"",image:"",imdbId:"",type:"movie",linkList:[]}}})};exports.getMeta=getMeta;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getMeta = void 0;
const getMeta = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ link, providerContext, }) {
var _b, _c, _d, _e, _f;
try {
const { axios, cheerio, getBaseUrl } = providerContext;
const baseUrl = yield getBaseUrl("protonMovies");
console.log("all", link);
const res = yield axios.get(`${baseUrl}${link}`);
const data = res.data;
function decodeHtml(encodedArray) {
// Join array elements into a single string
const joined = encodedArray.join("");
// Replace escaped quotes
const unescaped = joined.replace(/\\"/g, '"').replace(/\\'/g, "'");
// Remove remaining escape characters
const cleaned = unescaped
.replace(/\\n/g, "\n")
.replace(/\\t/g, "\t")
.replace(/\\r/g, "\r");
// Convert literal string representations back to characters
const decoded = cleaned
.replace(/&quot;/g, '"')
.replace(/&lt;/g, "<")
.replace(/&gt;/g, ">")
.replace(/&amp;/g, "&");
return decoded;
}
const $$ = cheerio.load(data);
const htmlArray = (_f = (_e = (_d = (_c = (_b = $$('script:contains("decodeURIComponent")')
.text()
.split(" = ")) === null || _b === void 0 ? void 0 : _b[1]) === null || _c === void 0 ? void 0 : _c.split("protomovies")) === null || _d === void 0 ? void 0 : _d[0]) === null || _e === void 0 ? void 0 : _e.trim()) === null || _f === void 0 ? void 0 : _f.slice(0, -1); // remove the last character
// console.log('protonGetInfo', htmlArray);
const html = decodeHtml(JSON.parse(htmlArray));
// console.log('all', html);
const $ = cheerio.load(html);
const title = $(".trending-text.fw-bold.texture-text.text-uppercase.my-0.fadeInLeft.animated.d-inline-block").text();
const image = $("#thumbnail").attr("src");
const type = link.includes("series") ? "series" : "movie";
const synopsis = $(".col-12.iq-mb-30.animated.fadeIn").first().text() ||
$(".description-content").text();
const tags = $(".p-0.mt-2.list-inline.d-flex.flex-wrap.movie-tag")
.find("li")
.map((i, el) => $(el).text())
.slice(0, 3)
.get();
const links = [];
if (type === "movie") {
const directLinks = [];
directLinks.push({ title: "Movie", link: baseUrl + link });
links.push({ title: "Movie", directLinks: directLinks });
}
else {
$("#episodes")
.children()
.map((i, element) => {
let directLinks = [];
$(element)
.find(".episode-block")
.map((j, ep) => {
const link = baseUrl + $(ep).find("a").attr("href") || "";
const title = "Episode " + $(ep).find(".episode-number").text().split("E")[1];
directLinks.push({ title, link });
});
links.push({ title: "Season " + (i + 1), directLinks: directLinks });
});
}
return {
image: image || "",
imdbId: "",
linkList: links,
title: title || "",
synopsis: synopsis,
tags: tags,
type: type,
};
}
catch (err) {
console.error("prton", err);
return {
title: "",
synopsis: "",
image: "",
imdbId: "",
type: "movie",
linkList: [],
};
}
});
};
exports.getMeta = getMeta;

View File

@@ -1,85 +1 @@
"use strict"; "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}){const{getBaseUrl:getBaseUrl,axios:axios,cheerio:cheerio}=providerContext,baseUrl=yield getBaseUrl("protonMovies");return posts({url:`${baseUrl+filter}/page/${page}/`,baseUrl:baseUrl,signal:signal,axios:axios,cheerio:cheerio})})};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,axios:axios,cheerio:cheerio}=providerContext,baseUrl=yield getBaseUrl("protonMovies");return posts({url:`${baseUrl}/search/${searchQuery}/page/${page}/`,baseUrl:baseUrl,signal:signal,axios:axios,cheerio:cheerio})})};function posts(_a){return __awaiter(this,arguments,void 0,function*({url:url,baseUrl:baseUrl,signal:signal,axios:axios,cheerio:cheerio}){try{const data=(yield axios.get(url,{headers:{referer:baseUrl},signal:signal})).data,regex=/\[(?=.*?"<div class")(.*?)\]/g,htmlArray=null==data?void 0:data.match(regex),html=JSON.parse(htmlArray[htmlArray.length-1]).join("").replace(/\\"/g,'"').replace(/\\'/g,"'").replace(/\\n/g,"\n").replace(/\\t/g,"\t").replace(/\\r/g,"\r").replace(/&quot;/g,'"').replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&amp;/g,"&"),$=cheerio.load(html),catalog=[];return $(".col.mb-4").map((i,element)=>{const title=$(element).find("h5").text(),link=$(element).find("h5").find("a").attr("href"),image=$(element).find("img").attr("data-src")||$(element).find("img").attr("src")||"";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) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getSearchPosts = exports.getPosts = void 0;
const getPosts = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ filter, page, signal, providerContext, }) {
const { getBaseUrl, axios, cheerio } = providerContext;
const baseUrl = yield getBaseUrl("protonMovies");
const url = `${baseUrl + filter}/page/${page}/`;
return posts({ url, baseUrl, signal, axios, cheerio });
});
};
exports.getPosts = getPosts;
const getSearchPosts = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ searchQuery, page, signal, providerContext, }) {
const { getBaseUrl, axios, cheerio } = providerContext;
const baseUrl = yield getBaseUrl("protonMovies");
const url = `${baseUrl}/search/${searchQuery}/page/${page}/`;
return posts({ url, baseUrl, signal, axios, cheerio });
});
};
exports.getSearchPosts = getSearchPosts;
function posts(_a) {
return __awaiter(this, arguments, void 0, function* ({ url, baseUrl, signal, axios, cheerio, }) {
try {
function decodeHtml(encodedArray) {
// Join array elements into a single string
const joined = encodedArray.join("");
// Replace escaped quotes
const unescaped = joined.replace(/\\"/g, '"').replace(/\\'/g, "'");
// Remove remaining escape characters
const cleaned = unescaped
.replace(/\\n/g, "\n")
.replace(/\\t/g, "\t")
.replace(/\\r/g, "\r");
// Convert literal string representations back to characters
const decoded = cleaned
.replace(/&quot;/g, '"')
.replace(/&lt;/g, "<")
.replace(/&gt;/g, ">")
.replace(/&amp;/g, "&");
return decoded;
}
const res = yield axios.get(url, {
headers: {
referer: baseUrl,
},
signal,
});
const data = res.data;
const regex = /\[(?=.*?"<div class")(.*?)\]/g;
const htmlArray = data === null || data === void 0 ? void 0 : data.match(regex);
const html = decodeHtml(JSON.parse(htmlArray[htmlArray.length - 1]));
const $ = cheerio.load(html);
const catalog = [];
$(".col.mb-4").map((i, element) => {
const title = $(element).find("h5").text();
const link = $(element).find("h5").find("a").attr("href");
const image = $(element).find("img").attr("data-src") ||
$(element).find("img").attr("src") ||
"";
if (title && link && image) {
catalog.push({
title: title,
link: link,
image: image,
});
}
});
return catalog;
}
catch (err) {
console.error("protonGetPosts error ", err);
return [];
}
});
}

File diff suppressed because one or more lines are too long

View File

@@ -1,66 +1 @@
"use strict"; "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(o,m,k,k2){void 0===k2&&(k2=k);var desc=Object.getOwnPropertyDescriptor(m,k);desc&&!("get"in desc?!m.__esModule:desc.writable||desc.configurable)||(desc={enumerable:!0,get:function(){return m[k]}}),Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){void 0===k2&&(k2=k),o[k2]=m[k]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}:function(o,v){o.default=v}),__importStar=this&&this.__importStar||function(){var ownKeys=function(o){return ownKeys=Object.getOwnPropertyNames||function(o){var ar=[];for(var k in o)Object.prototype.hasOwnProperty.call(o,k)&&(ar[ar.length]=k);return ar},ownKeys(o)};return function(mod){if(mod&&mod.__esModule)return mod;var result={};if(null!=mod)for(var k=ownKeys(mod),i=0;i<k.length;i++)"default"!==k[i]&&__createBinding(result,mod,k[i]);return __setModuleDefault(result,mod),result}}(),__importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.providerContext=void 0;const axios_1=__importDefault(require("axios")),getBaseUrl_1=require("./getBaseUrl"),headers_1=require("./headers"),cheerio=__importStar(require("cheerio")),hubcloudExtractor_1=require("./hubcloudExtractor"),gofileExtracter_1=require("./gofileExtracter"),superVideoExtractor_1=require("./superVideoExtractor"),gdflixExtractor_1=require("./gdflixExtractor"),react_native_aes_crypto_1=__importDefault(require("react-native-aes-crypto")),extractors={hubcloudExtracter:hubcloudExtractor_1.hubcloudExtracter,gofileExtracter:gofileExtracter_1.gofileExtracter,superVideoExtractor:superVideoExtractor_1.superVideoExtractor,gdFlixExtracter:gdflixExtractor_1.gdFlixExtracter};exports.providerContext={axios:axios_1.default,getBaseUrl:getBaseUrl_1.getBaseUrl,commonHeaders:headers_1.headers,Aes:react_native_aes_crypto_1.default,cheerio:cheerio,extractors:extractors};
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.providerContext = void 0;
const axios_1 = __importDefault(require("axios"));
const getBaseUrl_1 = require("./getBaseUrl");
const headers_1 = require("./headers");
const cheerio = __importStar(require("cheerio"));
const hubcloudExtractor_1 = require("./hubcloudExtractor");
const gofileExtracter_1 = require("./gofileExtracter");
const superVideoExtractor_1 = require("./superVideoExtractor");
const gdflixExtractor_1 = require("./gdflixExtractor");
const react_native_aes_crypto_1 = __importDefault(require("react-native-aes-crypto"));
/**
* Context for provider functions.
* This context is used to pass common dependencies to provider functions.
*/
const extractors = {
hubcloudExtracter: hubcloudExtractor_1.hubcloudExtracter,
gofileExtracter: gofileExtracter_1.gofileExtracter,
superVideoExtractor: superVideoExtractor_1.superVideoExtractor,
gdFlixExtracter: gdflixExtractor_1.gdFlixExtracter,
};
exports.providerContext = {
axios: axios_1.default,
getBaseUrl: getBaseUrl_1.getBaseUrl,
commonHeaders: headers_1.headers,
Aes: react_native_aes_crypto_1.default,
cheerio,
extractors,
};

View File

@@ -1,14 +1 @@
"use strict"; "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.genres=exports.catalog=void 0,exports.catalog=[{title:"Popular Movies",filter:"/top/catalog/movie/top.json"},{title:"Featured Movies",filter:"/imdbRating/catalog/movie/imdbRating.json"}],exports.genres=[];
Object.defineProperty(exports, "__esModule", { value: true });
exports.genres = exports.catalog = void 0;
exports.catalog = [
{
title: "Popular Movies",
filter: "/top/catalog/movie/top.json",
},
{
title: "Featured Movies",
filter: "/imdbRating/catalog/movie/imdbRating.json",
},
];
exports.genres = [];

View File

@@ -1,94 +1 @@
"use strict"; "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,_e,_f,_g,_h;try{const{getBaseUrl:getBaseUrl,axios:axios}=providerContext,data=(yield axios.get(link)).data,meta={title:"",synopsis:"",image:"",imdbId:(null===(_b=null==data?void 0:data.meta)||void 0===_b?void 0:_b.imdb_id)||"",type:(null===(_c=null==data?void 0:data.meta)||void 0===_c?void 0:_c.type)||"movie"},baseUrl=yield getBaseUrl("ridomovies");let slug="";try{const data2=(yield axios.get(baseUrl+"/core/api/search?q="+meta.imdbId)).data;if(slug=null===(_e=null===(_d=null==data2?void 0:data2.data)||void 0===_d?void 0:_d.items[0])||void 0===_e?void 0:_e.fullSlug,!slug||"series"===(null==meta?void 0:meta.type))return{title:"",synopsis:"",image:"",imdbId:(null===(_f=null==data?void 0:data.meta)||void 0===_f?void 0:_f.imdb_id)||"",type:(null==meta?void 0:meta.type)||"movie",linkList:[]}}catch(err){return{title:"",synopsis:"",image:"",imdbId:(null==meta?void 0:meta.imdbId)||"",type:(null==meta?void 0:meta.type)||"movie",linkList:[]}}const links=[];let directLinks=[],season=new Map;if("series"===meta.type){null===(_h=null===(_g=null==data?void 0:data.meta)||void 0===_g?void 0:_g.videos)||void 0===_h||_h.map(video=>{(null==video?void 0:video.season)<=0||(season.has(null==video?void 0:video.season)||season.set(null==video?void 0:video.season,[]),season.get(null==video?void 0:video.season).push({title:"Episode "+(null==video?void 0:video.episode),link:""}))});for(const[seasonNum,episodes]of season.entries())links.push({title:"Season "+seasonNum,directLinks:episodes})}else directLinks.push({title:"Movie",link:link}),links.push({title:"Movie",directLinks:directLinks});return Object.assign(Object.assign({},meta),{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) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getMeta = void 0;
const getMeta = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ link, providerContext, }) {
var _b, _c, _d, _e, _f, _g, _h;
try {
const { getBaseUrl, axios } = providerContext;
const res = yield axios.get(link);
const data = res.data;
const meta = {
title: "",
synopsis: "",
image: "",
imdbId: ((_b = data === null || data === void 0 ? void 0 : data.meta) === null || _b === void 0 ? void 0 : _b.imdb_id) || "",
type: ((_c = data === null || data === void 0 ? void 0 : data.meta) === null || _c === void 0 ? void 0 : _c.type) || "movie",
};
const baseUrl = yield getBaseUrl("ridomovies");
let slug = "";
try {
const res2 = yield axios.get(baseUrl + "/core/api/search?q=" + meta.imdbId);
const data2 = res2.data;
slug = (_e = (_d = data2 === null || data2 === void 0 ? void 0 : data2.data) === null || _d === void 0 ? void 0 : _d.items[0]) === null || _e === void 0 ? void 0 : _e.fullSlug;
if (!slug || (meta === null || meta === void 0 ? void 0 : meta.type) === "series") {
return {
title: "",
synopsis: "",
image: "",
imdbId: ((_f = data === null || data === void 0 ? void 0 : data.meta) === null || _f === void 0 ? void 0 : _f.imdb_id) || "",
type: (meta === null || meta === void 0 ? void 0 : meta.type) || "movie",
linkList: [],
};
}
}
catch (err) {
return {
title: "",
synopsis: "",
image: "",
imdbId: (meta === null || meta === void 0 ? void 0 : meta.imdbId) || "",
type: (meta === null || meta === void 0 ? void 0 : meta.type) || "movie",
linkList: [],
};
}
const links = [];
let directLinks = [];
let season = new Map();
if (meta.type === "series") {
(_h = (_g = data === null || data === void 0 ? void 0 : data.meta) === null || _g === void 0 ? void 0 : _g.videos) === null || _h === void 0 ? void 0 : _h.map((video) => {
if ((video === null || video === void 0 ? void 0 : video.season) <= 0)
return;
if (!season.has(video === null || video === void 0 ? void 0 : video.season)) {
season.set(video === null || video === void 0 ? void 0 : video.season, []);
}
season.get(video === null || video === void 0 ? void 0 : video.season).push({
title: "Episode " + (video === null || video === void 0 ? void 0 : video.episode),
link: "",
});
});
for (const [seasonNum, episodes] of season.entries()) {
links.push({
title: "Season " + seasonNum,
directLinks: episodes,
});
}
}
else {
directLinks.push({ title: "Movie", link: link });
links.push({ title: "Movie", directLinks: directLinks });
}
return Object.assign(Object.assign({}, meta), { linkList: links });
}
catch (err) {
return {
title: "",
synopsis: "",
image: "",
imdbId: "",
type: "movie",
linkList: [],
};
}
});
};
exports.getMeta = getMeta;

View File

@@ -1,79 +1 @@
"use strict"; "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}){try{const catalog=[],url="https://cinemeta-catalogs.strem.io"+filter,data=(yield providerContext.axios.get(url,{headers:providerContext.commonHeaders,signal:signal})).data;return null==data||data.metas.map(result=>{const title=null==result?void 0:result.name,id=(null==result?void 0:result.imdb_id)||(null==result?void 0:result.id),type=null==result?void 0:result.type,image=null==result?void 0:result.poster;id&&catalog.push({title:title,link:`https://v3-cinemeta.strem.io/meta/${type}/${id}.json`,image:image})}),catalog}catch(err){return[]}})};exports.getPosts=getPosts;const getSearchPosts=function(_a){return __awaiter(this,arguments,void 0,function*({searchQuery:searchQuery,page:page,signal:signal,providerContext:providerContext}){try{const{axios:axios,commonHeaders:headers}=providerContext;if(page>1)return[];const catalog=[],url2=`https://v3-cinemeta.strem.io/catalog/movie/top/search=${encodeURI(searchQuery)}.json`,data2=(yield axios.get(url2,{headers:headers,signal:signal})).data;return null==data2||data2.metas.map(result=>{const title=(null==result?void 0:result.name)||"",id=(null==result?void 0:result.imdb_id)||(null==result?void 0:result.id),image=null==result?void 0:result.poster,type=null==result?void 0:result.type;id&&catalog.push({title:title,link:`https://v3-cinemeta.strem.io/meta/${type}/${id}.json`,image:image})}),catalog}catch(err){return[]}})};exports.getSearchPosts=getSearchPosts;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getSearchPosts = exports.getPosts = void 0;
const getPosts = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ filter, signal, providerContext, }) {
try {
const catalog = [];
const url = "https://cinemeta-catalogs.strem.io" + filter;
console.log("allGetPostUrl", url);
const res = yield providerContext.axios.get(url, {
headers: providerContext.commonHeaders,
signal,
});
const data = res.data;
data === null || data === void 0 ? void 0 : data.metas.map((result) => {
const title = result === null || result === void 0 ? void 0 : result.name;
const id = (result === null || result === void 0 ? void 0 : result.imdb_id) || (result === null || result === void 0 ? void 0 : result.id);
const type = result === null || result === void 0 ? void 0 : result.type;
const image = result === null || result === void 0 ? void 0 : result.poster;
if (id) {
catalog.push({
title: title,
link: `https://v3-cinemeta.strem.io/meta/${type}/${id}.json`,
image: image,
});
}
});
console.log("catalog", catalog.length);
return catalog;
}
catch (err) {
console.error("AutoEmbed error ", err);
return [];
}
});
};
exports.getPosts = getPosts;
const getSearchPosts = function (_a) {
return __awaiter(this, arguments, void 0, function* ({ searchQuery, page, signal, providerContext, }) {
try {
const { axios, commonHeaders: headers } = providerContext;
if (page > 1) {
return [];
}
const catalog = [];
const url2 = `https://v3-cinemeta.strem.io/catalog/movie/top/search=${encodeURI(searchQuery)}.json`;
const res2 = yield axios.get(url2, { headers, signal });
const data2 = res2.data;
data2 === null || data2 === void 0 ? void 0 : data2.metas.map((result) => {
const title = (result === null || result === void 0 ? void 0 : result.name) || "";
const id = (result === null || result === void 0 ? void 0 : result.imdb_id) || (result === null || result === void 0 ? void 0 : result.id);
const image = result === null || result === void 0 ? void 0 : result.poster;
const type = result === null || result === void 0 ? void 0 : result.type;
if (id) {
catalog.push({
title: title,
link: `https://v3-cinemeta.strem.io/meta/${type}/${id}.json`,
image: image,
});
}
});
return catalog;
}
catch (err) {
console.error("AutoEmbed error ", err);
return [];
}
});
};
exports.getSearchPosts = getSearchPosts;

View File

@@ -1,71 +1 @@
"use strict"; "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=_a=>__awaiter(void 0,[_a],void 0,function*({link:data,providerContext:providerContext}){var _b,_c;try{const{cheerio:cheerio,commonHeaders:headers,axios:axios}=providerContext,streamData=JSON.parse(data),streamLinks=[],url=(null==streamData?void 0:streamData.baseUrl)+"/api/"+(null==streamData?void 0:streamData.slug),res=yield axios.get(url,{headers:headers}),iframeUrl=(null===(_c=null===(_b=res.data.data)||void 0===_b?void 0:_b[0])||void 0===_c?void 0:_c.url).split('src="')[1].split('"')[0],iframeRes=yield axios.get(iframeUrl,{headers:Object.assign(Object.assign({},headers),{Referer:null==streamData?void 0:streamData.baseUrl})}),script=cheerio.load(iframeRes.data)('script:contains("eval")').html();if(!script)throw new Error("Unable to find script");const srcUrl=unpackJavaScript(script.trim());return streamLinks.push({link:srcUrl,server:"rido",type:"m3u8",headers:{Referer:iframeUrl}}),streamLinks}catch(e){return[]}});function unpackJavaScript(packedCode){const encodedString=packedCode.split("|aHR")[1].split("|")[0];var base64;return atob((base64="aHR"+encodedString)+"=".repeat((4-base64.length%4)%4))}exports.getStream=getStream;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getStream = void 0;
const getStream = (_a) => __awaiter(void 0, [_a], void 0, function* ({ link: data, providerContext, }) {
var _b, _c;
try {
const { cheerio, commonHeaders: headers, axios } = providerContext;
const streamData = JSON.parse(data);
const streamLinks = [];
// const path =
// streamData?.type === 'movie'
// ? `/${streamData?.slug}`
// : `/${streamData?.slug}/season-${streamData?.season}/episode-${streamData?.episode}`;
// const url = streamData?.baseUrl + path;
// console.log('all', url);
// const res = await axios.get(url, {headers});
// const postId = res.data.split('\\"postid\\":\\"')[1].split('\\"')[0];
// console.log('rido post id', postId);
const url = (streamData === null || streamData === void 0 ? void 0 : streamData.baseUrl) + "/api/" + (streamData === null || streamData === void 0 ? void 0 : streamData.slug);
console.log("rido url", url);
const res = yield axios.get(url, { headers });
const iframe = (_c = (_b = res.data.data) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.url;
console.log("rido data", iframe);
const iframeUrl = iframe.split('src="')[1].split('"')[0];
console.log("rido iframeUrl", iframeUrl);
const iframeRes = yield axios.get(iframeUrl, {
headers: Object.assign(Object.assign({}, headers), { Referer: streamData === null || streamData === void 0 ? void 0 : streamData.baseUrl }),
});
const $ = cheerio.load(iframeRes.data);
const script = $('script:contains("eval")').html();
if (!script) {
throw new Error("Unable to find script");
}
// console.log('rido script', script);
const srcUrl = unpackJavaScript(script.trim());
console.log("rido srcUrl", srcUrl);
streamLinks.push({
link: srcUrl,
server: "rido",
type: "m3u8",
headers: {
Referer: iframeUrl,
},
});
return streamLinks;
}
catch (e) {
console.log("rido get stream err", e);
return [];
}
});
exports.getStream = getStream;
function unpackJavaScript(packedCode) {
const encodedString = packedCode.split("|aHR")[1].split("|")[0];
const base64Url = "aHR" + encodedString;
function addPadding(base64) {
return base64 + "=".repeat((4 - (base64.length % 4)) % 4);
}
console.log("rido base64Url", base64Url);
const unpackedCode = atob(addPadding(base64Url));
return unpackedCode;
}

Some files were not shown because too many files have changed in this diff Show More