rsshub
Version:
Make RSS Great Again!
49 lines (48 loc) • 1.51 kB
JavaScript
import { t as rofetch } from "./ofetch-U0CdpE2g.mjs";
import { t as parseDate } from "./parse-date-3kcy2Eau.mjs";
import { t as cache_default } from "./cache-C1Y-9qDV.mjs";
import { load } from "cheerio";
//#region lib/routes/iracing/news.ts
const route = {
path: "/news",
categories: ["game"],
example: "/iracing/news",
features: {
requireConfig: false,
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,
supportPodcast: false,
supportScihub: false
},
radar: [{
source: ["www.iracing.com/category/news/sim-racing-news"],
target: "/news"
}],
name: "News",
maintainers: ["canonnizq"],
handler: async () => {
const url = "https://www.iracing.com/category/news/sim-racing-news/";
const response = await rofetch(url);
const $ = load(response);
const links = $("#page .clearfix h2 a").toArray().map((item) => $(item).attr("href"));
return {
title: "iRacing News",
link: url,
item: await Promise.all(links.map((link) => cache_default.tryGet(link, async () => {
const response = await rofetch(link);
const $ = load(response);
return {
title: $("h1 a").text(),
link,
author: $(".page-header a[rel=\"author\"]").text(),
pubDate: parseDate($(".page-header small").text().trim().split(" by", 1)[0], "MMMM D, YYYY"),
itunes_item_image: $("#page img").first().attr("src"),
content: { html: $("#page > div > p").toArray().map((x) => $(x).prop("outerHTML")).join("") }
};
})))
};
}
};
//#endregion
export { route };