This commit is contained in:
Marek Lenczewski
2026-04-06 20:01:19 +02:00
parent 8ecef00d0a
commit 2f37d1b31f
4 changed files with 41 additions and 17 deletions

View File

@@ -1,11 +1,14 @@
package com.youtubeapp.data package com.youtubeapp.data
import android.os.Build
import retrofit2.Retrofit import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory import retrofit2.converter.gson.GsonConverterFactory
object ApiClient { object ApiClient {
// Server-IP hier anpassen val BASE_URL: String = if (Build.FINGERPRINT.contains("generic") || Build.FINGERPRINT.contains("sdk"))
const val BASE_URL = "http://marha.local:8000/" "http://10.0.2.2:8000/"
else
"http://marha.local:8000/"
val api: VideoApi by lazy { val api: VideoApi by lazy {
Retrofit.Builder() Retrofit.Builder()

View File

@@ -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_service.delete_by_youtube_id(db, video_id_match)
video = video_service.create_video(db, video_data) video = video_service.create_video(db, video_data)
created_ids.append(video.id) created_ids.append(video.id)
if video_data.profile_id: profile_ids.add(video_data.profile_id or 1)
profile_ids.add(video_data.profile_id)
videos = [video_service.get_video(db, vid) for vid in created_ids] videos = [video_service.get_video(db, vid) for vid in created_ids]
if profile_ids: if profile_ids:

View File

@@ -1,16 +1,38 @@
# Aufgaben # Aufgaben
## Browser ## Browser
- Sichtbare Youtube Videos werden erfasst - Sichtbare Youtube Videos werden erfasst
- Videodaten (Titel, Youtuber, Bild, Url) werden nach dem erfassen gruppiert an den Server gesendet - Videodaten (Titel, Youtuber, Bild, Url) werden nach dem erfassen gruppiert an den Server gesendet
- Einstellung: Profil auswählen - Einstellung: Profil auswählen
## App
- Ansicht: Navigation mit Alle Videos, Heruntergeladen ## 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) - Alle Videos: Videos als Cards auflisten (Untereinander: Bild, Youtuber, Titel)
- Heruntergeladen: Heruntergeladene Videos als Cards auflisten (Untereinander: Bild, Youtuber, Titel) - Klick auf ein Video zeigt die Videoübersicht
- Klick auf Card zeigt die Videoübersicht (Starten, Download, Zurück) - Neue Videoeinträge in der DB aktualisieren direkt die Videoliste
- Klick auf Startet startet den Stream über den Server mit den Standard Video-Controls und einem Zurück-Button - Funktioniert nur Online und wenn Server verfügbar
- Klick auf Download lädt das Video herunter und wird lokal auf dem Client gespeichert - Heruntergeladen: Heruntergeladene (lokale) Videos als Cards auflisten (Untereinander: Bild, Youtuber, Titel)
- Klick auf Icon zeigt verfügbare Profile - Videodaten und Videodatei werden lokal gespeichert (funktionieren Offline)
- Das ausgewählte Profil wird persistiert und bestimmt welche Videos angezeigt werden - Mülleimer Icon: Alle Videodaten von nicht heruntergeladenen Videos zum aktuellen Profil löschen
- Klick auf Icon löscht alle nicht heruntergeladenen Videos vom aktuellen Profil - Benutzer Icon: Verfügbare Profile anzeigen
- Bei neuen Videoeinträgen in der DB werden die Videos für das zugehörige Profil in der App aktualisiert - 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