X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Flib%2Factivitypub%2Fvideos.ts;h=6b82f12d56bf311d8d8249d1319cb466bfcba6ae;hb=fef2c7164e025b12a64185dbab058ef4129733c6;hp=9442448932c27e3071de9edf7db2d79a4dcb5889;hpb=892211e8493b1f992fce7616cb1e48b7ff87a1dc;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/lib/activitypub/videos.ts b/server/lib/activitypub/videos.ts index 944244893..6b82f12d5 100644 --- a/server/lib/activitypub/videos.ts +++ b/server/lib/activitypub/videos.ts @@ -1,9 +1,20 @@ import { join } from 'path' import * as request from 'request' +import { Transaction } from 'sequelize' import { ActivityIconObject } from '../../../shared/index' import { doRequest, doRequestAndSaveToFile } from '../../helpers/requests' import { CONFIG, REMOTE_SCHEME, STATIC_PATHS } from '../../initializers/constants' +import { AccountInstance } from '../../models/account/account-interface' import { VideoInstance } from '../../models/video/video-interface' +import { sendLikeToOrigin } from './index' +import { sendCreateDislikeToOrigin, sendCreateDislikeToVideoFollowers } from './send/send-create' +import { sendLikeToVideoFollowers } from './send/send-like' +import { + sendUndoDislikeToOrigin, + sendUndoDislikeToVideoFollowers, + sendUndoLikeToOrigin, + sendUndoLikeToVideoFollowers +} from './send/send-undo' function fetchRemoteVideoPreview (video: VideoInstance) { // FIXME: use url @@ -37,8 +48,50 @@ function generateThumbnailFromUrl (video: VideoInstance, icon: ActivityIconObjec return doRequestAndSaveToFile(options, thumbnailPath) } +async function sendVideoRateChangeToFollowers ( + account: AccountInstance, + video: VideoInstance, + likes: number, + dislikes: number, + t: Transaction +) { + // Keep the order: first we undo and then we create + + // Undo Like + if (likes < 0) await sendUndoLikeToVideoFollowers(account, video, t) + // Undo Dislike + if (dislikes < 0) await sendUndoDislikeToVideoFollowers(account, video, t) + + // Like + if (likes > 0) await sendLikeToVideoFollowers(account, video, t) + // Dislike + if (dislikes > 0) await sendCreateDislikeToVideoFollowers(account, video, t) +} + +async function sendVideoRateChangeToOrigin ( + account: AccountInstance, + video: VideoInstance, + likes: number, + dislikes: number, + t: Transaction +) { + // Keep the order: first we undo and then we create + + // Undo Like + if (likes < 0) await sendUndoLikeToOrigin(account, video, t) + // Undo Dislike + if (dislikes < 0) await sendUndoDislikeToOrigin(account, video, t) + + // Like + if (likes > 0) await sendLikeToOrigin(account, video, t) + // Dislike + if (dislikes > 0) await sendCreateDislikeToOrigin(account, video, t) +} + export { fetchRemoteVideoPreview, fetchRemoteVideoDescription, - generateThumbnailFromUrl + generateThumbnailFromUrl, + sendVideoRateChangeToFollowers, + sendVideoRateChangeToOrigin }