From 3e05722d91e74e6748b50dd4de012f0b825d0e36 Mon Sep 17 00:00:00 2001 From: Alex Frantz Date: Sat, 17 May 2025 01:46:37 -0400 Subject: [PATCH] update api url --- src/components/TVComponent.tsx | 118 ++++++++++++++++++--------------- 1 file changed, 64 insertions(+), 54 deletions(-) diff --git a/src/components/TVComponent.tsx b/src/components/TVComponent.tsx index 01f5815..7b467fe 100644 --- a/src/components/TVComponent.tsx +++ b/src/components/TVComponent.tsx @@ -1,60 +1,70 @@ -import { useState, useEffect } from 'react'; +import { useState, useEffect } from "react"; type TVObject = { - id: number, - type: string, - title: string, - author: string | null, - description: string, - image: string, - episode: string, - tmdbId: string, - finished: boolean, - yearReleased: string, - genre: string, - startedOn: string -} + id: number; + type: string; + title: string; + author: string | null; + description: string; + image: string; + episode: string; + tmdbId: string; + finished: boolean; + yearReleased: string; + genre: string; + startedOn: string; +}; export default function TVComponent() { - const [ show, setShow ] = useState(null); - const [ failedFetch, setFailedFetch ] = useState(false); + const [show, setShow] = useState(null); + const [failedFetch, setFailedFetch] = useState(false); - useEffect(() => { - async function fetchMusic() { - const response = await fetch("https://api.alexav.gg/v4/tracker/latest/tv") - if (response.ok) { - const data = await response.json() - setShow(data.data as TVObject) - } else setFailedFetch(true) - } - - setTimeout(() => { - fetchMusic() - }, 60000) - fetchMusic() - }, []) - - if (show) { - return ( -
- -

{show.title} - {show.finished ? "finished" : show.episode}

-
-
- ) - } else { - if (failedFetch) { - return ( -
-

failed to get show :(

-
- ) - } else { - return ( -
-

loading show..

-
- ) - } + useEffect(() => { + async function fetchMusic() { + const response = await fetch( + "https://api.alexav.gg/v4/tracker/items?type=tv&sort=desc" + ); + if (response.ok) { + const data = await response.json(); + if (data.data && data.data.length <= 0) { + setFailedFetch(true); + } else setShow(data.data[0] as TVObject); + } else setFailedFetch(true); } -} \ No newline at end of file + + setTimeout(() => { + fetchMusic(); + }, 60000); + fetchMusic(); + }, []); + + if (show) { + return ( +
+ +

+ {show.title} - {show.finished ? "finished" : show.episode} +

+
+
+ ); + } else { + if (failedFetch) { + return ( +
+

failed to get show :(

+
+ ); + } else { + return ( +
+

loading show..

+
+ ); + } + } +}