UNPKG

rsshub

Version:
94 lines (89 loc) 2.57 kB
import "./esm-shims-CzJ_djXG.mjs"; import "./config-C37vj7VH.mjs"; import "./dist-BInvbO1W.mjs"; import "./logger-Czu8UMNd.mjs"; import "./ofetch-BIyrKU3Y.mjs"; import "./parse-date-BrP7mxXf.mjs"; import { t as cache_default } from "./cache-Bo__VnGm.mjs"; import "./helpers-DxBp0Pty.mjs"; import { t as got_default } from "./got-KxxWdaxq.mjs"; import "./timezone-D8cuwzTY.mjs"; import { t as utils_default } from "./utils-cZPX1dHe.mjs"; import { load } from "cheerio"; //#region lib/routes/pingwest/user.ts const route = { path: "/user/:uid/:type?/:option?", categories: ["new-media"], example: "/pingwest/user/7781550877/article", parameters: { uid: "用户id, 可从用户主页中得到", type: "内容类型, 默认为`article`", option: "参数" }, features: { requireConfig: false, requirePuppeteer: false, antiCrawler: false, supportBT: false, supportPodcast: false, supportScihub: false }, radar: [{ source: ["pingwest.com/user/:uid/:type", "pingwest.com/"], target: "/user/:uid/:type" }], name: "用户", maintainers: ["sanmmm"], handler, description: `内容类型 | 文章 | 动态 | | ------- | ----- | | article | state | 参数 - \`fulltext\`,全文输出,例如:\`/pingwest/user/7781550877/article/fulltext\`` }; async function handler(ctx) { const { uid, type = "article", option } = ctx.req.param(); const baseUrl = "https://www.pingwest.com"; const aimUrl = `${baseUrl}/user/${uid}/${type}`; const { userName, realUid, userSign, userAvatar } = await cache_default.tryGet(`pingwest:user:info:${uid}`, async () => { const $$1 = load((await got_default(aimUrl, { headers: { Referer: baseUrl } })).data); const userInfoNode = $$1("#J_userId"); return { userName: userInfoNode.text(), realUid: userInfoNode.attr("data-user-id"), userSign: $$1("#J_userSign").text(), userAvatar: $$1("#J_userAvatar").attr("src") }; }); const $ = load((await got_default(`${baseUrl}/api/user_data`, { searchParams: { page: 1, user_id: realUid, tab: type }, headers: { Referer: baseUrl } })).data.data.list); let item = []; const needFullText = option === "fulltext"; switch (type) { case "article": item = await utils_default.articleListParser($, needFullText, cache_default); break; case "state": item = utils_default.statusListParser($); break; } return { title: `品玩 - ${userName} - ${{ article: "文章", state: "动态" }[type]}`, description: userSign, image: userAvatar, link: aimUrl, item }; } //#endregion export { route };