rsshub
Version:
Make RSS Great Again!
60 lines (59 loc) • 1.74 kB
JavaScript
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 };