UNPKG

rsshub

Version:
88 lines (86 loc) 2.58 kB
import { n as init_esm_shims, t as __dirname } from "./esm-shims-CzJ_djXG.mjs"; import "./config-C37vj7VH.mjs"; import "./dist-BInvbO1W.mjs"; import "./logger-Czu8UMNd.mjs"; import "./ofetch-BIyrKU3Y.mjs"; import "./helpers-DxBp0Pty.mjs"; import { t as art } from "./render-BQo6B4tL.mjs"; import { t as got_default } from "./got-KxxWdaxq.mjs"; import path from "node:path"; import { load } from "cheerio"; //#region lib/routes/ikea/gb/offer.ts init_esm_shims(); const route = { path: "/gb/offer", categories: ["shopping"], example: "/ikea/gb/offer", parameters: {}, features: { requireConfig: false, requirePuppeteer: false, antiCrawler: false, supportBT: false, supportPodcast: false, supportScihub: false }, radar: [{ source: ["ikea.com/gb/en/offers", "ikea.com/"] }], name: "UK - Offers", maintainers: ["HenryQW"], handler, url: "ikea.com/gb/en/offers" }; async function handler() { const link = "https://www.ikea.com/gb/en/offers/"; const $ = load((await got_default(link)).data); const carousel = $(".pub__carousel-slide").toArray().map((e) => { e = $(e); const title = e.find("h3"); const img = e.find(".pub__image").each((_, e$1) => { e$1.attribs.src = e$1.attribs.src.split("?")[0]; delete e$1.attribs.srcset; }); const { searchParams, href } = new URL(e.find("pub-hide-empty-link a").attr("href")); searchParams.delete("itm_content"); searchParams.delete("itm_element"); searchParams.delete("itm_campaign"); return { title: title.text(), description: art(path.join(__dirname, "templates/offer-dd3c267c.art"), { img: img.parent().html(), desc: title.next().parent().html() }), link: href, guid: `${href}#${title.text()}` }; }); const banner = $("div[data-pub-type=\"banner\"]").toArray().map((e) => { e = $(e); const title = e.find("h2"); const next = title.next(); const img = e.find(".pub__image").each((_, e$1) => { e$1.attribs.src = e$1.attribs.src.split("?")[0]; delete e$1.attribs.srcset; }); const { searchParams, href } = new URL(next.find("a").attr("href")); searchParams.delete("itm_content"); searchParams.delete("itm_element"); searchParams.delete("itm_campaign"); return { title: title.text(), description: art(path.join(__dirname, "templates/offer-dd3c267c.art"), { img: img.parent().html(), desc: title.parent().html() }), link: href, guid: `${href}#${title.text()}` }; }); return { title: "IKEA UK - Offers", link, description: "Offers by IKEA UK.", item: [...carousel, ...banner] }; } //#endregion export { route };