UNPKG

rsshub

Version:
80 lines (78 loc) 2.24 kB
import "./esm-shims-CzJ_djXG.mjs"; import "./config-C37vj7VH.mjs"; import "./dist-BInvbO1W.mjs"; import "./logger-Czu8UMNd.mjs"; import "./ofetch-BIyrKU3Y.mjs"; import "./helpers-DxBp0Pty.mjs"; import { t as got_default } from "./got-KxxWdaxq.mjs"; //#region lib/routes/douban/channel/subject.ts const route = { path: "/channel/:id/subject/:nav", categories: ["social-media"], example: "/douban/channel/30168934/subject/0", parameters: { id: "频道id", nav: "书影音分类" }, features: { requireConfig: false, requirePuppeteer: false, antiCrawler: false, supportBT: false, supportPodcast: false, supportScihub: false }, name: "频道书影音", maintainers: ["umm233"], handler, description: `| 电影 | 电视剧 | 图书 | 唱片 | | ---- | ------ | ---- | ---- | | 0 | 1 | 2 | 3 |` }; async function handler(ctx) { const id = ctx.req.param("id"); const nav = ctx.req.param("nav"); const link = `https://www.douban.com/subject/${id}`; const channel_info_response = await got_default({ method: "get", url: `https://m.douban.com/rexxar/api/v2/elessar/channel/${id}`, headers: { Referer: link } }); const response = await got_default({ method: "get", url: `https://m.douban.com/rexxar/api/v2/elessar/channel/${id}/subjects?ck=null&for_mobile=1`, headers: { Referer: link } }); const channel_name = channel_info_response.data.title; const data = response.data.modules[nav].payload.subjects; let nav_name = ""; switch (nav) { case "0": nav_name = "电影"; break; case "1": nav_name = "电视剧"; break; case "2": nav_name = "书籍"; break; case "3": nav_name = "唱片"; break; } return { title: `豆瓣${channel_name}频道-${nav_name}推荐`, link, description: `豆瓣${channel_name}频道书影音下的${nav_name}推荐`, item: data.map(({ title, extra, cover_img, url }) => { const rate = extra.rating_group.rating ? `${extra.rating_group.rating.value.toFixed(1)}分` : extra.rating_group.null_rating_reason; return { title, description: `标题:${title} <br> 信息:${extra.short_info} <br> 评分:${rate} <br> <img src="${cover_img.url}">`, link: url }; }) }; } //#endregion export { route };