import { Info, Link, ProviderContext } from "../types"; export const getMeta = async function ({ link, providerContext, }: { link: string; providerContext: ProviderContext; }): Promise { try { const url = link; const res = await 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: Link[] = []; $(".custom-links") .find(".ep-button-container") .map((i, element) => { 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: title?.match(/\d+P\b/)?.[0].replace("P", "p") || "", }); } }); if (links.length === 0) { $( ".ep-button-container:not(:has(a:contains('Click Here To Visit')))" ).map((i, element) => { 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: title?.match(/\d+P\b/)?.[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: [], }; } };