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