From ab4001aade0891b70e456a215ced0f825c57fde8 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Fri, 22 Oct 2021 14:11:58 +0200 Subject: [PATCH] Provide origin URL to client and fix remote share --- .../shared/metadata/video-attributes.component.html | 2 +- .../shared/metadata/video-attributes.component.ts | 8 -------- client/src/app/shared/shared-main/video/video.model.ts | 2 +- .../shared/shared-share-modal/video-share.component.ts | 8 ++++---- server/models/video/formatter/video-format-utils.ts | 2 ++ shared/extra-utils/videos/videos.ts | 3 ++- shared/models/videos/video.model.ts | 3 +-- 7 files changed, 11 insertions(+), 17 deletions(-) diff --git a/client/src/app/+videos/+video-watch/shared/metadata/video-attributes.component.html b/client/src/app/+videos/+video-watch/shared/metadata/video-attributes.component.html index 362a21905..d65c9356a 100644 --- a/client/src/app/+videos/+video-watch/shared/metadata/video-attributes.component.html +++ b/client/src/app/+videos/+video-watch/shared/metadata/video-attributes.component.html @@ -12,7 +12,7 @@ diff --git a/client/src/app/+videos/+video-watch/shared/metadata/video-attributes.component.ts b/client/src/app/+videos/+video-watch/shared/metadata/video-attributes.component.ts index 9429581ac..b8f564c4c 100644 --- a/client/src/app/+videos/+video-watch/shared/metadata/video-attributes.component.ts +++ b/client/src/app/+videos/+video-watch/shared/metadata/video-attributes.component.ts @@ -9,14 +9,6 @@ import { VideoDetails } from '@app/shared/shared-main' export class VideoAttributesComponent { @Input() video: VideoDetails - getVideoUrl () { - if (!this.video.url) { - return this.video.originInstanceUrl + VideoDetails.buildWatchUrl(this.video) - } - - return this.video.url - } - getVideoHost () { return this.video.channel.host } diff --git a/client/src/app/shared/shared-main/video/video.model.ts b/client/src/app/shared/shared-main/video/video.model.ts index 7471a933b..10caec014 100644 --- a/client/src/app/shared/shared-main/video/video.model.ts +++ b/client/src/app/shared/shared-main/video/video.model.ts @@ -52,7 +52,7 @@ export class Video implements VideoServerModel { embedPath: string embedUrl: string - url?: string + url: string views: number likes: number diff --git a/client/src/app/shared/shared-share-modal/video-share.component.ts b/client/src/app/shared/shared-share-modal/video-share.component.ts index 341abdc2b..70890e551 100644 --- a/client/src/app/shared/shared-share-modal/video-share.component.ts +++ b/client/src/app/shared/shared-share-modal/video-share.component.ts @@ -96,12 +96,12 @@ export class VideoShareComponent { } getVideoUrl () { - const baseUrl = this.customizations.originUrl - ? this.video.originInstanceUrl - : window.location.origin + const url = this.customizations.originUrl + ? this.video.url + : buildVideoLink(this.video, window.location.origin) return decorateVideoLink({ - url: buildVideoLink(this.video, baseUrl), + url, ...this.getVideoOptions() }) diff --git a/server/models/video/formatter/video-format-utils.ts b/server/models/video/formatter/video-format-utils.ts index b3c4f390d..0cbad5684 100644 --- a/server/models/video/formatter/video-format-utils.ts +++ b/server/models/video/formatter/video-format-utils.ts @@ -50,6 +50,8 @@ function videoModelToFormattedJSON (video: MVideoFormattable, options?: VideoFor uuid: video.uuid, shortUUID: uuidToShort(video.uuid), + url: video.url, + name: video.name, category: { id: video.category, diff --git a/shared/extra-utils/videos/videos.ts b/shared/extra-utils/videos/videos.ts index a1d2ba0fc..4d2784dde 100644 --- a/shared/extra-utils/videos/videos.ts +++ b/shared/extra-utils/videos/videos.ts @@ -113,7 +113,7 @@ async function completeVideoCheck ( channel: { displayName: string name: string - description + description: string isLocal: boolean } fixture: string @@ -151,6 +151,7 @@ async function completeVideoCheck ( expect(video.dislikes).to.equal(attributes.dislikes) expect(video.isLocal).to.equal(attributes.isLocal) expect(video.duration).to.equal(attributes.duration) + expect(video.url).to.contain(originHost) expect(dateIsValid(video.createdAt)).to.be.true expect(dateIsValid(video.publishedAt)).to.be.true expect(dateIsValid(video.updatedAt)).to.be.true diff --git a/shared/models/videos/video.model.ts b/shared/models/videos/video.model.ts index 0e3e89f43..4a7e399a2 100644 --- a/shared/models/videos/video.model.ts +++ b/shared/models/videos/video.model.ts @@ -36,8 +36,7 @@ export interface Video { embedPath: string embedUrl?: string - // When using the search index - url?: string + url: string views: number likes: number