UNPKG

rsshub

Version:
74 lines (72 loc) 2.85 kB
import "./esm-shims-CzJ_djXG.mjs"; import { t as config } from "./config-C37vj7VH.mjs"; import { t as ViewType } from "./types-D84BRIt4.mjs"; import "./dist-BInvbO1W.mjs"; import "./logger-Czu8UMNd.mjs"; import "./ofetch-BIyrKU3Y.mjs"; import { t as cache_default } from "./cache-Bo__VnGm.mjs"; import "./helpers-DxBp0Pty.mjs"; import "./proxy-Db7uGcYb.mjs"; import { t as got_default } from "./got-KxxWdaxq.mjs"; import { t as timezone } from "./timezone-D8cuwzTY.mjs"; import "./puppeteer-DGmvuGvT.mjs"; import { n as queryToBoolean, t as fallback } from "./readable-social-DoIL4WB3.mjs"; import "./puppeteer-utils-BK3JC9qW.mjs"; import { t as utils_default } from "./utils-D1eKDLN1.mjs"; import querystring from "node:querystring"; //#region lib/routes/weibo/keyword.ts const route = { path: "/keyword/:keyword/:routeParams?", categories: ["social-media"], view: ViewType.SocialMedia, example: "/weibo/keyword/RSSHub", parameters: { keyword: "你想订阅的微博关键词", routeParams: "额外参数;请参阅上面的说明和表格" }, features: { requireConfig: [{ name: "WEIBO_COOKIES", optional: true, description: "" }], requirePuppeteer: true, antiCrawler: false, supportBT: false, supportPodcast: false, supportScihub: false }, name: "关键词", maintainers: ["DIYgod", "Rongronggg9"], handler }; async function handler(ctx) { const keyword = ctx.req.param("keyword"); const data = await utils_default.tryWithCookies((cookies) => cache_default.tryGet(`weibo:keyword:${keyword}`, async () => { return (await got_default({ method: "get", url: `https://m.weibo.cn/api/container/getIndex?containerid=100103type%3D61%26q%3D${encodeURIComponent(keyword)}%26t%3D0`, headers: { Referer: `https://m.weibo.cn/p/searchall?containerid=100103type%3D1%26q%3D${encodeURIComponent(keyword)}`, Cookie: cookies, ...utils_default.apiHeaders } })).data.data.cards; }, config.cache.routeExpire, false)); const routeParams = querystring.parse(ctx.req.param("routeParams")); return utils_default.sinaimgTvax({ title: `又有人在微博提到${keyword}了`, link: `http://s.weibo.com/weibo/${encodeURIComponent(keyword)}&b=1&nodup=1`, description: `又有人在微博提到${keyword}了`, item: data.filter((i) => i.mblog).map((item) => { item.mblog.created_at = timezone(item.mblog.created_at, 8); if (item.mblog.retweeted_status && item.mblog.retweeted_status.created_at) item.mblog.retweeted_status.created_at = timezone(item.mblog.retweeted_status.created_at, 8); return utils_default.formatExtended(ctx, item.mblog, void 0, { showAuthorInTitle: fallback(void 0, queryToBoolean(routeParams.showAuthorInTitle), true), showAuthorInDesc: fallback(void 0, queryToBoolean(routeParams.showAuthorInDesc), true) }); }) }); } //#endregion export { route };