From 1ad34107b2d165746f13c7ed848be922f9866d2a Mon Sep 17 00:00:00 2001 From: Stefan Dej Date: Tue, 26 Dec 2023 08:36:24 +0100 Subject: [PATCH] fix: fix webcam url with multiple moonraker instances (#1713) * fix: fix webcam url with multiple moonraker instances Signed-off-by: Stefan Dej * fix: fix webcam url with multiple moonraker instances Signed-off-by: Stefan Dej * fix: parse hostPort to int Signed-off-by: Stefan Dej --------- Signed-off-by: Stefan Dej --- src/components/mixins/base.ts | 2 +- src/components/mixins/webcam.ts | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/components/mixins/base.ts b/src/components/mixins/base.ts index 1f02143d..c21c665b 100644 --- a/src/components/mixins/base.ts +++ b/src/components/mixins/base.ts @@ -14,7 +14,7 @@ export default class BaseMixin extends Vue { } get hostPort(): number { - return this.$store.state.socket.port ?? 80 + return parseInt(this.$store.state.socket.port ?? 80) } get instancesDB() { diff --git a/src/components/mixins/webcam.ts b/src/components/mixins/webcam.ts index 28ade919..64778d64 100644 --- a/src/components/mixins/webcam.ts +++ b/src/components/mixins/webcam.ts @@ -23,8 +23,12 @@ export default class WebcamMixin extends Mixins(BaseMixin) { // overwrite url to baseUrl, if it is an absolute URL if (baseUrl.startsWith('http') || baseUrl.startsWith('://')) url = new URL(baseUrl) - if (baseUrl.startsWith('/webcam') && ![80, 7125, 7130].includes(this.hostPort)) { - url.port = this.hostPort.toString() + if (baseUrl.startsWith('/webcam')) { + const ports = [80] + ports.push(this.$store.state.server.config?.config?.server?.port ?? 7125) + ports.push(this.$store.state.server.config?.config?.server?.ssl_port ?? 7130) + + if (!ports.includes(this.hostPort)) url.port = this.hostPort.toString() } return decodeURIComponent(url.toString())