UNPKG

rsshub

Version:
53 lines (52 loc) 1.6 kB
import { t as parseDate } from "./parse-date-3kcy2Eau.mjs"; import { t as cache_default } from "./cache-C1Y-9qDV.mjs"; import { t as got_default } from "./got-DUpa1V3-.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 response = await got_default(baseUrl); const $ = load(response.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 pubDateStr = i.find(".newsDate").text().slice(0, 10); const pubDate = parseDate(pubDateStr, "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 };