diff --git a/src/apps/legacy/controllers/itemDetails/index.js b/src/apps/legacy/controllers/itemDetails/index.js
index ee58d24f71..89ca5d7f01 100755
--- a/src/apps/legacy/controllers/itemDetails/index.js
+++ b/src/apps/legacy/controllers/itemDetails/index.js
@@ -256,7 +256,7 @@ function renderVideoSelections(page, mediaSources) {
titleParts.push(v.Codec.toUpperCase());
}
- return '';
+ return ``;
}).join('');
select.setAttribute('disabled', 'disabled');
@@ -279,7 +279,7 @@ function renderAudioSelections(page, mediaSources) {
const selectedId = mediaSource.DefaultAudioStreamIndex;
select.innerHTML = tracks.map(function (v) {
const selected = v.Index === selectedId ? ' selected' : '';
- return '';
+ return ``;
}).join('');
if (tracks.length > 1) {
@@ -309,7 +309,7 @@ function renderSubtitleSelections(page, mediaSources) {
let selected = selectedId === -1 ? ' selected' : '';
select.innerHTML = '' + tracks.map(function (v) {
selected = v.Index === selectedId ? ' selected' : '';
- return '';
+ return ``;
}).join('');
if (tracks.length > 0) {
@@ -729,12 +729,22 @@ function renderLinks(page, item) {
const links = [];
if (!layoutManager.tv && item.HomePageUrl) {
- links.push(`${globalize.translate('ButtonWebsite')}`);
+ try {
+ const parsedUrl = new URL(item.HomePageUrl);
+ links.push(`${globalize.translate('ButtonWebsite')}`);
+ } catch {
+ console.error('[renderLinks] Failed to parse home page URL', item.HomePageUrl);
+ }
}
if (item.ExternalUrls) {
for (const url of item.ExternalUrls) {
- links.push(`${escapeHtml(url.Name)}`);
+ try {
+ const parsedUrl = new URL(url.Url);
+ links.push(`${escapeHtml(url.Name)}`);
+ } catch {
+ console.error('[renderLinks] Failed to parse external URL', url.Url);
+ }
}
}