UNPKG

rsshub

Version:
60 lines (59 loc) 1.74 kB
import { t as rofetch } from "./ofetch-W1aeTHCo.mjs"; import { t as parseDate } from "./parse-date-CjhZE69i.mjs"; import markdownit from "markdown-it"; //#region lib/routes/getdailyart/index.ts const route = { path: "/:language?", categories: ["picture"], example: "/getdailyart/en", parameters: { language: "Support en, es, fr, de, it, zh, jp, etc. English by default." }, name: "DailyArt", maintainers: ["zphw"], handler }; const md = markdownit({ html: true, breaks: true }); async function handler(ctx) { const { language = "en" } = ctx.req.param(); const limit = Number(ctx.req.query("limit") ?? "10"); const apiUrl = "https://api.getdailyart.com/api"; const headers = { lang: language, timezone: "UTC" }; const [daily, archival] = await Promise.all([rofetch(`${apiUrl}/artworks/daily`, { query: { inches: 0 }, headers }), rofetch(`${apiUrl}/artworks/archival`, { query: { inches: 0, limit: limit - 1, page: 1 }, headers })]); return { title: "DailyArt", link: "https://www.getdailyart.com/", language, item: [daily, ...archival.data].slice(0, limit).map((artwork) => ({ title: artwork.name, description: `<img src="${artwork.image}"><p>${[ artwork.date, artwork.size, artwork.technique, artwork.museum?.name, artwork.copyrights ].filter(Boolean).join(" · ")}</p>${md.render(artwork.description)}`, author: artwork.authors.map((author) => author.name).join(", "), category: artwork.genre ? [artwork.genre.name] : void 0, pubDate: parseDate(artwork.publish_date), link: artwork.share_url.split("?", 1)[0].replace("//getdailyart.com/", "//www.getdailyart.com/"), guid: `getdailyart:${artwork.id}` })) }; } //#endregion export { route };