diff options
| author | Jake Mannens <jake@asger.xyz> | 2023-09-06 09:30:54 +1000 |
|---|---|---|
| committer | Jake Mannens <jake@asger.xyz> | 2025-08-20 00:52:04 +1000 |
| commit | b303a2fc0f37244d5f45bb2189238991118356e8 (patch) | |
| tree | 8a11d4d9e879fb1b2845996c5eb0137f73230881 /Services | |
| parent | 6ed8b2f7a2bac84f582048181c58cc318b729322 (diff) | |
Moved metadata from Media object to UploadedFile object
Diffstat (limited to 'Services')
| -rw-r--r-- | Services/MediaService.cs | 41 | ||||
| -rw-r--r-- | Services/OcrService.cs | 3 | ||||
| -rw-r--r-- | Services/SearchService.cs | 1 |
3 files changed, 25 insertions, 20 deletions
diff --git a/Services/MediaService.cs b/Services/MediaService.cs index f814709..6d327cc 100644 --- a/Services/MediaService.cs +++ b/Services/MediaService.cs @@ -120,17 +120,6 @@ public class MediaService : IMediaService { if(checksum is not null && hash != checksum.ToLower()) throw new MediaCreateException("Checksum does not match"); - var fileRecord = new UploadedFile() { - Filename = fileName, - Length = fileData.Length, - OriginalChecksum = hash, - ChecksumVerified = checksum is not null, - UploadTime = DateTime.UtcNow, - LastAccessTime = lastAccessTime, - LastWriteTime = lastWriteTime, - CreateTime = createTime - }; - // Determine the MIME type fileData.Seek(0, SeekOrigin.Begin); var defs = inspector.Inspect(fileData); @@ -142,18 +131,29 @@ public class MediaService : IMediaService { fileData.Seek(0, SeekOrigin.Begin); using var magickImage = new MagickImage(fileData); - var media = db.Media - .FirstOrDefault(m => m.Checksum == hash); + var media = db.UploadedFiles + .FirstOrDefault(uf => uf.Checksum == hash)? + .Media; + + var fileRecord = new UploadedFile() { + Filename = fileName, + Length = fileData.Length, + Checksum = hash, + ChecksumVerified = checksum is not null, + MimeType = mime, + Width = magickImage.Width, + Height = magickImage.Height, + UploadTime = DateTime.UtcNow, + LastAccessTime = lastAccessTime, + LastWriteTime = lastWriteTime, + CreateTime = createTime + }; if(media is null) { var ingestTagDef = db.TagDefinitions .First(td => td.Guid == HBContext.IngestTag); media = new() { - Checksum = hash, - MimeType = mime, - Width = magickImage.Width, - Height = magickImage.Height, CurrentUploadedFile = fileRecord, UploadedFiles = new() { fileRecord @@ -250,11 +250,14 @@ public class MediaService : IMediaService { public Stream GetThumbnail(Guid media, int? width, int? height) { using var db = dbFactory.CreateDbContext(); - var m = db.Media.First(m => m.Guid == media); + + var m = db.Media + .Include(m => m.CurrentUploadedFile) + .First(m => m.Guid == media); if(m is null) throw new ObjectNotFoundException(media); - if(m.MimeType.Split("/")[0] != "image") + if(m.CurrentUploadedFile.MimeType.Split("/")[0] != "image") throw new ThumbnailException("Media object not an image", m); using var image = new MagickImage(GetPath(m)); diff --git a/Services/OcrService.cs b/Services/OcrService.cs index 2f65e43..1967234 100644 --- a/Services/OcrService.cs +++ b/Services/OcrService.cs @@ -59,9 +59,10 @@ public class OcrService : IHostedService { using var db = dbFactory.CreateDbContext(); Guid[] guids = db.Media + .Include(m => m.CurrentUploadedFile) .Include(m => m.OcrData) .Where(m => m.OcrData == null) - .Where(m => m.MimeType.Contains("image/")) + .Where(m => m.CurrentUploadedFile.MimeType.Contains("image/")) .Select(m => m.Guid) .ToArray(); db.Dispose(); diff --git a/Services/SearchService.cs b/Services/SearchService.cs index 2e097e3..7c677b2 100644 --- a/Services/SearchService.cs +++ b/Services/SearchService.cs @@ -56,6 +56,7 @@ public class SearchService : ISearchService { return db.Media .Include(m => m.Tags) + .Include(m => m.CurrentUploadedFile) .Where(m => mediaIds.Contains(m.ObjectId)) .ToArray(); } |
