add frontend code for movie imports

This commit is contained in:
maxid
2025-12-07 19:57:09 +01:00
parent d2e8d5eeb7
commit 4c60037a17
5 changed files with 4243 additions and 4122 deletions

View File

@@ -6,6 +6,7 @@
import type { components } from '$lib/api/api';
import { Spinner } from '$lib/components/ui/spinner';
import SuggestedMediaCard from '$lib/components/import-media/suggested-media-card.svelte';
import {invalidateAll} from "$app/navigation";
let {
isTv,
@@ -25,36 +26,60 @@
async function handleImportMedia(media: components['schemas']['MetaDataProviderSearchResult']) {
isImporting = true;
submitRequestError = null;
let { data } = await client.POST('/api/v1/tv/shows', {
params: {
query: {
metadata_provider: media.metadata_provider as 'tmdb' | 'tvdb',
show_id: media.external_id
}
}
});
console.log('oida:', data);
let showId = data?.id ?? 'no_id';
const { error } = await client.POST('/api/v1/tv/importable/{show_id}', {
params: {
path: {
show_id: showId
},
query: {
directory: name
}
}
});
let errored = null;
if(isTv) {
let { data } = await client.POST('/api/v1/tv/shows', {
params: {
query: {
metadata_provider: media.metadata_provider as 'tmdb' | 'tvdb',
show_id: media.external_id
}
}
});
let showId = data?.id ?? 'no_id';
const { error } = await client.POST('/api/v1/tv/importable/{show_id}', {
params: {
path: {
show_id: showId
},
query: {
directory: name
}
}
});
errored = error;
}else{
let { data } = await client.POST('/api/v1/movies', {
params: {
query: {
metadata_provider: media.metadata_provider as 'tmdb' | 'tvdb',
movie_id: media.external_id
}
}
});
let movieId = data?.id ?? 'no_id';
const { error } = await client.POST('/api/v1/movies/importable/{movie_id}', {
params: {
path: {
movie_id: movieId
},
query: {
directory: name
}
}
});
errored = error;
}
isImporting = false;
if (error) {
if (errored) {
toast.error('Failed to import');
} else {
dialogOpen = false;
toast.success('Imported successfully!');
}
}
await invalidateAll()
}
</script>
<Dialog.Root bind:open={dialogOpen}>