rsshub
Version:
Make RSS Great Again!
74 lines (72 loc) • 2.85 kB
JavaScript
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 };