Code Review Optimierungen: Typsicherheit, Scanner-Performance, DB Upgrade Template, Division Guard

This commit is contained in:
Hermes (Server)
2026-07-24 08:33:30 +02:00
parent c7828b851c
commit b43ccd4c0d
8 changed files with 225 additions and 525 deletions
+8 -4
View File
@@ -26,6 +26,8 @@ class MusikScanner {
final gefunden = <Song>[];
final pfade = await _sammleMusikPfade();
final player = AudioPlayer();
for (final pfad in pfade) {
try {
final file = File(pfad);
@@ -35,7 +37,7 @@ class MusikScanner {
titel: _dateiNameOhneEndung(pfad),
kuenstler: 'Unbekannt',
album: '',
dauerSekunden: await _ermittleDauer(pfad),
dauerSekunden: await _ermittleDauer(player, pfad),
dateiPfad: pfad,
coverPfad: null,
groesseBytes: stat.size,
@@ -47,6 +49,10 @@ class MusikScanner {
}
}
try {
await player.dispose();
} catch (_) {}
// In DB speichern
final vorhandene = await _db.alleSongs();
final vorhandenePfade = vorhandene.map((s) => s.dateiPfad).toSet();
@@ -126,12 +132,10 @@ class MusikScanner {
} catch (_) {}
}
Future<int> _ermittleDauer(String pfad) async {
Future<int> _ermittleDauer(AudioPlayer player, String pfad) async {
try {
final player = AudioPlayer();
await player.setFilePath(pfad);
final dauer = player.duration;
await player.dispose();
return dauer?.inSeconds ?? 0;
} catch (_) {
return 0;