UNPKG

rsshub

Version:
48 lines (47 loc) 1.72 kB
import { t as rofetch } from "./ofetch-W1aeTHCo.mjs"; import { t as cache_default } from "./cache-CiDoUSLo.mjs"; import { load } from "cheerio"; //#region lib/routes/acwifi/index.ts const route = { path: "/", categories: ["other"], example: "/acwifi", name: "新闻", maintainers: ["cc798461"], features: { antiCrawler: true }, handler }; const toHex = (s) => Buffer.from(s).toString("hex"); const getCookie = async (url) => { const sessionVerify = (await rofetch.raw(url)).headers.getSetCookie().map((c) => c.split(";", 1)[0]).find((c) => c.startsWith("security_session_verify=")); if (!sessionVerify) return ""; const midVerify = (await rofetch.raw(`${url}?security_verify_data=${toHex("1920,1080")}`, { headers: { Cookie: `${sessionVerify}; srcurl=${toHex(url)}` } })).headers.getSetCookie().map((c) => c.split(";", 1)[0]).find((c) => c.startsWith("security_session_mid_verify=")); return midVerify ? `${sessionVerify}; ${midVerify}` : sessionVerify; }; async function handler() { const baseUrl = "https://www.acwifi.net/"; const cookie = await getCookie(baseUrl); const $ = load(await rofetch(baseUrl, { headers: { Cookie: cookie } })); const list = $("h2").toArray().map((item) => { const $a = $(item).find("a"); return { title: $a.text(), link: $a.attr("href") }; }); return { title: "路由器交流", link: baseUrl, item: await Promise.all(list.map(({ title, link }) => cache_default.tryGet(link, async () => { const content = load(await rofetch(link, { headers: { Cookie: cookie } }))("article.article-content"); content.find("code-block").remove(); return { title, description: content.html(), link }; }))) }; } //#endregion export { route };