]>
Commit | Line | Data |
---|---|---|
54141398 | 1 | import { Transaction } from 'sequelize' |
3fd3ab2d C |
2 | import { ActivityAdd } from '../../../../shared/models/activitypub' |
3 | import { VideoPrivacy } from '../../../../shared/models/videos' | |
4 | import { AccountModel } from '../../../models/account/account' | |
5 | import { VideoModel } from '../../../models/video/video' | |
54141398 C |
6 | import { broadcastToFollowers, getAudience } from './misc' |
7 | ||
3fd3ab2d | 8 | async function sendAddVideo (video: VideoModel, t: Transaction) { |
54141398 C |
9 | const byAccount = video.VideoChannel.Account |
10 | ||
11 | const videoObject = video.toActivityPubObject() | |
25ed141c | 12 | const data = await addActivityData(video.url, byAccount, video, video.VideoChannel.url, videoObject, t) |
54141398 C |
13 | |
14 | return broadcastToFollowers(data, byAccount, [ byAccount ], t) | |
15 | } | |
16 | ||
25ed141c C |
17 | async function addActivityData ( |
18 | url: string, | |
3fd3ab2d C |
19 | byAccount: AccountModel, |
20 | video: VideoModel, | |
25ed141c C |
21 | target: string, |
22 | object: any, | |
23 | t: Transaction | |
3fd3ab2d | 24 | ): Promise<ActivityAdd> { |
54141398 C |
25 | const videoPublic = video.privacy === VideoPrivacy.PUBLIC |
26 | ||
25ed141c | 27 | const { to, cc } = await getAudience(byAccount, t, videoPublic) |
3fd3ab2d C |
28 | |
29 | return { | |
54141398 C |
30 | type: 'Add', |
31 | id: url, | |
32 | actor: byAccount.url, | |
33 | to, | |
34 | cc, | |
35 | object, | |
36 | target | |
37 | } | |
54141398 C |
38 | } |
39 | ||
40 | // --------------------------------------------------------------------------- | |
41 | ||
42 | export { | |
43 | addActivityData, | |
44 | sendAddVideo | |
45 | } |