UNPKG

rsshub

Version:
70 lines (68 loc) 2.63 kB
import "./esm-shims-CzJ_djXG.mjs"; import { t as config } from "./config-C37vj7VH.mjs"; import "./dist-BInvbO1W.mjs"; import "./logger-Czu8UMNd.mjs"; import { t as ofetch_default } from "./ofetch-BIyrKU3Y.mjs"; import { t as cache_default } from "./cache-Bo__VnGm.mjs"; import { load } from "cheerio"; //#region lib/routes/jumeili/home.ts const route = { path: "/home/:column?", categories: ["new-media"], example: "/jumeili/home", parameters: { column: "内容栏, 默认为 `0`(最新)。其他可选:`-1`(头条)、`62073`(精选)、`13243`(年度大会)等。详细可以在开发者工具 Network 面板中找到,如:`https://www.jumeili.cn/ws/AjaxService.ashx?act=index_article&page=1&pageSize=20&column=0`最后的 `column=0` 即为`column` 参数" }, features: { requireConfig: [{ name: "JUMEILI_COOKIE", optional: true, description: "用户登录后,可以从浏览器开发者工具 Network 面板中的 jumeili 页面请求获取 Cookie,如:`ASP.NET_SessionId=xxx;jmlweb4=xxx`全部复制并设置为环境变量" }], antiCrawler: true }, radar: [{ source: ["www.jumeili.cn/", "jumeili.cn/"], target: "/home/:column?" }], name: "首页资讯", maintainers: ["kjasn"], handler, description: `::: Warning 未登录用户无法获取完整文章内容,只能看到预览内容。想要获取完整文章内容,需要设置\`JUMEILI_COOKIE\`环境变量。 :::` }; async function handler(ctx) { const baseUrl = "https://www.jumeili.cn"; const link = `${baseUrl}/ws/AjaxService.ashx?act=index_article&page=1&pageSize=20&column=${ctx.req.param("column") ?? 0}`; const cookie = config.jumeili.cookie; const response = await ofetch_default(link, { headers: { referer: baseUrl, "user-agent": config.trueUA, accept: "application/json, text/javascript, */*; q=0.01", cookie } }); let data = JSON.parse(response); if (data && typeof data === "string") data = JSON.parse(data); let items = data.items.map((item) => ({ title: item.title, link: baseUrl + item.url, description: item.subject, image: item.imgurl, author: item.author })); if (cookie) items = await Promise.all(items.map((item) => cache_default.tryGet(item.link, async () => { const content = load(await ofetch_default(item.link, { headers: { referer: baseUrl, "user-agent": config.trueUA, accept: "application/json, text/javascript, */*; q=0.01", cookie } }))("#Cnt-Main-Article-JML").html(); if (content) item.description = content; return item; }))); return { title: "聚美丽 - 首页资讯", item: items }; } //#endregion export { route };