UNPKG

rsshub

Version:
42 lines (41 loc) 1.7 kB
import { t as rofetch } from "./ofetch-W1aeTHCo.mjs"; import { t as config } from "./config-Bpyy15zS.mjs"; import { t as parseDate } from "./parse-date-CjhZE69i.mjs"; //#region lib/routes/disqus/posts.ts const route = { path: "/posts/:forum", categories: ["social-media"], example: "/disqus/posts/diygod-me", parameters: { forum: "forum, disqus name of the target website" }, name: "Comment", maintainers: ["DIYgod"], features: { requireConfig: [{ name: "DISQUS_API_KEY", optional: true, description: "Disqus API key" }] }, handler }; async function handler(ctx) { if (!config.disqus || !config.disqus.api_key) config.disqus.api_key = "E8Uh5l5fHZ6gD8U3KycjAIAk46f68Zw7C6eW8WSjZvCLXebZ7p0r1yrYDrLilk2F"; const { forum } = ctx.req.param(); const data = (await rofetch(`https://disqus.com/api/3.0/forums/listPosts.json?api_key=${config.disqus.api_key}&forum=${forum}`)).response; const threadsQuery = [...new Set(data.map((item) => item.thread))].map((thread) => `&thread=${thread}`).join(""); const threads = (await rofetch(`https://disqus.com/api/3.0/forums/listThreads.json?api_key=${config.disqus.api_key}&forum=${forum}${threadsQuery}`)).response; return { title: `${forum} 的评论`, link: `https://disqus.com/home/forums/${forum}`, description: `${forum} 的 disqus 评论`, item: data.map((item) => { const thread = threads.find((i) => i.id === item.thread); return { title: `${item.author.name}: ${item.raw_message}`, description: `${item.author.name} 在《${thread.clean_title}》中发表评论: ${item.message}`, pubDate: parseDate(item.createdAt), link: `${thread.link}/#comment-${item.id}` }; }) }; } //#endregion export { route };