rsshub
Version:
Make RSS Great Again!
51 lines (49 loc) • 1.43 kB
JavaScript
import "./config-C37vj7VH.mjs";
import "./logger-Czu8UMNd.mjs";
import "./proxy-Db7uGcYb.mjs";
import { n as puppeteer_default } from "./puppeteer-DGmvuGvT.mjs";
import { load } from "cheerio";
//#region lib/routes/hottoys/index.ts
const route = {
path: "/",
categories: ["shopping"],
example: "/hottoys",
radar: [{ source: ["hottoys.com.hk/"] }],
name: "Toys List",
maintainers: ["jw0903"],
handler,
url: "hottoys.com.hk/",
features: { requirePuppeteer: true }
};
async function handler() {
const baseUrl = "https://www.hottoys.com.hk";
const browser = await puppeteer_default();
const page = await browser.newPage();
await page.setRequestInterception(true);
page.on("request", (request) => {
request.resourceType() === "document" ? request.continue() : request.abort();
});
await page.goto(baseUrl, { waitUntil: "domcontentloaded" });
const response = await page.content();
await page.close();
const $ = load(response);
const items = $("li.productListItem").toArray().map((item) => {
const dom = $(item);
const a = dom.find("a").first();
const img = dom.find("img").first();
return {
title: img.attr("title") ?? "hottoys",
link: `${baseUrl}/${a.attr("href")}`,
description: `<img src="${baseUrl}${img.attr("src")}" />`,
guid: a.attr("href")
};
});
await browser.close();
return {
title: "Hot Toys New Products",
link: baseUrl,
item: items
};
}
//#endregion
export { route };