UNPKG

rsshub

Version:
71 lines (69 loc) 2.24 kB
import "./dist-Bog6z_OM.mjs"; import "./config-MQ-7ebJ_.mjs"; import "./logger-C4avouvV.mjs"; import { t as ofetch_default } from "./ofetch-DKl_Ma9g.mjs"; import { t as parseDate } from "./parse-date-r5WDWHno.mjs"; import "./is-worker-DESPicPc.mjs"; import { t as cache_default } from "./cache-SV6W5EPy.mjs"; import y from "node:zlib"; import { load } from "cheerio"; import markdownit from "markdown-it"; //#region lib/routes/typeless/changelog.ts const md = markdownit({ breaks: true, html: true }); const route = { path: "/changelog", example: "/typeless/changelog", categories: ["program-update"], radar: [{ source: [ "www.typeless.com/help/release-notes/*", "www.typeless.com/help/release-notes", "www.typeless.com" ] }], name: "Changelog", maintainers: ["TonyRL"], handler, url: "www.typeless.com/help/release-notes" }; async function handler() { const baseUrl = "https://www.typeless.com"; const items = (await Promise.all([ "macos", "windows", "ios", "android" ].map(async (platform) => { const $ = load(await ofetch_default(`${baseUrl}/help/release-notes/${platform}`)); const pageProps = JSON.parse($("#__NEXT_DATA__").text()).props.pageProps; return cache_default.tryGet(`typeless:changelog:${platform}:${pageProps.updatedAt}`, () => { const compressedData = pageProps.compressedData; const decodedString = Buffer.from(compressedData, "base64"); const decompressed = y.gunzipSync(decodedString).toString("utf-8"); const changelogData = JSON.parse(decompressed); return { appPlatform: pageProps.platform, decompressedData: Object.values(changelogData).map((item) => item.en) }; }); }))).flatMap((platform) => platform.decompressedData.map((item) => { const features = item.features[0]; return { title: features.title, description: md.render(features.content), pubDate: parseDate(item.date), link: features.learnMore ? `${baseUrl}${features.learnMore}` : void 0, category: [platform.appPlatform], guid: `typeless:${platform.appPlatform}:${item.version}` }; })); return { title: "Typeless app release notes", link: `${baseUrl}/help/release-notes`, image: `${baseUrl}/logo_500.png`, item: items }; } //#endregion export { route };