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