X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Flib%2Factivitypub%2Fprocess%2Fprocess-undo.ts;h=99423a72bf80b6c5569e957e0570ca1d9a56cd97;hb=47d883de2efbc2e8b5f6f94ae18c15224cbe982b;hp=257eb6c2b5e722d167d39b573cada405c8239f6a;hpb=57e4e1c1a95c3a81a967f54ecc2a510d8b0e129c;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/lib/activitypub/process/process-undo.ts b/server/lib/activitypub/process/process-undo.ts index 257eb6c2b..99423a72b 100644 --- a/server/lib/activitypub/process/process-undo.ts +++ b/server/lib/activitypub/process/process-undo.ts @@ -63,9 +63,12 @@ async function processUndoLike (byActor: MActorSignature, activity: ActivityUndo return sequelizeTypescript.transaction(async t => { if (!byActor.Account) throw new Error('Unknown account ' + byActor.url) - const video = await VideoModel.loadAndPopulateAccountAndServerAndTags(onlyVideo.id, t) + const video = await VideoModel.loadFull(onlyVideo.id, t) const rate = await AccountVideoRateModel.loadByAccountAndVideoOrUrl(byActor.Account.id, video.id, likeActivity.id, t) - if (!rate || rate.type !== 'like') throw new Error(`Unknown like by account ${byActor.Account.id} for video ${video.id}.`) + if (!rate || rate.type !== 'like') { + logger.warn('Unknown like by account %d for video %d.', byActor.Account.id, video.id) + return + } await rate.destroy({ transaction: t }) await video.decrement('likes', { transaction: t }) @@ -87,9 +90,12 @@ async function processUndoDislike (byActor: MActorSignature, activity: ActivityU return sequelizeTypescript.transaction(async t => { if (!byActor.Account) throw new Error('Unknown account ' + byActor.url) - const video = await VideoModel.loadAndPopulateAccountAndServerAndTags(onlyVideo.id, t) + const video = await VideoModel.loadFull(onlyVideo.id, t) const rate = await AccountVideoRateModel.loadByAccountAndVideoOrUrl(byActor.Account.id, video.id, dislike.id, t) - if (!rate || rate.type !== 'dislike') throw new Error(`Unknown dislike by account ${byActor.Account.id} for video ${video.id}.`) + if (!rate || rate.type !== 'dislike') { + logger.warn(`Unknown dislike by account %d for video %d.`, byActor.Account.id, video.id) + return + } await rate.destroy({ transaction: t }) await video.decrement('dislikes', { transaction: t }) @@ -129,7 +135,10 @@ async function processUndoCacheFile (byActor: MActorSignature, activity: Activit function processUndoAnnounce (byActor: MActorSignature, announceActivity: ActivityAnnounce) { return sequelizeTypescript.transaction(async t => { const share = await VideoShareModel.loadByUrl(announceActivity.id, t) - if (!share) throw new Error(`Unknown video share ${announceActivity.id}.`) + if (!share) { + logger.warn('Unknown video share %d', announceActivity.id) + return + } if (share.actorId !== byActor.id) throw new Error(`${share.url} is not shared by ${byActor.url}.`) @@ -151,7 +160,10 @@ function processUndoFollow (follower: MActorSignature, followActivity: ActivityF const following = await ActorModel.loadByUrlAndPopulateAccountAndChannel(followActivity.object, t) const actorFollow = await ActorFollowModel.loadByActorAndTarget(follower.id, following.id, t) - if (!actorFollow) throw new Error(`'Unknown actor follow ${follower.id} -> ${following.id}.`) + if (!actorFollow) { + logger.warn('Unknown actor follow %d -> %d.', follower.id, following.id) + return + } await actorFollow.destroy({ transaction: t })