rsshub
Version:
Make RSS Great Again!
51 lines (50 loc) • 1.54 kB
JavaScript
import { t as parseDate } from "./parse-date-Cr0wQjV_.mjs";
import { t as cache_default } from "./cache-BkqOokyU.mjs";
import { t as got_default } from "./got-BTowW50G.mjs";
import { load } from "cheerio";
//#region lib/routes/sega/maimaidx.ts
const route = {
path: "/maimaidx/news",
categories: ["game"],
example: "/sega/maimaidx/news",
radar: [{ source: ["info-maimai.sega.jp/"] }],
name: "maimai DX Japanese Ver. News",
maintainers: ["randompasser"],
handler,
url: "info-maimai.sega.jp/"
};
async function handler() {
const baseUrl = "https://info-maimai.sega.jp/";
const parseContent = (htmlString, image) => {
const content = load(htmlString)(".maiMd");
content.prepend(image);
content.find(".hrLine").replaceWith("<hr/>");
return content.html();
};
const $ = load((await got_default(baseUrl)).data);
const list = $(".maiPager-content .newsBox");
return {
title: "maimai DX - Japanese Ver. News",
link: baseUrl,
language: "ja",
item: await Promise.all(list.map(async (_, items) => {
const i = $(items);
const title = i.find(".newsLink").text();
const pubDate = parseDate(i.find(".newsDate").text().slice(0, 10), "YYYY.MM.DD");
const image = i.find(".newsImg");
const link = i.find("a").attr("href");
return await cache_default.tryGet(link, async () => {
const response = await got_default(link);
const description = parseContent(response.body, image);
return {
title,
link,
description,
pubDate
};
});
}))
};
}
//#endregion
export { route };