rsshub
Version:
Make RSS Great Again!
70 lines (68 loc) • 2.23 kB
JavaScript
import "./esm-shims-CzJ_djXG.mjs";
import "./config-C37vj7VH.mjs";
import "./dist-BInvbO1W.mjs";
import "./logger-Czu8UMNd.mjs";
import { t as ofetch_default } from "./ofetch-BIyrKU3Y.mjs";
import { t as parseDate } from "./parse-date-BrP7mxXf.mjs";
import "./md5-C8GRvctM.mjs";
import { t as cache_default } from "./cache-Bo__VnGm.mjs";
import { i as parseReviews, n as fixImages, r as headers, t as baseUrl } from "./utils-BnUyXqXW.mjs";
import { load } from "cheerio";
//#region lib/routes/techpowerup/review.ts
const route = {
path: "/review/:keyword?",
categories: ["new-media"],
example: "/techpowerup/review/amd",
parameters: { keyword: "Search Keyword" },
features: {
requireConfig: false,
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,
supportPodcast: false,
supportScihub: false
},
radar: [{
source: ["techpowerup.com/review/search", "techpowerup.com/review"],
target: ""
}],
name: "Reviews",
maintainers: ["TonyRL"],
handler,
url: "www.techpowerup.com/review/"
};
async function handler(ctx) {
const keyword = ctx.req.param("keyword");
const url = new URL(`${baseUrl}/review/${keyword ? "search/" : ""}`);
if (keyword) {
url.searchParams.set("q", keyword);
url.searchParams.set("_", Date.now().toString());
}
const $ = load(await ofetch_default(url.href, { headers }));
const list = $(".reviewlist-bit").toArray().map((item) => {
const $item = $(item);
const a = $item.find(".title a");
return {
title: a.text(),
link: baseUrl + a.attr("href"),
pubDate: parseDate($item.find(".date time").attr("datetime")),
author: $item.find(".author").contents().filter((_, c) => c.type === "text").text().trim(),
category: $item.find(".category").contents().filter((_, c) => c.type === "text").text().trim()
};
});
const items = await Promise.all(list.map((item) => cache_default.tryGet(item.link, async () => {
const $$1 = load(await ofetch_default(item.link, { headers }));
fixImages($$1);
await parseReviews($$1, item);
return item;
})));
return {
title: "Reviews | TechPowerUp",
link: url.href,
language: "en",
image: "https://tpucdn.com/apple-touch-icon-v1684568903519.png",
item: items
};
}
//#endregion
export { route };