scanner improvements + playback ux

This commit is contained in:
2026-02-02 12:19:03 -05:00
parent 575c3c5675
commit 20874ecff7
4 changed files with 23 additions and 8 deletions

View File

@@ -6,6 +6,8 @@ using FFMpegCore;
using MaybeError;
using MaybeError.Errors;
using SharpCompress.Common;
using SixLabors.ImageSharp;
using System.Collections.Frozen;
@@ -55,11 +57,17 @@ public class FileScannerService(MediaService mediaService, IConfiguration config
{
var files = Directory.GetFiles(path, "*", SearchOption.AllDirectories);
var existingFiles = await mediaService.GetExistingFilePathsAsync(cancellationToken);
var upToDateFiles = existingFiles.Where(e => e.Value == MediaEntry.CUR_VERSION)
.Select(e => e.Key)
.ToFrozenSet();
var filesToProcess = files.Where(f => !upToDateFiles.Contains(Path.GetRelativePath(path, f))).ToArray();
var total = 0;
foreach (var chunk in files.Chunk(50))
var prog = 0;
foreach (var chunk in filesToProcess.Chunk(50))
{
prog += chunk.Length;
total += await ScanFileChunkAsync(path, chunk, existingFiles, cancellationToken);
logger.LogInformation("Added {updated} of {count} [{percentage}%]", total, files.Length, Math.Round(((float)total/ files.Length) * 100));
logger.LogInformation("Added {updated} of {count} [{percentage}%]", total, filesToProcess.Length, Math.Round(((float)prog/ filesToProcess.Length) * 100));
}
}
catch (Exception ex)