From d6dd9f14c74ac1d4c09aa2287ead7bcce5425960 Mon Sep 17 00:00:00 2001 From: 4gray Date: Sun, 1 Dec 2024 17:03:25 +0100 Subject: [PATCH] fix: improve URL handling and add validation for EPG source input --- src/app/settings/settings.component.ts | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/app/settings/settings.component.ts b/src/app/settings/settings.component.ts index 80a37f0d3..0afce7748 100644 --- a/src/app/settings/settings.component.ts +++ b/src/app/settings/settings.component.ts @@ -97,6 +97,14 @@ export class SettingsComponent implements OnInit { id: VideoPlayer.VideoJs, label: 'VideoJs Player', }, + /* { + id: VideoPlayer.DPlayer, + label: 'DPlayer', + }, + { + id: VideoPlayer.ArtPlayer, + label: 'ArtPlayer', + }, */ ...(this.isTauri ? this.osPlayers : []), ]; @@ -180,7 +188,9 @@ export class SettingsComponent implements OnInit { const URL_REGEX = /^(http|https|file):\/\/[^ "]+$/; const urls = Array.isArray(epgUrls) ? epgUrls : [epgUrls]; - const filteredUrls = urls.filter((url) => url !== ''); + const filteredUrls = urls + .map((url) => url.trim()) + .filter((url) => url !== ''); filteredUrls.forEach((url) => { this.epgUrl.push( @@ -313,7 +323,14 @@ export class SettingsComponent implements OnInit { * Initializes new entry in form array for EPG URL */ addEpgSource(): void { - this.epgUrl.insert(this.epgUrl.length, new FormControl('')); + this.epgUrl.insert( + this.epgUrl.length, + new FormControl('', { + validators: [ + Validators.pattern(/^(http|https|file):\/\/[^ "]+$/), + ], + }) + ); } /**