aboutsummaryrefslogtreecommitdiffhomepage
path: root/client/src/assets/player/utils.ts
diff options
context:
space:
mode:
Diffstat (limited to 'client/src/assets/player/utils.ts')
-rw-r--r--client/src/assets/player/utils.ts46
1 files changed, 30 insertions, 16 deletions
diff --git a/client/src/assets/player/utils.ts b/client/src/assets/player/utils.ts
index 2bb70d1fa..eb9302493 100644
--- a/client/src/assets/player/utils.ts
+++ b/client/src/assets/player/utils.ts
@@ -1,4 +1,4 @@
1import { VideoFile } from '@shared/models' 1import { Video, VideoFile, VideoPlaylist } from '@shared/models'
2import { escapeHTML } from '@shared/core-utils/renderer' 2import { escapeHTML } from '@shared/core-utils/renderer'
3 3
4function toTitleCase (str: string) { 4function toTitleCase (str: string) {
@@ -43,8 +43,24 @@ function isMobile () {
43 return /iPhone|iPad|iPod|Android/i.test(navigator.userAgent) 43 return /iPhone|iPad|iPod|Android/i.test(navigator.userAgent)
44} 44}
45 45
46function buildVideoLink (options: { 46function buildPlaylistLink (playlist: Pick<VideoPlaylist, 'shortUUID'>, base?: string) {
47 baseUrl?: string 47 return (base ?? window.location.origin) + '/w/p/' + playlist.shortUUID
48}
49
50function buildVideoLink (video: Pick<Video, 'shortUUID'>, base?: string) {
51 return (base ?? window.location.origin) + '/w/' + video.shortUUID
52}
53
54function buildPlaylistEmbedLink (playlist: Pick<VideoPlaylist, 'uuid'>, base?: string) {
55 return (base ?? window.location.origin) + '/video-playlists/embed/' + playlist.uuid
56}
57
58function buildVideoEmbedLink (video: Pick<Video, 'uuid'>, base?: string) {
59 return (base ?? window.location.origin) + '/videos/embed/' + video.uuid
60}
61
62function decorateVideoLink (options: {
63 url: string
48 64
49 startTime?: number 65 startTime?: number
50 stopTime?: number 66 stopTime?: number
@@ -60,12 +76,8 @@ function buildVideoLink (options: {
60 warningTitle?: boolean 76 warningTitle?: boolean
61 controls?: boolean 77 controls?: boolean
62 peertubeLink?: boolean 78 peertubeLink?: boolean
63} = {}) { 79}) {
64 const { baseUrl } = options 80 const { url } = options
65
66 const url = baseUrl
67 ? baseUrl
68 : window.location.origin + window.location.pathname.replace('/embed/', '/w/')
69 81
70 const params = generateParams(window.location.search) 82 const params = generateParams(window.location.search)
71 83
@@ -92,16 +104,12 @@ function buildVideoLink (options: {
92 return buildUrl(url, params) 104 return buildUrl(url, params)
93} 105}
94 106
95function buildPlaylistLink (options: { 107function decoratePlaylistLink (options: {
96 baseUrl?: string 108 url: string
97 109
98 playlistPosition?: number 110 playlistPosition?: number
99}) { 111}) {
100 const { baseUrl } = options 112 const { url } = options
101
102 const url = baseUrl
103 ? baseUrl
104 : window.location.origin + window.location.pathname.replace('/video-playlists/embed/', '/w/p/')
105 113
106 const params = generateParams(window.location.search) 114 const params = generateParams(window.location.search)
107 115
@@ -224,8 +232,14 @@ export {
224 timeToInt, 232 timeToInt,
225 secondsToTime, 233 secondsToTime,
226 isWebRTCDisabled, 234 isWebRTCDisabled,
235
227 buildPlaylistLink, 236 buildPlaylistLink,
228 buildVideoLink, 237 buildVideoLink,
238 decorateVideoLink,
239 decoratePlaylistLink,
240 buildPlaylistEmbedLink,
241 buildVideoEmbedLink,
242
229 buildVideoOrPlaylistEmbed, 243 buildVideoOrPlaylistEmbed,
230 videoFileMaxByResolution, 244 videoFileMaxByResolution,
231 videoFileMinByResolution, 245 videoFileMinByResolution,