mirror of
https://github.com/maxdorninger/MediaManager.git
synced 2026-04-18 02:54:07 +02:00
fix bug which causes only recommended shows/movies to be displayed when trying to add media
This commit is contained in:
@@ -5,6 +5,7 @@
|
|||||||
<content url="file://$MODULE_DIR$">
|
<content url="file://$MODULE_DIR$">
|
||||||
<sourceFolder url="file://$MODULE_DIR$/app" isTestSource="false" />
|
<sourceFolder url="file://$MODULE_DIR$/app" isTestSource="false" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/.idea" />
|
<excludeFolder url="file://$MODULE_DIR$/.idea" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/.venv" />
|
||||||
</content>
|
</content>
|
||||||
<orderEntry type="jdk" jdkName="uv (MediaManager) (2)" jdkType="Python SDK" />
|
<orderEntry type="jdk" jdkName="uv (MediaManager) (2)" jdkType="Python SDK" />
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
|||||||
@@ -18,16 +18,20 @@
|
|||||||
let searchTerm: string = $state('');
|
let searchTerm: string = $state('');
|
||||||
let metadataProvider: string = $state('tmdb');
|
let metadataProvider: string = $state('tmdb');
|
||||||
let results: MetaDataProviderSearchResult[] | null = $state(null);
|
let results: MetaDataProviderSearchResult[] | null = $state(null);
|
||||||
onMount(search);
|
|
||||||
|
|
||||||
async function search() {
|
onMount(() => {
|
||||||
|
search("");
|
||||||
|
});
|
||||||
|
|
||||||
|
async function search(query: string) {
|
||||||
let url = new URL(apiUrl + '/movies/recommended');
|
let url = new URL(apiUrl + '/movies/recommended');
|
||||||
if (searchTerm.length > 0) {
|
if (query.length > 0) {
|
||||||
let url = new URL(apiUrl + '/movies/search');
|
url = new URL(apiUrl + '/movies/search');
|
||||||
url.searchParams.append('query', searchTerm);
|
url.searchParams.append('query', query);
|
||||||
url.searchParams.append('metadata_provider', metadataProvider);
|
toast.info(`Searching for "${query}" using ${metadataProvider.toUpperCase()}...`);
|
||||||
toast.info(`Searching for "${searchTerm}" using ${metadataProvider.toUpperCase()}...`);
|
|
||||||
}
|
}
|
||||||
|
url.searchParams.append('metadata_provider', metadataProvider);
|
||||||
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const response = await fetch(url, {
|
const response = await fetch(url, {
|
||||||
@@ -39,13 +43,14 @@
|
|||||||
throw new Error(`Search failed: ${response.status} ${errorText || response.statusText}`);
|
throw new Error(`Search failed: ${response.status} ${errorText || response.statusText}`);
|
||||||
}
|
}
|
||||||
results = await response.json();
|
results = await response.json();
|
||||||
if (searchTerm.length === 0) {
|
console.log("Fetched results:", results);
|
||||||
|
if (query.length === 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (results && results.length > 0) {
|
if (results && results.length > 0) {
|
||||||
toast.success(`Found ${results.length} result(s) for "${searchTerm}".`);
|
toast.success(`Found ${results.length} result(s) for "${query}".`);
|
||||||
} else {
|
} else {
|
||||||
toast.info(`No results found for "${searchTerm}".`);
|
toast.info(`No results found for "${query}".`);
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
const errorMessage =
|
const errorMessage =
|
||||||
@@ -120,24 +125,22 @@
|
|||||||
</Collapsible.Root>
|
</Collapsible.Root>
|
||||||
</section>
|
</section>
|
||||||
<section>
|
<section>
|
||||||
<Button onclick={search} type="submit">Search</Button>
|
<Button onclick={() => search(searchTerm)} type="submit">Search</Button>
|
||||||
</section>
|
</section>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<Separator class="my-8" />
|
<Separator class="my-8" />
|
||||||
|
|
||||||
{#if results != null}
|
{#if results && results.length === 0}
|
||||||
{#if results.length === 0}
|
<h3 class="mx-auto">No Shows found.</h3>
|
||||||
<h3 class="mx-auto">No Shows found.</h3>
|
{:else if results}
|
||||||
{:else}
|
<div
|
||||||
<div
|
class="grid w-full auto-rows-min gap-4 sm:grid-cols-1
|
||||||
class="grid w-full auto-rows-min gap-4 sm:grid-cols-1
|
md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 2xl:grid-cols-5"
|
||||||
md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 2xl:grid-cols-5"
|
>
|
||||||
>
|
{#each results as result}
|
||||||
{#each results as result}
|
<AddMediaCard {result} isShow={false} />
|
||||||
<AddMediaCard {result} isShow={false} />
|
{/each}
|
||||||
{/each}
|
</div>
|
||||||
</div>
|
|
||||||
{/if}
|
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -18,15 +18,19 @@
|
|||||||
let searchTerm: string = $state('');
|
let searchTerm: string = $state('');
|
||||||
let metadataProvider: string = $state('tmdb');
|
let metadataProvider: string = $state('tmdb');
|
||||||
let results: MetaDataProviderSearchResult[] | null = $state(null);
|
let results: MetaDataProviderSearchResult[] | null = $state(null);
|
||||||
onMount(search);
|
|
||||||
async function search() {
|
onMount(() => {
|
||||||
|
search("");
|
||||||
|
});
|
||||||
|
|
||||||
|
async function search(query: string) {
|
||||||
let url = new URL(apiUrl + '/tv/recommended');
|
let url = new URL(apiUrl + '/tv/recommended');
|
||||||
if (searchTerm.length > 0) {
|
if (query.length > 0) {
|
||||||
let url = new URL(apiUrl + '/tv/search');
|
url = new URL(apiUrl + '/tv/search');
|
||||||
url.searchParams.append('query', searchTerm);
|
url.searchParams.append('query', query);
|
||||||
url.searchParams.append('metadata_provider', metadataProvider);
|
toast.info(`Searching for "${query}" using ${metadataProvider.toUpperCase()}...`);
|
||||||
toast.info(`Searching for "${searchTerm}" using ${metadataProvider.toUpperCase()}...`);
|
|
||||||
}
|
}
|
||||||
|
url.searchParams.append('metadata_provider', metadataProvider);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const response = await fetch(url, {
|
const response = await fetch(url, {
|
||||||
@@ -38,13 +42,14 @@
|
|||||||
throw new Error(`Search failed: ${response.status} ${errorText || response.statusText}`);
|
throw new Error(`Search failed: ${response.status} ${errorText || response.statusText}`);
|
||||||
}
|
}
|
||||||
results = await response.json();
|
results = await response.json();
|
||||||
if (searchTerm.length === 0) {
|
console.log("Fetched results:", results);
|
||||||
|
if (query.length === 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (results && results.length > 0) {
|
if (results && results.length > 0) {
|
||||||
toast.success(`Found ${results.length} result(s) for "${searchTerm}".`);
|
toast.success(`Found ${results.length} result(s) for "${query}".`);
|
||||||
} else {
|
} else {
|
||||||
toast.info(`No results found for "${searchTerm}".`);
|
toast.info(`No results found for "${query}".`);
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
const errorMessage =
|
const errorMessage =
|
||||||
@@ -119,24 +124,22 @@
|
|||||||
</Collapsible.Root>
|
</Collapsible.Root>
|
||||||
</section>
|
</section>
|
||||||
<section>
|
<section>
|
||||||
<Button onclick={search} type="submit">Search</Button>
|
<Button onclick={() => search(searchTerm)} type="submit">Search</Button>
|
||||||
</section>
|
</section>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<Separator class="my-8" />
|
<Separator class="my-8" />
|
||||||
|
|
||||||
{#if results != null}
|
{#if results && results.length === 0}
|
||||||
{#if results.length === 0}
|
<h3 class="mx-auto">No Shows found.</h3>
|
||||||
<h3 class="mx-auto">No Shows found.</h3>
|
{:else if results}
|
||||||
{:else}
|
<div
|
||||||
<div
|
class="grid w-full auto-rows-min gap-4 sm:grid-cols-1
|
||||||
class="grid w-full auto-rows-min gap-4 sm:grid-cols-1
|
md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 2xl:grid-cols-5"
|
||||||
md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 2xl:grid-cols-5"
|
>
|
||||||
>
|
{#each results as result}
|
||||||
{#each results as result}
|
<AddMediaCard {result} isShow={true} />
|
||||||
<AddMediaCard {result} />
|
{/each}
|
||||||
{/each}
|
</div>
|
||||||
</div>
|
|
||||||
{/if}
|
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user