Changeset 55bc7f9 in Klonkt for src/routes/posts.js
- Timestamp:
- 06/24/2026 12:09:08 PM (3 months ago)
- Branches:
- main
- Children:
- 3a2c9d3
- Parents:
- 47a0d29
- File:
-
- 1 edited
-
src/routes/posts.js (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/routes/posts.js
r47a0d29 r55bc7f9 7 7 import ejs from 'ejs'; 8 8 import db from '../config/database.js'; 9 import { requireAuth } from '../middleware/auth.js';9 import { requireAuth, requireSiteManager } from '../middleware/auth.js'; 10 10 import { renderPage } from '../middleware/render.js'; 11 11 import { recordPageview, recordPostView } from '../services/StatsService.js'; … … 749 749 750 750 // Inbound fediverse activity (replies/likes/boosts) for this post. 751 let fediverse = { replies: [], likeCount: 0, announceCount: 0, total: 0 };751 let fediverse = { replies: [], outReplies: [], likeCount: 0, announceCount: 0, total: 0 }; 752 752 try { fediverse = ActivityPubService.getInteractions(post.id); } catch { /* non-fatal */ } 753 // Owner/admin of this site may reply back to a fediverse interaction. 754 const canManageSite = !!(req.session?.user && PermissionsService.canAdminSite(req.session.user, site)); 753 755 754 756 renderPage(req, res, 'pages/post', { … … 760 762 totalComments, 761 763 fediverse, 764 canManageSite, 762 765 likeCount, 763 766 likedByMe, … … 769 772 }); 770 773 774 // ── Reply back to a fediverse interaction (site owner/admin only) ── 775 router.post('/posts/:slug/fedi-reply', requireSiteManager, async (req, res) => { 776 const site = res.locals.site; 777 if (!site) return res.status(404).send('Site required'); 778 const post = db.prepare('SELECT id, slug FROM posts WHERE site_id = ? AND slug = ?').get(site.id, req.params.slug); 779 if (!post) return res.status(404).send('Not found'); 780 const parent = ActivityPubService.getInteractionById(req.body.interaction_id); 781 const text = (req.body.text || '').toString(); 782 if (parent && parent.post_id === post.id && text.trim()) { 783 try { 784 await ActivityPubService.deliverReply(site, { postId: post.id, postSlug: post.slug, parent, text }); 785 } catch (e) { console.warn('[AP] reply send failed:', e.message); } 786 } 787 res.redirect(`${res.locals.siteUrlBase || ''}/${post.slug}#fediverse`); 788 }); 789 771 790 export default router; 772 791 export { postNeighbors };
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)