diff options
author | Chocobozzz <florian.bigard@gmail.com> | 2017-11-20 09:43:39 +0100 |
---|---|---|
committer | Chocobozzz <florian.bigard@gmail.com> | 2017-11-27 19:40:52 +0100 |
commit | 54141398354e6e7b94aa3065a705a1251390111c (patch) | |
tree | 8d30d1b9ea8acbe04f6d404125b04fc0c9897b70 /server/lib/activitypub/send/send-announce.ts | |
parent | eb8b27c93e61a896a08923dc1ca3c87ba8cf4948 (diff) | |
download | PeerTube-54141398354e6e7b94aa3065a705a1251390111c.tar.gz PeerTube-54141398354e6e7b94aa3065a705a1251390111c.tar.zst PeerTube-54141398354e6e7b94aa3065a705a1251390111c.zip |
Refractor activity pub lib/helpers
Diffstat (limited to 'server/lib/activitypub/send/send-announce.ts')
-rw-r--r-- | server/lib/activitypub/send/send-announce.ts | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/server/lib/activitypub/send/send-announce.ts b/server/lib/activitypub/send/send-announce.ts new file mode 100644 index 000000000..b9217e4f6 --- /dev/null +++ b/server/lib/activitypub/send/send-announce.ts | |||
@@ -0,0 +1,45 @@ | |||
1 | import { Transaction } from 'sequelize' | ||
2 | import { AccountInstance, VideoInstance } from '../../../models' | ||
3 | import { VideoChannelInstance } from '../../../models/video/video-channel-interface' | ||
4 | import { broadcastToFollowers } from './misc' | ||
5 | import { addActivityData } from './send-add' | ||
6 | import { createActivityData } from './send-create' | ||
7 | import { getAnnounceActivityPubUrl } from '../../../helpers/activitypub' | ||
8 | |||
9 | async function sendVideoAnnounce (byAccount: AccountInstance, video: VideoInstance, t: Transaction) { | ||
10 | const url = getAnnounceActivityPubUrl(video.url, byAccount) | ||
11 | |||
12 | const videoChannel = video.VideoChannel | ||
13 | const announcedActivity = await addActivityData(url, videoChannel.Account, video, videoChannel.url, video.toActivityPubObject()) | ||
14 | |||
15 | const data = await announceActivityData(url, byAccount, announcedActivity) | ||
16 | return broadcastToFollowers(data, byAccount, [ byAccount ], t) | ||
17 | } | ||
18 | |||
19 | async function sendVideoChannelAnnounce (byAccount: AccountInstance, videoChannel: VideoChannelInstance, t: Transaction) { | ||
20 | const url = getAnnounceActivityPubUrl(videoChannel.url, byAccount) | ||
21 | const announcedActivity = await createActivityData(url, videoChannel.Account, videoChannel.toActivityPubObject()) | ||
22 | |||
23 | const data = await announceActivityData(url, byAccount, announcedActivity) | ||
24 | return broadcastToFollowers(data, byAccount, [ byAccount ], t) | ||
25 | } | ||
26 | |||
27 | // --------------------------------------------------------------------------- | ||
28 | |||
29 | export { | ||
30 | sendVideoAnnounce, | ||
31 | sendVideoChannelAnnounce | ||
32 | } | ||
33 | |||
34 | // --------------------------------------------------------------------------- | ||
35 | |||
36 | async function announceActivityData (url: string, byAccount: AccountInstance, object: any) { | ||
37 | const activity = { | ||
38 | type: 'Announce', | ||
39 | id: url, | ||
40 | actor: byAccount.url, | ||
41 | object | ||
42 | } | ||
43 | |||
44 | return activity | ||
45 | } | ||