1 import { CONFIG } from '../../initializers'
2 import { ActorModel } from '../../models/activitypub/actor'
3 import { ActorFollowModel } from '../../models/activitypub/actor-follow'
4 import { VideoModel } from '../../models/video/video'
5 import { VideoAbuseModel } from '../../models/video/video-abuse'
6 import { VideoCommentModel } from '../../models/video/video-comment'
7 import { VideoFileModel } from '../../models/video/video-file'
8 import { VideoStreamingPlaylistModel } from '../../models/video/video-streaming-playlist'
9 import { VideoPlaylistModel } from '../../models/video/video-playlist'
11 function getVideoActivityPubUrl (video: VideoModel) {
12 return CONFIG.WEBSERVER.URL + '/videos/watch/' + video.uuid
15 function getVideoPlaylistActivityPubUrl (videoPlaylist: VideoPlaylistModel) {
16 return CONFIG.WEBSERVER.URL + '/video-playlists/' + videoPlaylist.uuid
19 function getVideoPlaylistElementActivityPubUrl (videoPlaylist: VideoPlaylistModel, video: VideoModel) {
20 return CONFIG.WEBSERVER.URL + '/video-playlists/' + videoPlaylist.uuid + '/' + video.uuid
23 function getVideoCacheFileActivityPubUrl (videoFile: VideoFileModel) {
24 const suffixFPS = videoFile.fps && videoFile.fps !== -1 ? '-' + videoFile.fps : ''
26 return `${CONFIG.WEBSERVER.URL}/redundancy/videos/${videoFile.Video.uuid}/${videoFile.resolution}${suffixFPS}`
29 function getVideoCacheStreamingPlaylistActivityPubUrl (video: VideoModel, playlist: VideoStreamingPlaylistModel) {
30 return `${CONFIG.WEBSERVER.URL}/redundancy/streaming-playlists/${playlist.getStringType()}/${video.uuid}`
33 function getVideoCommentActivityPubUrl (video: VideoModel, videoComment: VideoCommentModel) {
34 return CONFIG.WEBSERVER.URL + '/videos/watch/' + video.uuid + '/comments/' + videoComment.id
37 function getVideoChannelActivityPubUrl (videoChannelName: string) {
38 return CONFIG.WEBSERVER.URL + '/video-channels/' + videoChannelName
41 function getAccountActivityPubUrl (accountName: string) {
42 return CONFIG.WEBSERVER.URL + '/accounts/' + accountName
45 function getVideoAbuseActivityPubUrl (videoAbuse: VideoAbuseModel) {
46 return CONFIG.WEBSERVER.URL + '/admin/video-abuses/' + videoAbuse.id
49 function getVideoViewActivityPubUrl (byActor: ActorModel, video: VideoModel) {
50 return byActor.url + '/views/videos/' + video.id + '/' + new Date().toISOString()
53 function getVideoLikeActivityPubUrl (byActor: ActorModel, video: VideoModel | { id: number }) {
54 return byActor.url + '/likes/' + video.id
57 function getVideoDislikeActivityPubUrl (byActor: ActorModel, video: VideoModel | { id: number }) {
58 return byActor.url + '/dislikes/' + video.id
61 function getVideoSharesActivityPubUrl (video: VideoModel) {
62 return video.url + '/announces'
65 function getVideoCommentsActivityPubUrl (video: VideoModel) {
66 return video.url + '/comments'
69 function getVideoLikesActivityPubUrl (video: VideoModel) {
70 return video.url + '/likes'
73 function getVideoDislikesActivityPubUrl (video: VideoModel) {
74 return video.url + '/dislikes'
77 function getActorFollowActivityPubUrl (follower: ActorModel, following: ActorModel) {
78 return follower.url + '/follows/' + following.id
81 function getActorFollowAcceptActivityPubUrl (actorFollow: ActorFollowModel) {
82 const follower = actorFollow.ActorFollower
83 const me = actorFollow.ActorFollowing
85 return follower.url + '/accepts/follows/' + me.id
88 function getActorFollowRejectActivityPubUrl (follower: ActorModel, following: ActorModel) {
89 return follower.url + '/rejects/follows/' + following.id
92 function getVideoAnnounceActivityPubUrl (byActor: ActorModel, video: VideoModel) {
93 return video.url + '/announces/' + byActor.id
96 function getDeleteActivityPubUrl (originalUrl: string) {
97 return originalUrl + '/delete'
100 function getUpdateActivityPubUrl (originalUrl: string, updatedAt: string) {
101 return originalUrl + '/updates/' + updatedAt
104 function getUndoActivityPubUrl (originalUrl: string) {
105 return originalUrl + '/undo'
109 getVideoActivityPubUrl,
110 getVideoPlaylistElementActivityPubUrl,
111 getVideoPlaylistActivityPubUrl,
112 getVideoCacheStreamingPlaylistActivityPubUrl,
113 getVideoChannelActivityPubUrl,
114 getAccountActivityPubUrl,
115 getVideoAbuseActivityPubUrl,
116 getActorFollowActivityPubUrl,
117 getActorFollowAcceptActivityPubUrl,
118 getVideoAnnounceActivityPubUrl,
119 getUpdateActivityPubUrl,
120 getUndoActivityPubUrl,
121 getVideoViewActivityPubUrl,
122 getVideoLikeActivityPubUrl,
123 getVideoDislikeActivityPubUrl,
124 getActorFollowRejectActivityPubUrl,
125 getVideoCommentActivityPubUrl,
126 getDeleteActivityPubUrl,
127 getVideoSharesActivityPubUrl,
128 getVideoCommentsActivityPubUrl,
129 getVideoLikesActivityPubUrl,
130 getVideoDislikesActivityPubUrl,
131 getVideoCacheFileActivityPubUrl