UNPKG

rsshub

Version:
46 lines (45 loc) 1.64 kB
import { t as rofetch } from "./ofetch-W1aeTHCo.mjs"; import { t as parseDate } from "./parse-date-CjhZE69i.mjs"; import { t as cache_default } from "./cache-CiDoUSLo.mjs"; //#region lib/routes/missevan/drama.ts const route = { path: "/drama/:id", categories: ["multimedia"], example: "/missevan/drama/43922", parameters: { id: "剧集 id,在剧集主页 URL 中可以找到" }, name: "广播剧", maintainers: ["FlashWingShadow"], handler }; const host = "www.missevan.com"; async function handler(ctx) { const { id } = ctx.req.param(); const dramaResp = await rofetch(`https://${host}/dramaapi/getdrama?drama_id=${id}`); const items = await Promise.all(dramaResp.info.episodes.episode.map((item) => { const soundUrl = `https://www.missevan.com/sound/getsound?soundid=${item.sound_id}`; return cache_default.tryGet(soundUrl, async () => { const soundData = (await rofetch(soundUrl)).info.sound; return { title: item.name, enclosure_url: soundData.soundurl, itunes_duration: Math.trunc(soundData.duration / 1e3), enclosure_type: "audio/mpeg", image: dramaResp.info.drama.cover, itunes_author: soundData.username, itunes_category: "", link: `https://www.missevan.com/sound/player?id=${item.sound_id}`, description: `<img src=${dramaResp.info.drama.cover}><br>${soundData.intro}`, pubDate: parseDate(soundData.last_update_time * 1e3) }; }); })); return { title: dramaResp.info.drama.name, link: `https://${host}/mdrama/drama/${id}`, image: dramaResp.info.drama.cover, description: dramaResp.info.drama.abstract, item: items }; } //#endregion export { route };