diff --git a/web/src/lib/components/add-media-card.svelte b/web/src/lib/components/add-media-card.svelte index a79400b..972eae6 100644 --- a/web/src/lib/components/add-media-card.svelte +++ b/web/src/lib/components/add-media-card.svelte @@ -16,10 +16,12 @@ async function addMedia() { loading = true; - let url = isShow ? new URL(apiUrl + '/tv/shows') : new URL(apiUrl + '/movies'); - url.searchParams.append(isShow ? 'show_id' : 'movie_id', String(result.external_id)); - url.searchParams.append('metadata_provider', result.metadata_provider); - const response = await fetch(url, { + const endpoint = isShow ? '/tv/shows' : '/movies'; + const urlParams = new URLSearchParams(); + urlParams.append(isShow ? 'show_id' : 'movie_id', String(result.external_id)); + urlParams.append('metadata_provider', result.metadata_provider); + const urlString = `${apiUrl}${endpoint}?${urlParams.toString()}`; + const response = await fetch(urlString, { method: 'POST', credentials: 'include' }); diff --git a/web/src/lib/components/download-movie-dialog.svelte b/web/src/lib/components/download-movie-dialog.svelte index 58b2d14..88587c7 100644 --- a/web/src/lib/components/download-movie-dialog.svelte +++ b/web/src/lib/components/download-movie-dialog.svelte @@ -24,13 +24,14 @@ let filePathSuffix: string = $state(''); async function downloadTorrent(result_id: string) { - let url = new URL(apiUrl + `/movies/${movie.id}/torrents`); - url.searchParams.append('public_indexer_result_id', result_id); + const urlParams = new URLSearchParams(); + urlParams.append('public_indexer_result_id', result_id); if (filePathSuffix !== '') { - url.searchParams.append('override_file_path_suffix', filePathSuffix); + urlParams.append('override_file_path_suffix', filePathSuffix); } + const urlString = `${apiUrl}/movies/${movie.id}/torrents?${urlParams.toString()}`; try { - const response = await fetch(url, { + const response = await fetch(urlString, { method: 'POST', headers: { 'Content-Type': 'application/json' @@ -64,13 +65,14 @@ torrentsError = null; torrents = []; - let url = new URL(apiUrl + `/movies/${movie.id}/torrents`); + const urlParams = new URLSearchParams(); if (override) { - url.searchParams.append('search_query_override', queryOverride); + urlParams.append('search_query_override', queryOverride); } + const urlString = `${apiUrl}/movies/${movie.id}/torrents?${urlParams.toString()}`; try { - const response = await fetch(url, { + const response = await fetch(urlString, { method: 'GET', headers: { 'Content-Type': 'application/json' diff --git a/web/src/lib/components/download-season-dialog.svelte b/web/src/lib/components/download-season-dialog.svelte index fc4c877..69600d9 100644 --- a/web/src/lib/components/download-season-dialog.svelte +++ b/web/src/lib/components/download-season-dialog.svelte @@ -29,14 +29,15 @@ let filePathSuffix: string = $state(''); async function downloadTorrent(result_id: string) { - let url = new URL(apiUrl + '/tv/torrents'); - url.searchParams.append('public_indexer_result_id', result_id); - url.searchParams.append('show_id', show.id); + const urlParams = new URLSearchParams(); + urlParams.append('public_indexer_result_id', result_id); + urlParams.append('show_id', show.id); if (filePathSuffix !== '') { - url.searchParams.append('override_file_path_suffix', filePathSuffix); + urlParams.append('override_file_path_suffix', filePathSuffix); } + const urlString = `${apiUrl}/tv/torrents?${urlParams.toString()}`; try { - const response = await fetch(url, { + const response = await fetch(urlString, { method: 'POST', headers: { 'Content-Type': 'application/json' @@ -73,20 +74,18 @@ torrentsError = null; torrents = []; - let url = new URL(apiUrl + '/tv/torrents'); - url.searchParams.append('show_id', show.id); + const urlParams = new URLSearchParams(); + urlParams.append('show_id', show.id); if (override) { - url.searchParams.append('search_query_override', queryOverride); + urlParams.append('search_query_override', queryOverride); } else { - url.searchParams.append('season_number', season_number.toString()); + urlParams.append('season_number', season_number.toString()); } + const urlString = `${apiUrl}/tv/torrents?${urlParams.toString()}`; try { - const response = await fetch(url, { + const response = await fetch(urlString, { method: 'GET', - headers: { - 'Content-Type': 'application/json' - }, credentials: 'include' }); diff --git a/web/src/lib/components/library-combobox.svelte b/web/src/lib/components/library-combobox.svelte index 90260e5..22a65ca 100644 --- a/web/src/lib/components/library-combobox.svelte +++ b/web/src/lib/components/library-combobox.svelte @@ -58,10 +58,11 @@ const endpoint = mediaType === 'tv' ? `/tv/shows/${media.id}/library` : `/movies/${media.id}/library`; - let url = new URL(apiUrl + endpoint); - url.searchParams.append('library', selectedLabel); + const urlParams = new URLSearchParams(); + urlParams.append('library', selectedLabel); + const urlString = `${apiUrl}${endpoint}?${urlParams.toString()}`; try { - const response = await fetch(url, { + const response = await fetch(urlString, { method: 'POST', credentials: 'include' }); diff --git a/web/src/routes/dashboard/movies/add-movie/+page.svelte b/web/src/routes/dashboard/movies/add-movie/+page.svelte index a9afe58..d473486 100644 --- a/web/src/routes/dashboard/movies/add-movie/+page.svelte +++ b/web/src/routes/dashboard/movies/add-movie/+page.svelte @@ -25,16 +25,19 @@ }); async function search(query: string) { - let url = new URL(apiUrl + '/movies/recommended'); + let urlString = apiUrl + '/movies/recommended'; + const urlParams = new URLSearchParams(); + if (query.length > 0) { - url = new URL(apiUrl + '/movies/search'); - url.searchParams.append('query', query); + urlString = apiUrl + '/movies/search'; + urlParams.append('query', query); toast.info(`Searching for "${query}" using ${metadataProvider.toUpperCase()}...`); } - url.searchParams.append('metadata_provider', metadataProvider); + urlParams.append('metadata_provider', metadataProvider); + urlString += `?${urlParams.toString()}`; try { - const response = await fetch(url, { + const response = await fetch(urlString, { method: 'GET', credentials: 'include' }); diff --git a/web/src/routes/dashboard/tv/[showId=uuid]/+page.svelte b/web/src/routes/dashboard/tv/[showId=uuid]/+page.svelte index cf1ccd8..feb4709 100644 --- a/web/src/routes/dashboard/tv/[showId=uuid]/+page.svelte +++ b/web/src/routes/dashboard/tv/[showId=uuid]/+page.svelte @@ -26,15 +26,14 @@ import { base } from '$app/paths'; async function toggle_continuous_download() { - let url = new URL(apiUrl + '/tv/shows/' + show().id + '/continuousDownload'); - url.searchParams.append('continuous_download', String(!show().continuous_download)); + const urlString = `${apiUrl}/tv/shows/${show().id}/continuousDownload?continuous_download=${!show().continuous_download}`; console.log( 'Toggling continuous download for show', show().name, 'to', !show().continuous_download ); - const response = await fetch(url, { + const response = await fetch(urlString, { method: 'POST', credentials: 'include' }); diff --git a/web/src/routes/dashboard/tv/add-show/+page.svelte b/web/src/routes/dashboard/tv/add-show/+page.svelte index de3ed6b..592f314 100644 --- a/web/src/routes/dashboard/tv/add-show/+page.svelte +++ b/web/src/routes/dashboard/tv/add-show/+page.svelte @@ -25,16 +25,19 @@ }); async function search(query: string) { - let url = new URL(apiUrl + '/tv/recommended'); + let urlString = apiUrl + '/tv/recommended'; + const urlParams = new URLSearchParams(); + if (query.length > 0) { - url = new URL(apiUrl + '/tv/search'); - url.searchParams.append('query', query); + urlString = apiUrl + '/tv/search'; + urlParams.append('query', query); toast.info(`Searching for "${query}" using ${metadataProvider.toUpperCase()}...`); } - url.searchParams.append('metadata_provider', metadataProvider); + urlParams.append('metadata_provider', metadataProvider); + urlString += `?${urlParams.toString()}`; try { - const response = await fetch(url, { + const response = await fetch(urlString, { method: 'GET', credentials: 'include' });