UNPKG

rsshub

Version:
60 lines (59 loc) 1.89 kB
import "./types-DNj6Etbg.mjs"; import { t as cache_default } from "./cache-BkqOokyU.mjs"; import { r as utils_default } from "./utils-B3AeRQdV.mjs"; //#region lib/routes/bilibili/bangumi.ts const route = { path: "/bangumi/media/:mediaid/:embed?", name: "番剧", parameters: { mediaid: "番剧媒体 id, 番剧主页 URL 中获取", embed: "默认为开启内嵌视频, 任意值为关闭" }, example: "/bilibili/bangumi/media/9192", categories: ["social-media"], view: 3, maintainers: ["DIYgod", "nuomi1"], handler, features: { requireConfig: false, requirePuppeteer: false, antiCrawler: true, supportRadar: false, supportBT: false, supportPodcast: false, supportScihub: false } }; async function handler(ctx) { const mediaId = ctx.req.param("mediaid"); const embed = !ctx.req.param("embed"); const mediaData = await utils_default.getBangumi(mediaId, cache_default); const seasonId = String(mediaData.season_id); const seasonData = await utils_default.getBangumiItems(seasonId, cache_default); const episodes = []; const getEpisode = (item, title) => ({ title, description: utils_default.renderOGVDescription(embed, item.cover, item.long_title, seasonId, String(item.id)), link: item.share_url, image: item.cover.replace("http://", "https://"), language: "zh-CN" }); for (const item of seasonData.main_section.episodes) { const episode = getEpisode(item, `第${item.title}${item.long_title}`); episodes.push(episode); } for (const section of seasonData.section) for (const item of section.episodes) { const episode = getEpisode(item, `${item.title} ${item.long_title}`); episodes.push(episode); } return { title: mediaData.title, description: mediaData.evaluate, link: mediaData.share_url, item: episodes, image: mediaData.cover.replace("http://", "https://"), language: "zh-CN" }; } //#endregion export { route };