+
+async function sendUndoVideoRelatedActivity (options: {
+ byActor: MActor
+ video: MVideoAccountLight
+ url: string
+ activity: ActivityFollow | ActivityCreate | ActivityAnnounce
+ contextType: ContextType
+ transaction: Transaction
+}) {
+ const activityBuilder = (audience: ActivityAudience) => {
+ const undoUrl = getUndoActivityPubUrl(options.url)
+
+ return undoActivityData(undoUrl, options.byActor, options.activity, audience)
+ }
+
+ return sendVideoRelatedActivity(activityBuilder, options)
+}
+
+async function sendUndoVideoRateToOriginActivity (options: {
+ byActor: MActor
+ video: MVideoAccountLight
+ url: string
+ activity: ActivityLike | ActivityDislike
+ transaction: Transaction
+}) {
+ const activityBuilder = (audience: ActivityAudience) => {
+ const undoUrl = getUndoActivityPubUrl(options.url)
+
+ return undoActivityData(undoUrl, options.byActor, options.activity, audience)
+ }
+
+ return sendVideoActivityToOrigin(activityBuilder, { ...options, contextType: 'Rate' })
+}