UNPKG

rsshub

Version:
58 lines (56 loc) 1.9 kB
import "./esm-shims-CzJ_djXG.mjs"; import "./config-C37vj7VH.mjs"; import "./dist-BInvbO1W.mjs"; import "./logger-Czu8UMNd.mjs"; import "./ofetch-BIyrKU3Y.mjs"; import { t as parseDate } from "./parse-date-BrP7mxXf.mjs"; import "./cache-Bo__VnGm.mjs"; import "./helpers-DxBp0Pty.mjs"; import "./render-BQo6B4tL.mjs"; import "./got-KxxWdaxq.mjs"; import "./invalid-parameter-rr4AgGpp.mjs"; import { c as parseDescription, o as getTimelineByAccountId, r as getAccountByUsername, t as baseUrl } from "./utils-DngYOT7p.mjs"; //#region lib/routes/fansly/post.ts const route = { path: "/user/:username", categories: ["social-media"], example: "/fansly/user/AeriGoMoo", parameters: { username: "User ID" }, features: { requireConfig: false, requirePuppeteer: false, antiCrawler: false, supportBT: false, supportPodcast: false, supportScihub: false, nsfw: true }, radar: [{ source: ["fansly.com/:username/posts", "fansly.com/:username/media"] }], name: "User Timeline", maintainers: ["TonyRL"], handler }; async function handler(ctx) { const account = await getAccountByUsername(ctx.req.param("username")); const timeline = await getTimelineByAccountId(account.id); const items = timeline.posts.map((post) => ({ title: post.content.split("\n")[0], description: parseDescription(post, timeline), pubDate: parseDate(post.createdAt, "X"), link: `${baseUrl}/post/${post.id}`, author: `${account.displayName ?? account.username} (@${account.username})` })); return { title: `${account.displayName ?? account.username} (@${account.username}) - Fansly`, link: `${baseUrl}/${account.username}`, description: account.about.replaceAll("\n", " "), image: account.banner.locations[0].location, icon: account.avatar.locations[0].location, logo: account.avatar.locations[0].location, language: "en", allowEmpty: true, item: items }; } //#endregion export { route };