Files
vega-providers/providers/tokyoInsider/meta.ts
himanshu8443 2a4aa2a680 renaming
2025-06-16 22:26:38 +05:30

66 lines
1.6 KiB
TypeScript

import { Info, ProviderContext } from "../types";
export const getMeta = async function ({
link,
providerContext,
}: {
link: string;
providerContext: ProviderContext;
}): Promise<Info> {
try {
const { cheerio } = providerContext;
const url = link;
const res = await fetch(url);
const data = await res.text();
const $ = cheerio.load(data);
const meta = {
title: $('.c_h2:contains("Title(s):")')
.text()
.replace("Title(s):", "")
.trim()
.split("\n")[0],
synopsis: $('.c_h2b:contains("Summary:"),.c_h2:contains("Summary:")')
.text()
.replace("Summary:", "")
.trim(),
image: $(".a_img").attr("src") || "",
imdbId: "",
type: "series",
};
const episodesList: { title: string; link: string }[] = [];
$(".episode").map((i, element) => {
const link =
"https://www.tokyoinsider.com" + $(element).find("a").attr("href") ||
$(".download-link").attr("href");
let title =
$(element).find("a").find("em").text() +
" " +
$(element).find("a").find("strong").text();
if (!title.trim()) {
title = $(".download-link").text();
}
if (link && title.trim()) {
episodesList.push({ title, link });
}
});
return {
...meta,
linkList: [
{
title: meta.title,
directLinks: episodesList,
},
],
};
} catch (err) {
return {
title: "",
synopsis: "",
image: "",
imdbId: "",
type: "series",
linkList: [],
};
}
};