aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/controllers
diff options
context:
space:
mode:
authorChocobozzz <me@florianbigard.com>2020-05-22 17:06:26 +0200
committerChocobozzz <chocobozzz@cpy.re>2020-05-29 09:32:20 +0200
commit696d83fd1377486dd03cc1bd02a21d9b6ddd9fcd (patch)
treee1b88451c4357add80721f530993e2b48d197feb /server/controllers
parent72c33e716fecd1826dcf645957f8669821f91ff3 (diff)
downloadPeerTube-696d83fd1377486dd03cc1bd02a21d9b6ddd9fcd.tar.gz
PeerTube-696d83fd1377486dd03cc1bd02a21d9b6ddd9fcd.tar.zst
PeerTube-696d83fd1377486dd03cc1bd02a21d9b6ddd9fcd.zip
Block comments from muted accounts/servers
Add better control for users of comments displayed on their videos: * Do not forward comments from muted remote accounts/servers (muted by the current server or by the video owner) * Do not list threads and hide replies (with their children) of accounts/servers muted by the video owner * Hide from RSS comments of muted accounts/servers by video owners Use case: * Try to limit spam propagation in the federation * Add ability for users to automatically hide comments on their videos from undesirable accounts/servers (the comment section belongs to videomakers, so they choose what's posted there)
Diffstat (limited to 'server/controllers')
-rw-r--r--server/controllers/activitypub/client.ts2
-rw-r--r--server/controllers/api/videos/comment.ts2
2 files changed, 3 insertions, 1 deletions
diff --git a/server/controllers/activitypub/client.ts b/server/controllers/activitypub/client.ts
index f94abf808..e48641836 100644
--- a/server/controllers/activitypub/client.ts
+++ b/server/controllers/activitypub/client.ts
@@ -285,7 +285,7 @@ async function videoCommentsController (req: express.Request, res: express.Respo
285 const video = res.locals.onlyImmutableVideo 285 const video = res.locals.onlyImmutableVideo
286 286
287 const handler = async (start: number, count: number) => { 287 const handler = async (start: number, count: number) => {
288 const result = await VideoCommentModel.listAndCountByVideoId(video.id, start, count) 288 const result = await VideoCommentModel.listAndCountByVideoForAP(video, start, count)
289 return { 289 return {
290 total: result.count, 290 total: result.count,
291 data: result.rows.map(r => r.url) 291 data: result.rows.map(r => r.url)
diff --git a/server/controllers/api/videos/comment.ts b/server/controllers/api/videos/comment.ts
index 2dcb85ecf..45ff969d9 100644
--- a/server/controllers/api/videos/comment.ts
+++ b/server/controllers/api/videos/comment.ts
@@ -78,6 +78,7 @@ async function listVideoThreads (req: express.Request, res: express.Response) {
78 if (video.commentsEnabled === true) { 78 if (video.commentsEnabled === true) {
79 const apiOptions = await Hooks.wrapObject({ 79 const apiOptions = await Hooks.wrapObject({
80 videoId: video.id, 80 videoId: video.id,
81 isVideoOwned: video.isOwned(),
81 start: req.query.start, 82 start: req.query.start,
82 count: req.query.count, 83 count: req.query.count,
83 sort: req.query.sort, 84 sort: req.query.sort,
@@ -108,6 +109,7 @@ async function listVideoThreadComments (req: express.Request, res: express.Respo
108 if (video.commentsEnabled === true) { 109 if (video.commentsEnabled === true) {
109 const apiOptions = await Hooks.wrapObject({ 110 const apiOptions = await Hooks.wrapObject({
110 videoId: video.id, 111 videoId: video.id,
112 isVideoOwned: video.isOwned(),
111 threadId: res.locals.videoCommentThread.id, 113 threadId: res.locals.videoCommentThread.id,
112 user 114 user
113 }, 'filter:api.video-thread-comments.list.params') 115 }, 'filter:api.video-thread-comments.list.params')