X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Flib%2Fvideo-comment.ts;h=59bce7520af4c1732988d49b81f6f0347123413d;hb=699b059e2d6cdd09685a69261f2ca5cf63053a71;hp=ef6a8f097b7c222fa37bf143fad14f29cb651802;hpb=ea44f375f5d3da06ca0aebfe871b9f924a26ec29;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/lib/video-comment.ts b/server/lib/video-comment.ts index ef6a8f097..59bce7520 100644 --- a/server/lib/video-comment.ts +++ b/server/lib/video-comment.ts @@ -1,29 +1,32 @@ import * as Sequelize from 'sequelize' import { ResultList } from '../../shared/models' import { VideoCommentThreadTree } from '../../shared/models/videos/video-comment.model' +import { AccountModel } from '../models/account/account' import { VideoModel } from '../models/video/video' import { VideoCommentModel } from '../models/video/video-comment' -import { getVideoCommentActivityPubUrl, sendVideoRateChangeToFollowers } from './activitypub' -import { sendCreateVideoCommentToOrigin, sendCreateVideoCommentToVideoFollowers } from './activitypub/send' +import { getVideoCommentActivityPubUrl } from './activitypub' +import { sendCreateVideoComment } from './activitypub/send' async function createVideoComment (obj: { text: string, - inReplyToComment: VideoCommentModel, + inReplyToComment: VideoCommentModel | null, video: VideoModel - accountId: number + account: AccountModel }, t: Sequelize.Transaction) { - let originCommentId: number = null + let originCommentId: number | null = null + let inReplyToCommentId: number | null = null - if (obj.inReplyToComment) { + if (obj.inReplyToComment && obj.inReplyToComment !== null) { originCommentId = obj.inReplyToComment.originCommentId || obj.inReplyToComment.id + inReplyToCommentId = obj.inReplyToComment.id } const comment = await VideoCommentModel.create({ text: obj.text, originCommentId, - inReplyToCommentId: obj.inReplyToComment.id, + inReplyToCommentId, videoId: obj.video.id, - accountId: obj.accountId, + accountId: obj.account.id, url: 'fake url' }, { transaction: t, validate: false }) @@ -32,12 +35,9 @@ async function createVideoComment (obj: { const savedComment = await comment.save({ transaction: t }) savedComment.InReplyToVideoComment = obj.inReplyToComment savedComment.Video = obj.video + savedComment.Account = obj.account - if (savedComment.Video.isOwned()) { - await sendCreateVideoCommentToVideoFollowers(savedComment, t) - } else { - await sendCreateVideoCommentToOrigin(savedComment, t) - } + await sendCreateVideoComment(savedComment, t) return savedComment } @@ -64,10 +64,8 @@ function buildFormattedCommentTree (resultList: ResultList): } const parentCommentThread = idx[childComment.inReplyToCommentId] - if (!parentCommentThread) { - const msg = `Cannot format video thread tree, parent ${childComment.inReplyToCommentId} not found for child ${childComment.id}` - throw new Error(msg) - } + // Maybe the parent comment was blocked by the admin/user + if (!parentCommentThread) continue parentCommentThread.children.push(childCommentThread) idx[childComment.id] = childCommentThread