diff --git a/app/frontend/src/main/java/com/youtubeapp/data/ApiClient.kt b/app/frontend/src/main/java/com/youtubeapp/data/ApiClient.kt index 8427460..fdca5b6 100644 --- a/app/frontend/src/main/java/com/youtubeapp/data/ApiClient.kt +++ b/app/frontend/src/main/java/com/youtubeapp/data/ApiClient.kt @@ -1,11 +1,14 @@ package com.youtubeapp.data +import android.os.Build import retrofit2.Retrofit import retrofit2.converter.gson.GsonConverterFactory object ApiClient { - // Server-IP hier anpassen - const val BASE_URL = "http://marha.local:8000/" + val BASE_URL: String = if (Build.FINGERPRINT.contains("generic") || Build.FINGERPRINT.contains("sdk")) + "http://10.0.2.2:8000/" + else + "http://marha.local:8000/" val api: VideoApi by lazy { Retrofit.Builder() diff --git a/backend/routes/__pycache__/videos.cpython-312.pyc b/backend/routes/__pycache__/videos.cpython-312.pyc index e48ed9e..550176a 100644 Binary files a/backend/routes/__pycache__/videos.cpython-312.pyc and b/backend/routes/__pycache__/videos.cpython-312.pyc differ diff --git a/backend/routes/videos.py b/backend/routes/videos.py index 72f0da2..6b483f2 100644 --- a/backend/routes/videos.py +++ b/backend/routes/videos.py @@ -26,8 +26,7 @@ async def create_videos(videos_data: list[VideoCreate], db: Session = Depends(ge video_service.delete_by_youtube_id(db, video_id_match) video = video_service.create_video(db, video_data) created_ids.append(video.id) - if video_data.profile_id: - profile_ids.add(video_data.profile_id) + profile_ids.add(video_data.profile_id or 1) videos = [video_service.get_video(db, vid) for vid in created_ids] if profile_ids: diff --git a/features.md b/features.md index ea8286a..e72a6c3 100644 --- a/features.md +++ b/features.md @@ -1,16 +1,38 @@ -# Aufgaben +# Aufgaben + ## Browser + - Sichtbare Youtube Videos werden erfasst -- Videodaten (Titel, Youtuber, Bild, Url) werden nach dem erfassen gruppiert an den Server gesendet -- Einstellung: Profil auswählen -## App -- Ansicht: Navigation mit Alle Videos, Heruntergeladen +- Videodaten (Titel, Youtuber, Bild, Url) werden nach dem erfassen gruppiert an den Server gesendet +- Einstellung: Profil auswählen + +## App + +- Startansicht: + - Navigation unten: Alle Videos, Heruntergeladen + - Icons oben rechts: Mülleimer (Löschen), Benutzer (Profile) - Alle Videos: Videos als Cards auflisten (Untereinander: Bild, Youtuber, Titel) -- Heruntergeladen: Heruntergeladene Videos als Cards auflisten (Untereinander: Bild, Youtuber, Titel) -- Klick auf Card zeigt die Videoübersicht (Starten, Download, Zurück) -- Klick auf Startet startet den Stream über den Server mit den Standard Video-Controls und einem Zurück-Button -- Klick auf Download lädt das Video herunter und wird lokal auf dem Client gespeichert -- Klick auf Icon zeigt verfügbare Profile -- Das ausgewählte Profil wird persistiert und bestimmt welche Videos angezeigt werden -- Klick auf Icon löscht alle nicht heruntergeladenen Videos vom aktuellen Profil -- Bei neuen Videoeinträgen in der DB werden die Videos für das zugehörige Profil in der App aktualisiert \ No newline at end of file + - Klick auf ein Video zeigt die Videoübersicht + - Neue Videoeinträge in der DB aktualisieren direkt die Videoliste + - Funktioniert nur Online und wenn Server verfügbar +- Heruntergeladen: Heruntergeladene (lokale) Videos als Cards auflisten (Untereinander: Bild, Youtuber, Titel) + - Videodaten und Videodatei werden lokal gespeichert (funktionieren Offline) +- Mülleimer Icon: Alle Videodaten von nicht heruntergeladenen Videos zum aktuellen Profil löschen +- Benutzer Icon: Verfügbare Profile anzeigen + - Klick auf ein Profile setzt dieses als das aktuelle Profil + - Es werden nur Videos zu dem Profil angezeigt + - Standardprofil enthält alle Videos ohne Profilzuweisung +- Videoübersicht: + - Oben links: Zurück-Button + - Unter Zurück-Button: Thumbnail + - Unten: Abspielen und Download Buttons +- Abspielen: + - "Zurück"-Button oben linsk + - Standard Videos Controls + - Startet einen Stream über den Server +- Download: + - Video auf dem Server herunterladen, Video lokal speichern, Video auf dem Server löschen + - Ladeanimation währenddessen + - Beim Abspielen wird das heruntergeladene Video priorisiert +- Fehlerbehandlung + - Server nicht erreichbar: Fehlermeldung "Server nicht erreichbar" anzeigen unter Alle Videos