-import { ActivityCreate, ActivityFollow, ActivityLike, ActivityUndo } from '../../../../shared/models/activitypub/activity'
-import { AccountInstance } from '../../../models'
-import { AccountFollowInstance } from '../../../models/account/account-follow-interface'
-import { broadcastToFollowers, getAccountsToForwardVideoAction, unicastTo } from './misc'
-import { followActivityData } from './send-follow'
-import { getAccountFollowActivityPubUrl, getUndoActivityPubUrl, getVideoDislikeActivityPubUrl, getVideoLikeActivityPubUrl } from '../url'
-import { VideoInstance } from '../../../models/video/video-interface'
-import { likeActivityData } from './send-like'
-import { createActivityData, createDislikeActivityData } from './send-create'
-import { getServerAccount } from '../../../helpers/utils'
-
-async function sendUndoFollow (accountFollow: AccountFollowInstance, t: Transaction) {
- const me = accountFollow.AccountFollower
- const following = accountFollow.AccountFollowing
-
- const followUrl = getAccountFollowActivityPubUrl(accountFollow)
+import {
+ ActivityAnnounce,
+ ActivityAudience,
+ ActivityCreate,
+ ActivityDislike,
+ ActivityFollow,
+ ActivityLike,
+ ActivityUndo
+} from '../../../../shared/models/activitypub'
+import { VideoModel } from '../../../models/video/video'
+import { getActorFollowActivityPubUrl, getUndoActivityPubUrl, getVideoDislikeActivityPubUrl, getVideoLikeActivityPubUrl } from '../url'
+import { broadcastToFollowers, sendVideoRelatedActivity, unicastTo } from './utils'
+import { audiencify, getAudience } from '../audience'
+import { buildCreateActivity } from './send-create'
+import { buildFollowActivity } from './send-follow'
+import { buildLikeActivity } from './send-like'
+import { buildAnnounceWithVideoAudience } from './send-announce'
+import { logger } from '../../../helpers/logger'
+import { buildDislikeActivity } from './send-dislike'
+import {
+ MActor, MActorAudience,
+ MActorFollowActors,
+ MActorLight,
+ MVideo,
+ MVideoAccountLight,
+ MVideoRedundancyVideo,
+ MVideoShare
+} from '../../../typings/models'
+
+async function sendUndoFollow (actorFollow: MActorFollowActors, t: Transaction) {
+ const me = actorFollow.ActorFollower
+ const following = actorFollow.ActorFollowing
+
+ // Same server as ours
+ if (!following.serverId) return
+
+ logger.info('Creating job to send an unfollow request to %s.', following.url)
+
+ const followUrl = getActorFollowActivityPubUrl(me, following)