UNPKG

rsshub

Version:
81 lines (79 loc) 2.69 kB
import "./esm-shims-CzJ_djXG.mjs"; import { t as config } from "./config-C37vj7VH.mjs"; import "./dist-BInvbO1W.mjs"; import "./logger-Czu8UMNd.mjs"; import "./ofetch-BIyrKU3Y.mjs"; import { t as parseDate } from "./parse-date-BrP7mxXf.mjs"; import "./helpers-DxBp0Pty.mjs"; import { t as got_default } from "./got-KxxWdaxq.mjs"; import { t as timezone } from "./timezone-D8cuwzTY.mjs"; import { load } from "cheerio"; import queryString from "query-string"; //#region lib/routes/saraba1st/thread.ts const route = { path: "/thread/:tid", categories: ["bbs"], example: "/saraba1st/thread/751272", parameters: { tid: "帖子 id" }, features: { requireConfig: false, requirePuppeteer: false, antiCrawler: false, supportBT: false, supportPodcast: false, supportScihub: false }, name: "帖子", maintainers: ["zengxs"], handler, description: `帖子网址如果为 \`https://stage1st.com/2b/thread-751272-1-1.html\` 那么帖子 id 就是 \`751272\`。` }; async function handler(ctx) { const tid = ctx.req.param("tid"); const cookieString = config.saraba1st.cookie ?? ""; const host = config.saraba1st.host; const $ = load((await got_default(`${host}/2b/forum.php`, { searchParams: queryString.stringify({ mod: "viewthread", tid, ordertype: 1 }), headers: { Cookie: cookieString } })).data); const title = $("#thread_subject").text(); const list = $("#postlist > div[id^=post_]:not(:first-of-type)"); const count = []; for (let i = 0; i < Math.min(list.length, 20); i++) count.push(i); const staticUrl = new URL("/image/common/none.gif", host); staticUrl.hostname = `static.${staticUrl.hostname.split(".").slice(-2).join(".")}`; const resultItems = count.map((i) => { const each = $(list[i]); const floor = each.find("td.plc .pi a > em").text(); const floorUrl = each.find("td.plc .pi a").attr("href"); const contentHtml = $(each.find("td.t_f")); const imgsHtml = contentHtml.find("img"); for (const element of imgsHtml) if (element.attribs.src === staticUrl.href) { element.attribs.src = element.attribs.file; const imgHtml = $(element); imgHtml.removeAttr("zoomfile"); imgHtml.removeAttr("file"); imgHtml.removeAttr("onmouseover"); imgHtml.removeAttr("onclick"); } contentHtml.find("div.aimg_tip").remove(); return { title: `${title} #${floor}`, link: new URL(floorUrl, `${host}/2b/`).href, description: contentHtml.html(), author: each.find(".authi .xw1").text(), pubDate: timezone(parseDate(each.find(".authi em").text()), 8) }; }); return { title: `Stage1 论坛 - ${title}`, link: `${host}/2b/thread-${tid}-1-1.html`, item: resultItems }; } //#endregion export { route };