]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/lib/activitypub/audience.ts
Merge branch 'release/5.1.0' into develop
[github/Chocobozzz/PeerTube.git] / server / lib / activitypub / audience.ts
1 import { ActivityAudience } from '../../../shared/models/activitypub'
2 import { ACTIVITY_PUB } from '../../initializers/constants'
3 import { MActorFollowersUrl } from '../../types/models'
4
5 function getAudience (actorSender: MActorFollowersUrl, isPublic = true) {
6 return buildAudience([ actorSender.followersUrl ], isPublic)
7 }
8
9 function buildAudience (followerUrls: string[], isPublic = true) {
10 let to: string[] = []
11 let cc: string[] = []
12
13 if (isPublic) {
14 to = [ ACTIVITY_PUB.PUBLIC ]
15 cc = followerUrls
16 } else { // Unlisted
17 to = []
18 cc = []
19 }
20
21 return { to, cc }
22 }
23
24 function audiencify<T> (object: T, audience: ActivityAudience) {
25 return { ...audience, ...object }
26 }
27
28 // ---------------------------------------------------------------------------
29
30 export {
31 buildAudience,
32 getAudience,
33 audiencify
34 }