-function sendDeleteVideo (video: VideoInstance, t: Sequelize.Transaction) {
- const videoObject = video.toActivityPubObject()
- const data = deleteActivityData(video.url, video.VideoChannel.Account, videoObject)
+async function sendDeleteVideo (video: VideoInstance, t: Sequelize.Transaction) {
+ const data = await deleteActivityData(video.url, video.VideoChannel.Account)
+
+ const accountsInvolved = await db.VideoShare.loadAccountsByShare(video.id)
+ accountsInvolved.push(video.VideoChannel.Account)
+
+ return broadcastToFollowers(data, accountsInvolved, t)
+}
+
+async function sendDeleteAccount (account: AccountInstance, t: Sequelize.Transaction) {
+ const data = await deleteActivityData(account.url, account)
+
+ 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)