This commit is contained in:
himanshu8443
2025-06-18 11:42:29 +05:30
parent 490a4bd71d
commit 9621597865
100 changed files with 6898 additions and 5740 deletions

View File

@@ -1,34 +1,45 @@
"use strict";
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 = async function ({ url, providerContext, }) {
const { axios, cheerio, commonHeaders: headers } = providerContext;
console.log("getEpisodeLinks", url);
try {
const res = await 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().replaceAll("-", "").replaceAll(":", "");
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 [];
}
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().replaceAll("-", "").replaceAll(":", "");
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;

View File

@@ -1,4 +1,13 @@
"use strict";
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 = {
@@ -17,88 +26,69 @@ const headers = {
"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",
};
const getMeta = async ({ link, providerContext, }) => {
const getMeta = (_a) => __awaiter(void 0, [_a], void 0, function* ({ link, providerContext, }) {
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
try {
const { axios, cheerio } = providerContext;
const url = link;
console.log("url", url);
const baseUrl = url.split("/").slice(0, 3).join("/");
const response = await axios.get(url, {
headers: {
...headers,
Referer: baseUrl,
},
const response = yield axios.get(url, {
headers: Object.assign(Object.assign({}, headers), { Referer: baseUrl }),
});
const $ = cheerio.load(response.data);
const infoContainer = $(".entry-content,.post-inner");
const heading = infoContainer?.find("h3");
const heading = infoContainer === null || infoContainer === void 0 ? void 0 : infoContainer.find("h3");
const imdbId =
//@ts-ignore
heading?.next("p")?.find("a")?.[0]?.attribs?.href?.match(/tt\d+/g)?.[0] ||
infoContainer.text().match(/tt\d+/g)?.[0] ||
((_g = (_f = (_e = (_d = (_c = (_b = heading === null || heading === void 0 ? void 0 : heading.next("p")) === null || _b === void 0 ? void 0 : _b.find("a")) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.attribs) === null || _e === void 0 ? void 0 : _e.href) === null || _f === void 0 ? void 0 : _f.match(/tt\d+/g)) === null || _g === void 0 ? void 0 : _g[0]) ||
((_h = infoContainer.text().match(/tt\d+/g)) === null || _h === void 0 ? void 0 : _h[0]) ||
"";
// console.log(imdbId)
const type = heading?.next("p")?.text()?.includes("Series Name")
const type = ((_k = (_j = heading === null || heading === void 0 ? void 0 : heading.next("p")) === null || _j === void 0 ? void 0 : _j.text()) === null || _k === void 0 ? void 0 : _k.includes("Series Name"))
? "series"
: "movie";
// console.log(type);
// title
const titleRegex = /Name: (.+)/;
const title = heading?.next("p")?.text()?.match(titleRegex)?.[1] || "";
const title = ((_o = (_m = (_l = heading === null || heading === void 0 ? void 0 : heading.next("p")) === null || _l === void 0 ? void 0 : _l.text()) === null || _m === void 0 ? void 0 : _m.match(titleRegex)) === null || _o === void 0 ? void 0 : _o[1]) || "";
// console.log(title);
// synopsis
const synopsisNode = //@ts-ignore
infoContainer?.find("p")?.next("h3,h4")?.next("p")?.[0]?.children?.[0];
(_t = (_s = (_r = (_q = (_p = infoContainer === null || infoContainer === void 0 ? void 0 : infoContainer.find("p")) === null || _p === void 0 ? void 0 : _p.next("h3,h4")) === null || _q === void 0 ? void 0 : _q.next("p")) === null || _r === void 0 ? void 0 : _r[0]) === null || _s === void 0 ? void 0 : _s.children) === null || _t === void 0 ? void 0 : _t[0];
const synopsis = synopsisNode && "data" in synopsisNode ? synopsisNode.data : "";
// console.log(synopsis);
// image
let image = infoContainer?.find("img[data-lazy-src]")?.attr("data-lazy-src") || "";
let image = ((_u = infoContainer === null || infoContainer === void 0 ? void 0 : infoContainer.find("img[data-lazy-src]")) === null || _u === void 0 ? void 0 : _u.attr("data-lazy-src")) || "";
if (image.startsWith("//")) {
image = "https:" + image;
}
// console.log(image);
// console.log({title, synopsis, image, imdbId, type});
/// Links
const hr = infoContainer?.first()?.find("hr");
const list = hr?.nextUntil("hr");
const hr = (_v = infoContainer === null || infoContainer === void 0 ? void 0 : infoContainer.first()) === null || _v === void 0 ? void 0 : _v.find("hr");
const list = hr === null || hr === void 0 ? void 0 : hr.nextUntil("hr");
const links = [];
list.each((index, element) => {
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
element = $(element);
// title
const title = element?.text() || "";
const quality = element?.text().match(/\d+p\b/)?.[0] || "";
const title = (element === null || element === void 0 ? void 0 : element.text()) || "";
const quality = ((_a = element === null || element === void 0 ? void 0 : element.text().match(/\d+p\b/)) === null || _a === void 0 ? void 0 : _a[0]) || "";
// console.log(title);
// movieLinks
const movieLinks = element
?.next()
.find(".dwd-button")
.text()
.toLowerCase()
.includes("download")
? element?.next().find(".dwd-button")?.parent()?.attr("href")
const movieLinks = (element === null || element === void 0 ? void 0 : element.next().find(".dwd-button").text().toLowerCase().includes("download"))
? (_c = (_b = element === null || element === void 0 ? void 0 : element.next().find(".dwd-button")) === null || _b === void 0 ? void 0 : _b.parent()) === null || _c === void 0 ? void 0 : _c.attr("href")
: "";
// episode links
const vcloudLinks = element
?.next()
.find(".btn-outline[style='background:linear-gradient(135deg,#ed0b0b,#f2d152); color: white;'],.btn-outline[style='background:linear-gradient(135deg,#ed0b0b,#f2d152); color: #fdf8f2;']")
?.parent()
?.attr("href");
const vcloudLinks = (_e = (_d = element === null || element === void 0 ? void 0 : element.next().find(".btn-outline[style='background:linear-gradient(135deg,#ed0b0b,#f2d152); color: white;'],.btn-outline[style='background:linear-gradient(135deg,#ed0b0b,#f2d152); color: #fdf8f2;']")) === null || _d === void 0 ? void 0 : _d.parent()) === null || _e === void 0 ? void 0 : _e.attr("href");
console.log(title);
const episodesLink = (vcloudLinks
? vcloudLinks
: element
?.next()
.find(".dwd-button")
.text()
.toLowerCase()
.includes("episode")
? element?.next().find(".dwd-button")?.parent()?.attr("href")
: (element === null || element === void 0 ? void 0 : element.next().find(".dwd-button").text().toLowerCase().includes("episode"))
? (_g = (_f = element === null || element === void 0 ? void 0 : element.next().find(".dwd-button")) === null || _f === void 0 ? void 0 : _f.parent()) === null || _g === void 0 ? void 0 : _g.attr("href")
: "") ||
element
?.next()
.find(".btn-outline[style='background:linear-gradient(135deg,#0ebac3,#09d261); color: white;']")
?.parent()
?.attr("href");
((_j = (_h = element === null || element === void 0 ? void 0 : element.next().find(".btn-outline[style='background:linear-gradient(135deg,#0ebac3,#09d261); color: white;']")) === null || _h === void 0 ? void 0 : _h.parent()) === null || _j === void 0 ? void 0 : _j.attr("href"));
if (movieLinks || episodesLink) {
links.push({
title,
@@ -133,5 +123,5 @@ const getMeta = async ({ link, providerContext, }) => {
linkList: [],
};
}
};
});
exports.getMeta = getMeta;

View File

@@ -1,4 +1,13 @@
"use strict";
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 = {
@@ -17,57 +26,55 @@ const headers = {
"Upgrade-Insecure-Requests": "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",
};
const getPosts = async ({ filter, page, providerValue, signal, providerContext, }) => {
const getPosts = (_a) => __awaiter(void 0, [_a], void 0, function* ({ filter, page, providerValue, signal, providerContext, }) {
const { getBaseUrl } = providerContext;
const baseUrl = await getBaseUrl("lux");
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 = async ({ searchQuery, page, providerValue, signal, providerContext, }) => {
const getSearchPosts = (_a) => __awaiter(void 0, [_a], void 0, function* ({ searchQuery, page, providerValue, signal, providerContext, }) {
const { getBaseUrl } = providerContext;
const baseUrl = await getBaseUrl("lux");
const baseUrl = yield getBaseUrl("lux");
console.log("vegaGetPosts baseUrl:", providerValue, baseUrl);
const url = `${baseUrl}/page/${page}/?s=${searchQuery}`;
console.log("lux url:", url);
return posts(url, signal, providerContext);
};
});
exports.getSearchPosts = getSearchPosts;
async function posts(url, signal, providerContext) {
try {
const { axios, cheerio } = providerContext;
const urlRes = await axios.get(url, { headers, signal });
const $ = cheerio.load(urlRes.data);
const posts = [];
$(".blog-items")
?.children("article")
?.each((index, element) => {
const post = {
title: $(element)
?.find("a")
?.attr("title")
?.replace("Download", "")
?.match(/^(.*?)\s*\((\d{4})\)|^(.*?)\s*\((Season \d+)\)/)?.[0] ||
$(element)?.find("a")?.attr("title")?.replace("Download", "") ||
"",
link: $(element)?.find("a")?.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 [];
}
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, 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,4 +1,13 @@
"use strict";
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 = {
@@ -17,49 +26,35 @@ const headers = {
"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",
};
async function getStream({ link, type, signal, providerContext, }) {
const { axios, cheerio, extractors } = providerContext;
const { hubcloudExtracter } = extractors;
try {
const streamLinks = [];
console.log("dotlink", link);
if (type === "movie") {
// vlink
const dotlinkRes = await 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?.split("/").pop();
const filepressBaseUrl = filepressLink
?.split("/")
.slice(0, -2)
.join("/");
// console.log('filepressID', filepressID);
// console.log('filepressBaseUrl', filepressBaseUrl);
const filepressTokenRes = await 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 (filepressTokenRes.data?.status) {
const filepressToken = filepressTokenRes.data?.data;
const filepressStreamLink = await axios.post(filepressBaseUrl + "/api/file/downlaod2/", {
id: filepressToken,
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,
}, {
@@ -68,27 +63,41 @@ async function getStream({ link, type, signal, providerContext, }) {
Referer: filepressBaseUrl,
},
});
// console.log('filepressStreamLink', filepressStreamLink.data);
streamLinks.push({
server: "filepress",
link: filepressStreamLink.data?.data?.[0],
type: "mkv",
});
// 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);
}
}
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 [];
}
return await hubcloudExtracter(link, signal);
}
catch (error) {
console.log("getStream error: ", error);
if (error.message.includes("Aborted")) {
}
else {
}
return [];
}
});
}