UNPKG

rsshub

Version:
51 lines (49 loc) 2.22 kB
import "./esm-shims-CzJ_djXG.mjs"; import "./config-C37vj7VH.mjs"; import "./dist-BInvbO1W.mjs"; import "./logger-Czu8UMNd.mjs"; import "./ofetch-BIyrKU3Y.mjs"; import "./helpers-DxBp0Pty.mjs"; import { t as got_default } from "./got-KxxWdaxq.mjs"; //#region lib/routes/crossbell/feeds/following.ts const route = { path: "/feeds/following/:characterId", categories: ["social-media"], example: "/crossbell/feeds/following/10", parameters: { characterId: "N" }, features: { requireConfig: false, requirePuppeteer: false, antiCrawler: false, supportBT: false, supportPodcast: false, supportScihub: false }, name: "Feeds of following", maintainers: ["DIYgod"], handler }; async function handler(ctx) { const characterId = ctx.req.param("characterId"); const response = await got_default(`https://indexer.crossbell.io/v1/characters/${characterId}/feed/follow`); return { title: "Crossbell Feeds of " + characterId, link: "https://crossbell.io/", item: response.data?.list?.filter((item) => item.type !== "UPDATE_CHARACTER_METADATA").map((item) => { let link = item.note ? item.note.metadata?.content?.external_urls?.[0] || `https://crossbell.io/notes/${item.note.characterId}-${item.note.noteId}` : "https://xchar.app/" + item.character.handle; if (link.startsWith("https://xn--")) link = `https://crossbell.io/notes/${item.note?.characterId}-${item.note?.noteId}`; return { title: `${item.type} ${item.character && item.character.metadata?.content?.name}@${item.character && item.character.handle}`, description: `${item.type} ${item.note && `<br>Note: ${item.note.metadata?.content?.title || item.note.metadata?.content?.content}`}${item.character && `<br>Character: ${item.character.metadata?.content?.name}@${item.character.handle}`}`, link, pubDate: item.createdAt, updated: item.updatedAt, author: item.note?.metadata?.content?.authors?.[0] || item.note?.character?.metadata?.content?.name || item.note?.character?.handle || item.owner, guid: item.transactionHash + item.logIndex + item.type, category: [...item.note?.metadata?.content?.sources || [], ...item.note?.metadata?.content?.tags || []] }; }) }; } //#endregion export { route };