yesterday
This commit is contained in:
		| @ -553,16 +553,15 @@ public partial class E_Distance : IDistance<MetadataExtractor.Directory> | ||||
|         return results; | ||||
|     } | ||||
|  | ||||
|     private static void ReviewLocationContainerDistanceTolerance(float locationContainerDistanceTolerance, DateTime dateTime, List<(string, FaceRecognitionDotNet.FaceEncoding)> collection) | ||||
|     private static void ReviewLocationContainerDistanceTolerance(float locationContainerDistanceTolerance, DateTime dateTime, DateTime yesterday, List<(string File, FaceRecognitionDotNet.FaceEncoding FaceRecognitionDotNetFaceEncoding)> collection) | ||||
|     { | ||||
|         FileInfo fileInfo; | ||||
|         List<string> files = new(); | ||||
|         FaceDistance? faceDistanceEncoding = null; | ||||
|         FaceDistance? faceDistanceEncoding; | ||||
|         List<FaceDistance> faceDistanceLengths; | ||||
|         List<string> firstPassFailures = new(); | ||||
|         List<FaceDistance> faceDistanceEncodings = new(); | ||||
|         foreach ((string _, FaceRecognitionDotNet.FaceEncoding faceRecognitionDotNetFaceEncoding) in collection) | ||||
|         { | ||||
|             faceDistanceEncoding = new(faceRecognitionDotNetFaceEncoding); | ||||
|             break; | ||||
|         } | ||||
|         faceDistanceEncoding = new(collection[0].FaceRecognitionDotNetFaceEncoding); | ||||
|         foreach ((string file, FaceRecognitionDotNet.FaceEncoding faceRecognitionDotNetFaceEncoding) in collection) | ||||
|         { | ||||
|             files.Add(file); | ||||
| @ -570,16 +569,38 @@ public partial class E_Distance : IDistance<MetadataExtractor.Directory> | ||||
|         } | ||||
|         if (faceDistanceEncoding is null) | ||||
|             throw new Exception(); | ||||
|         List<FaceDistance> faceDistanceLengths = FaceRecognition.FaceDistances(faceDistanceEncodings, faceDistanceEncoding); | ||||
|         faceDistanceLengths = FaceRecognition.FaceDistances(faceDistanceEncodings, faceDistanceEncoding); | ||||
|         if (faceDistanceLengths.Count != files.Count) | ||||
|             throw new Exception(); | ||||
|         for (int i = 0; i < files.Count; i++) | ||||
|         { | ||||
|             if (!File.Exists(files[i])) | ||||
|                 continue; | ||||
|             if (faceDistanceLengths[i].Length < locationContainerDistanceTolerance) | ||||
|                 continue; | ||||
|             File.SetCreationTime(files[i], dateTime); | ||||
|             firstPassFailures.Add(files[i]); | ||||
|         } | ||||
|         faceDistanceEncoding = new(collection[^1].FaceRecognitionDotNetFaceEncoding); | ||||
|         foreach ((string file, FaceRecognitionDotNet.FaceEncoding faceRecognitionDotNetFaceEncoding) in collection) | ||||
|         { | ||||
|             files.Add(file); | ||||
|             faceDistanceEncodings.Add(new(faceRecognitionDotNetFaceEncoding)); | ||||
|         } | ||||
|         if (faceDistanceEncoding is null) | ||||
|             throw new Exception(); | ||||
|         faceDistanceLengths = FaceRecognition.FaceDistances(faceDistanceEncodings, faceDistanceEncoding); | ||||
|         if (faceDistanceLengths.Count != files.Count) | ||||
|             throw new Exception(); | ||||
|         for (int i = 0; i < files.Count; i++) | ||||
|         { | ||||
|             fileInfo = new(files[i]); | ||||
|             if (!fileInfo.Exists) | ||||
|                 continue; | ||||
|             if (fileInfo.CreationTime > yesterday) | ||||
|                 File.SetCreationTime(fileInfo.FullName, yesterday); | ||||
|             if (faceDistanceLengths[i].Length < locationContainerDistanceTolerance) | ||||
|                 continue; | ||||
|             if (firstPassFailures.Contains(fileInfo.FullName)) | ||||
|                 continue; | ||||
|             File.SetCreationTime(fileInfo.FullName, dateTime); | ||||
|         } | ||||
|     } | ||||
|  | ||||
| @ -588,6 +609,7 @@ public partial class E_Distance : IDistance<MetadataExtractor.Directory> | ||||
|         string? json; | ||||
|         int? lastDirectoryNumber = null; | ||||
|         DateTime dateTime = DateTime.Now; | ||||
|         DateTime yesterday = DateTime.Now.AddDays(-1); | ||||
|         Shared.Models.FaceEncoding? modelsFaceEncoding; | ||||
|         FaceRecognitionDotNet.FaceEncoding faceRecognitionDotNetFaceEncoding; | ||||
|         List<(string, FaceRecognitionDotNet.FaceEncoding)> collection = new(); | ||||
| @ -597,7 +619,8 @@ public partial class E_Distance : IDistance<MetadataExtractor.Directory> | ||||
|                 continue; | ||||
|             if (lastDirectoryNumber is not null && locationContainer.DirectoryNumber.Value != lastDirectoryNumber.Value) | ||||
|             { | ||||
|                 ReviewLocationContainerDistanceTolerance(locationContainerDistanceTolerance, dateTime, collection); | ||||
|                 if (collection.Count > 2) | ||||
|                     ReviewLocationContainerDistanceTolerance(locationContainerDistanceTolerance, dateTime, yesterday, collection); | ||||
|                 collection.Clear(); | ||||
|             } | ||||
|             json = Metadata.Models.Stateless.Methods.IMetadata.GetFaceEncoding(locationContainer.Directories); | ||||
| @ -610,8 +633,8 @@ public partial class E_Distance : IDistance<MetadataExtractor.Directory> | ||||
|             collection.Add((locationContainer.File, faceRecognitionDotNetFaceEncoding)); | ||||
|             lastDirectoryNumber = locationContainer.DirectoryNumber.Value; | ||||
|         } | ||||
|         if (collection.Count > 0) | ||||
|             ReviewLocationContainerDistanceTolerance(locationContainerDistanceTolerance, dateTime, collection); | ||||
|         if (collection.Count > 2) | ||||
|             ReviewLocationContainerDistanceTolerance(locationContainerDistanceTolerance, dateTime, yesterday, collection); | ||||
|     } | ||||
|  | ||||
| } | ||||
		Reference in New Issue
	
	Block a user