-import { CONFIG } from '../../initializers/constants'
-import { VideoInstance } from '../../models/video/video-interface'
-import { VideoChannelInstance } from '../../models/video/video-channel-interface'
-import { VideoAbuseInstance } from '../../models/video/video-abuse-interface'
-import { AccountFollowInstance } from '../../models/account/account-follow-interface'
-import { AccountInstance } from '../../models/account/account-interface'
-
-function getVideoActivityPubUrl (video: VideoInstance) {
+import { CONFIG } from '../../initializers'
+import { ActorModel } from '../../models/activitypub/actor'
+import { ActorFollowModel } from '../../models/activitypub/actor-follow'
+import { VideoModel } from '../../models/video/video'
+import { VideoAbuseModel } from '../../models/video/video-abuse'
+import { VideoCommentModel } from '../../models/video/video-comment'
+import { VideoFileModel } from '../../models/video/video-file'
+
+function getVideoActivityPubUrl (video: VideoModel) {
return CONFIG.WEBSERVER.URL + '/videos/watch/' + video.uuid
}
-function getVideoChannelActivityPubUrl (videoChannel: VideoChannelInstance) {
- return CONFIG.WEBSERVER.URL + '/video-channels/' + videoChannel.uuid
+function getVideoCacheFileActivityPubUrl (videoFile: VideoFileModel) {
+ const suffixFPS = videoFile.fps && videoFile.fps !== -1 ? '-' + videoFile.fps : ''
+
+ return `${CONFIG.WEBSERVER.URL}/redundancy/videos/${videoFile.Video.uuid}/${videoFile.resolution}${suffixFPS}`
+}
+
+function getVideoCommentActivityPubUrl (video: VideoModel, videoComment: VideoCommentModel) {
+ return CONFIG.WEBSERVER.URL + '/videos/watch/' + video.uuid + '/comments/' + videoComment.id
+}
+
+function getVideoChannelActivityPubUrl (videoChannelName: string) {
+ return CONFIG.WEBSERVER.URL + '/video-channels/' + videoChannelName
}
function getAccountActivityPubUrl (accountName: string) {
- return CONFIG.WEBSERVER.URL + '/account/' + accountName
+ return CONFIG.WEBSERVER.URL + '/accounts/' + accountName
}
-function getVideoAbuseActivityPubUrl (videoAbuse: VideoAbuseInstance) {
+function getVideoAbuseActivityPubUrl (videoAbuse: VideoAbuseModel) {
return CONFIG.WEBSERVER.URL + '/admin/video-abuses/' + videoAbuse.id
}
-function getAccountFollowActivityPubUrl (accountFollow: AccountFollowInstance) {
- const me = accountFollow.AccountFollower
- const following = accountFollow.AccountFollowing
+function getVideoViewActivityPubUrl (byActor: ActorModel, video: VideoModel) {
+ return byActor.url + '/views/videos/' + video.id + '/' + new Date().toISOString()
+}
+
+function getVideoLikeActivityPubUrl (byActor: ActorModel, video: VideoModel | { id: number }) {
+ return byActor.url + '/likes/' + video.id
+}
+
+function getVideoDislikeActivityPubUrl (byActor: ActorModel, video: VideoModel | { id: number }) {
+ return byActor.url + '/dislikes/' + video.id
+}
+
+function getVideoSharesActivityPubUrl (video: VideoModel) {
+ return video.url + '/announces'
+}
+
+function getVideoCommentsActivityPubUrl (video: VideoModel) {
+ return video.url + '/comments'
+}
+
+function getVideoLikesActivityPubUrl (video: VideoModel) {
+ return video.url + '/likes'
+}
- return me.url + '#follows/' + following.id
+function getVideoDislikesActivityPubUrl (video: VideoModel) {
+ return video.url + '/dislikes'
}
-function getAccountFollowAcceptActivityPubUrl (accountFollow: AccountFollowInstance) {
- const follower = accountFollow.AccountFollower
- const me = accountFollow.AccountFollowing
+function getActorFollowActivityPubUrl (actorFollow: ActorFollowModel) {
+ const me = actorFollow.ActorFollower
+ const following = actorFollow.ActorFollowing
+
+ return me.url + '/follows/' + following.id
+}
+
+function getActorFollowAcceptActivityPubUrl (actorFollow: ActorFollowModel) {
+ const follower = actorFollow.ActorFollower
+ const me = actorFollow.ActorFollowing
+
+ return follower.url + '/accepts/follows/' + me.id
+}
- return follower.url + '#accepts/follows/' + me.id
+function getVideoAnnounceActivityPubUrl (byActor: ActorModel, video: VideoModel) {
+ return video.url + '/announces/' + byActor.id
}
-function getAnnounceActivityPubUrl (originalUrl: string, byAccount: AccountInstance) {
- return originalUrl + '#announces/' + byAccount.id
+function getDeleteActivityPubUrl (originalUrl: string) {
+ return originalUrl + '/delete'
}
function getUpdateActivityPubUrl (originalUrl: string, updatedAt: string) {
- return originalUrl + '#updates/' + updatedAt
+ return originalUrl + '/updates/' + updatedAt
}
function getUndoActivityPubUrl (originalUrl: string) {
getVideoChannelActivityPubUrl,
getAccountActivityPubUrl,
getVideoAbuseActivityPubUrl,
- getAccountFollowActivityPubUrl,
- getAccountFollowAcceptActivityPubUrl,
- getAnnounceActivityPubUrl,
+ getActorFollowActivityPubUrl,
+ getActorFollowAcceptActivityPubUrl,
+ getVideoAnnounceActivityPubUrl,
getUpdateActivityPubUrl,
- getUndoActivityPubUrl
+ getUndoActivityPubUrl,
+ getVideoViewActivityPubUrl,
+ getVideoLikeActivityPubUrl,
+ getVideoDislikeActivityPubUrl,
+ getVideoCommentActivityPubUrl,
+ getDeleteActivityPubUrl,
+ getVideoSharesActivityPubUrl,
+ getVideoCommentsActivityPubUrl,
+ getVideoLikesActivityPubUrl,
+ getVideoDislikesActivityPubUrl,
+ getVideoCacheFileActivityPubUrl
}