UNPKG

rsshub

Version:
53 lines (51 loc) 1.58 kB
import "./dist-Bog6z_OM.mjs"; import "./config-MQ-7ebJ_.mjs"; import "./logger-C4avouvV.mjs"; import "./ofetch-DKl_Ma9g.mjs"; import { t as parseDate } from "./parse-date-r5WDWHno.mjs"; import "./is-worker-DESPicPc.mjs"; import "./cache-SV6W5EPy.mjs"; import { a as CDN_HOST, i as API_HOST, o as HOST, r as parseUserData, t as customFetch } from "./utils-XdQQqZZA.mjs"; import { t as renderPost } from "./post-GcTx7037.mjs"; //#region lib/routes/cara/likes.ts const route = { path: ["/likes/:user"], categories: ["social-media"], example: "/cara/likes/fengz", parameters: { user: "username" }, name: "Likes", maintainers: ["KarasuShin"], handler, radar: [{ source: ["cara.app/:user", "cara.app/:user/*"], target: "/likes/:user" }] }; async function handler(ctx) { const user = ctx.req.param("user"); const limit = ctx.req.query("limit") ? Number.parseInt(ctx.req.query("limit"), 10) : 15; const userInfo = await parseUserData(user); const items = (await customFetch(`${API_HOST}/posts/getAllLikesByUser?slug=${userInfo.slug}&take=${limit}`)).data.map((item) => { const description = renderPost({ content: item.content, images: item.images.filter((i) => !i.isCoverImg).map((i) => ({ ...i, src: `${CDN_HOST}/${i.src}` })) }); return { title: item.title || item.content, pubDate: parseDate(item.createdAt), link: `${HOST}/post/${item.id}`, description }; }); return { title: `Likes - ${userInfo.name}`, link: `${HOST}/${user}/likes`, image: `${CDN_HOST}/${userInfo.photo}`, item: items }; } //#endregion export { route };