+ return broadcastToFollowers(data, [ account ], t)
+}
+
+async function sendVideoChannelAnnounce (byAccount: AccountInstance, videoChannel: VideoChannelInstance, t: Sequelize.Transaction) {
+ const url = getActivityPubUrl('videoChannel', videoChannel.uuid) + '#announce'
+ const announcedActivity = await createActivityData(url, videoChannel.Account, videoChannel.toActivityPubObject(), true)
+
+ const data = await announceActivityData(url, byAccount, announcedActivity)
+ return broadcastToFollowers(data, [ byAccount ], t)
+}
+
+async function sendVideoAnnounce (byAccount: AccountInstance, video: VideoInstance, t: Sequelize.Transaction) {
+ const url = getActivityPubUrl('video', video.uuid) + '#announce'
+
+ const videoChannel = video.VideoChannel
+ const announcedActivity = await addActivityData(url, videoChannel.Account, videoChannel.url, video.toActivityPubObject(), true)
+
+ const data = await announceActivityData(url, byAccount, announcedActivity)
+ return broadcastToFollowers(data, [ byAccount ], t)
+}
+
+async function sendVideoAbuse (
+ fromAccount: AccountInstance,
+ videoAbuse: VideoAbuseInstance,
+ video: VideoInstance,
+ t: Sequelize.Transaction
+) {
+ const url = getActivityPubUrl('videoAbuse', videoAbuse.id.toString())
+ const data = await createActivityData(url, fromAccount, videoAbuse.toActivityPubObject())
+
+ return unicastTo(data, video.VideoChannel.Account.sharedInboxUrl, t)