import { EpisodeLink, Info, Link, ProviderContext } from "../types"; export const getMeta = async function ({ link, providerContext, }: { link: string; providerContext: ProviderContext; }): Promise { try { const { axios, cheerio } = providerContext; const baseUrl = link?.split("/").slice(0, 3).join("/"); const url = link; const res = await axios.get(url); const data = res.data; const $ = cheerio.load(data); const title = $(".directory") .children() .first() .text() .trim() ?.split("/") .pop() ?.trim() || ""; const links: Link[] = []; $('.directory-entry:not(:contains("Parent Directory"))').map( (i, element) => { const link = $(element).attr("href"); if (link) { links.push({ episodesLink: baseUrl + link, title: $(element).text(), }); } } ); const directLinks: EpisodeLink[] = []; $('.file-entry:not(:contains("Parent Directory"))').map((i, element) => { const link = $(element).attr("href"); if ( link && ($(element).text()?.includes(".mp4") || $(element).text()?.includes(".mkv")) ) { directLinks.push({ title: i + 1 + ". " + $(element).text(), link: baseUrl + link, }); } }); if (directLinks.length > 0) { links.push({ title: title + " DL", directLinks: directLinks, }); } return { title: title, synopsis: "", image: "", imdbId: "", type: "movie", linkList: links, }; } catch (err) { return { title: "", synopsis: "", image: "", imdbId: "", type: "movie", linkList: [], }; } };