implement video download
All checks were successful
Build and Push Multi-Arch Docker Image / build-and-push (push) Successful in 18m28s

needs check, if converted files can be run on device

Signed-off-by: Peter Siegmund <developer@mars3142.org>
This commit is contained in:
2026-02-01 11:39:02 +01:00
parent efd34616b1
commit 1c5189ea12
12 changed files with 386 additions and 48 deletions

View File

@@ -7,6 +7,8 @@ import 'package:cinema/feature/poster/data/repositories/image_loader.dart';
import 'package:cinema/feature/poster/data/services/poster.service.dart';
import 'package:cinema/feature/root/data/service/root.service.dart';
import 'package:cinema/feature/version/version.dart';
import 'package:cinema/feature/video/data/repositories/video_loader.dart';
import 'package:cinema/feature/video/data/services/video.service.dart';
import 'package:cinema/injectable.dart';
import 'package:shelf/shelf.dart';
import 'package:shelf/shelf_io.dart' as io;
@@ -21,6 +23,7 @@ void main(List<String> args) async {
final router = Router();
router.mount("/poster", getIt<PosterService>().router.call);
router.mount("/video", getIt<VideoService>().router.call);
router.mount("/", getIt<RootService>().router.call);
/// add middlewares (Logging, CORS)
@@ -36,11 +39,25 @@ void main(List<String> args) async {
}
print('Caching current trending images...');
final ImageLoader loader = getIt();
final movies = await loader.getPosterURIs();
final ImageLoader imageLoader = getIt();
final movies = await imageLoader.getMovies();
for (var movie in movies) {
await loader.downloadImages(movie);
await imageLoader.downloadImages(movie);
}
// Cache videos in background (non-blocking)
print('Starting video caching in background...');
final VideoLoader videoLoader = getIt();
for (var movie in movies) {
// Jedes Video läuft in einem eigenen async "Thread" (Future)
// ohne await, damit der Server-Start nicht blockiert wird
videoLoader.downloadVideo(movie).then((success) {
if (success) {
print('Background video cache complete: ${movie.title}');
}
}).catchError((e) {
print('Background video cache error for ${movie.title}: $e');
});
}
getIt<Version>().printVersion();