UNPKG

rsshub

Version:
67 lines (66 loc) 2.32 kB
import { t as got_default } from "./got-BTowW50G.mjs"; import { load } from "cheerio"; //#region lib/routes/douban/other/doulist.ts const route = { path: "/doulist/:id", categories: ["social-media"], example: "/douban/doulist/37716774", parameters: { id: "豆列id" }, features: { requireConfig: false, requirePuppeteer: false, antiCrawler: false, supportBT: false, supportPodcast: false, supportScihub: false }, name: "豆瓣豆列", maintainers: ["LogicJake", "honue"], handler }; async function handler(ctx) { const id = ctx.req.param("id"); const url = `https://www.douban.com/doulist/${id}`; const $ = load((await got_default({ method: "get", url, headers: { Referer: `https://www.douban.com/doulist/${id}` } })).data); return { title: $("#content h1").text().trim(), link: url, description: $("div.doulist-about").text().trim(), item: $("div.doulist-item").toArray().map((item) => { const type = $(item).find("div.source").text().trim(); let title = $(item).find("div.bd.doulist-note div.title a").text().trim(); let link = $(item).find("div.bd.doulist-note div.title a").attr("href"); let description = $(item).find("div.bd.doulist-note div.abstract").text().trim(); if (type === "来自:豆瓣广播") { title = $(item).find("p.status-content > a").text().trim(); link = $(item).find("p.status-content a").attr("href"); description = $(item).find("span.status-recommend-text").text().trim(); } if ([ "来自:豆瓣电影", "来自:豆瓣", "来自:豆瓣读书", "来自:豆瓣音乐" ].includes(type)) { title = $(item).find("div.bd.doulist-subject div.title a").text().trim(); link = $(item).find("div.bd.doulist-subject div.title a").attr("href"); description = $(item).find("div.bd.doulist-subject div.abstract").text().trim(); const ft = $(item).find("div.ft div.comment-item.content").text().trim(); description = "<div><img width=\"100\" src=\"" + $(item).find("div.post a img").attr("src") + "\"></div>" + description + "<blockquote>" + ft + "</blockquote>"; } const date = $(item).find("div.ft div.actions time span").attr("title"); return { title, link, description, pubDate: new Date(date).toUTCString() }; }) }; } //#endregion export { route };