UNPKG

rsshub

Version:
60 lines (59 loc) 1.94 kB
import { t as config } from "./config-Bpyy15zS.mjs"; import { t as ConfigNotFoundError } from "./config-not-found-fQ5mxvDU.mjs"; import { t as getFanfou } from "./utils-C4xS73WE.mjs"; import { getEntities, getPlainText } from "fanfou-sdk"; //#region lib/routes/fanfou/public-timeline.ts const route = { path: "/public_timeline/:keyword", categories: ["social-media"], example: "/fanfou/public_timeline/RSSHub", parameters: { keyword: "关键字" }, name: "饭否搜索", maintainers: ["junbaor"], features: { requireConfig: [ { name: "FANFOU_CONSUMER_KEY", description: "饭否 Consumer Key" }, { name: "FANFOU_CONSUMER_SECRET", description: "饭否 Consumer Secret" }, { name: "FANFOU_USERNAME", description: "饭否用户名" }, { name: "FANFOU_PASSWORD", description: "饭否密码" } ] }, handler }; async function handler(ctx) { if (!config.fanfou || !config.fanfou.consumer_key || !config.fanfou.consumer_secret || !config.fanfou.username || !config.fanfou.password) throw new ConfigNotFoundError("Fanfou RSS is disabled due to the lack of <a href=\"https://docs.rsshub.app/deploy/config#route-specific-configurations\">relevant config</a>"); const { keyword } = ctx.req.param(); const result = (await (await getFanfou()).get("/search/public_timeline", { q: keyword, mode: "lite", format: "html" })).map((item) => { let imgHTML = ""; if (item.photo) imgHTML = `<br/><img src="${item.photo.largeurl.replace(/@.[^\n\r.\u{2028}\u{2029}]*\..+$/u, "")}" alt="饭否动态图片"/>`; return { title: getPlainText(getEntities(item.text)), author: item.user.name, description: item.text + imgHTML, pubDate: item.createdAt, link: `https://fanfou.com/statuses/${item.id}` }; }); return { title: `饭否搜索-${keyword}`, link: `https://fanfou.com/q/${keyword}`, description: `饭否搜索-${keyword}`, item: result }; } //#endregion export { route };