From 6e23c04847d05bbcb486bdd22e3281999c7f185d Mon Sep 17 00:00:00 2001 From: Francesco Grazioso Date: Sun, 5 May 2024 16:53:47 +0200 Subject: [PATCH] moved download logic in separeted file --- frontend/src/api/utils.ts | 45 +++++++++++++++++++++ frontend/src/views/Details.vue | 73 ++++++++++------------------------ 2 files changed, 65 insertions(+), 53 deletions(-) create mode 100644 frontend/src/api/utils.ts diff --git a/frontend/src/api/utils.ts b/frontend/src/api/utils.ts new file mode 100644 index 0000000..4f137ee --- /dev/null +++ b/frontend/src/api/utils.ts @@ -0,0 +1,45 @@ +import {downloadAnimeFilm, downloadAnimeSeries, downloadFilm, downloadTvSeries} from "@/api/api"; +import type {DownloadResponse, Episode, MediaItem} from "@/api/interfaces"; + +export const handleTVDownload = async (tvShowEpisodes: any[], item: MediaItem) => { + alertDownload(); + for (const season of tvShowEpisodes) { + const i = tvShowEpisodes.indexOf(season); + const res = (await downloadTvSeries(item.id, item.slug, i)).data; + handleDownloadError(res); + } +}; + +export const handleMovieDownload = async (item: MediaItem) => { + alertDownload(); + const res = (await downloadFilm(item.id, item.slug)).data; + handleDownloadError(res); +}; + +export const handleTVAnimeDownload = async (animeEpisodes: Episode[], item: MediaItem) => { + alertDownload(); + for (const episode of animeEpisodes) { + const res = (await downloadAnimeSeries(item.id, item.slug, episode.episode_id)).data; + handleDownloadError(res); + } +}; + +export const handleOVADownload = async (item: MediaItem) => { + alertDownload(); + const res = (await downloadAnimeFilm(item.id, item.slug)).data; + handleDownloadError(res); +}; + +const handleDownloadError = (res: DownloadResponse) => { + if (res.error) { + throw new Error(`${res.error} - ${res.message}`); + } +}; + +export const alertDownload = (message?: any) => { + if (message) { + alert(message) + return; + } + alert('Il downlaod è iniziato, il file sarà disponibile tra qualche minuto nella cartella \'Video\' del progetto...') +} \ No newline at end of file diff --git a/frontend/src/views/Details.vue b/frontend/src/views/Details.vue index c82f123..620e869 100644 --- a/frontend/src/views/Details.vue +++ b/frontend/src/views/Details.vue @@ -1,8 +1,9 @@