This commit is contained in:
2023-12-26 18:27:37 -07:00
parent c2c711673f
commit ec22446643
37 changed files with 1279 additions and 932 deletions

View File

@ -8,7 +8,7 @@ using View_by_Distance.Shared.Models.Methods;
namespace View_by_Distance.Distance.Models;
public partial class E_Distance : IDistance<MetadataExtractor.Directory>
public partial class E_Distance : IDistance
{
internal record Record(FilePath FilePath, FaceRecognitionDotNet.FaceEncoding FaceRecognitionDotNetFaceEncoding);
@ -201,7 +201,7 @@ public partial class E_Distance : IDistance<MetadataExtractor.Directory>
}
}
public void LookForMatchFacesAndPossiblyRename(string facesFileNameExtension, FilePath filePath, MappingFromItem mappingFromItem, List<Face> faces, ReadOnlyCollection<LocationContainer<MetadataExtractor.Directory>> locationContainers)
public void LookForMatchFacesAndPossiblyRename(string facesFileNameExtension, FilePath filePath, MappingFromItem mappingFromItem, List<Face> faces, ReadOnlyCollection<LocationContainer> locationContainers)
{
string? json;
string[] matches;
@ -212,20 +212,20 @@ public partial class E_Distance : IDistance<MetadataExtractor.Directory>
Face[] filteredFaces = (from l in faces where l.FaceEncoding is not null && l.Location is not null && l.OutputResolution is not null select l).ToArray();
if (filteredFaces.Length != faces.Count)
checkFaces.Clear();
foreach (LocationContainer<MetadataExtractor.Directory> locationContainer in locationContainers)
foreach (LocationContainer locationContainer in locationContainers)
{
if (_Renamed.Contains(locationContainer.FilePath.FullName))
continue;
if (locationContainer.FromDistanceContent && _DuplicateMappedFaceFiles.Contains(locationContainer.FilePath.Name))
continue;
checkFaces.Clear();
if (locationContainer.Directories.Count == 0)
if (locationContainer.ExifDirectory is null)
{
if (locationContainer.FromDistanceContent)
throw new NullReferenceException(nameof(locationContainer.Directories));
throw new NullReferenceException(nameof(locationContainer.ExifDirectory));
continue;
}
json = Metadata.Models.Stateless.Methods.IMetadata.GetFaceEncoding(locationContainer.Directories);
json = Metadata.Models.Stateless.Methods.IMetadata.GetFaceEncoding(locationContainer.ExifDirectory);
if (json is null)
{
if (_DistanceMoveUnableToMatch)
@ -520,16 +520,16 @@ public partial class E_Distance : IDistance<MetadataExtractor.Directory>
return new(results);
}
ReadOnlyCollection<RelationContainer> IDistance<MetadataExtractor.Directory>.GetRelationContainers(int faceDistancePermyriad, int locationContainerDistanceTake, float locationContainerDistanceTolerance, ReadOnlyCollection<LocationContainer<MetadataExtractor.Directory>> locationContainers)
ReadOnlyCollection<RelationContainer> IDistance.GetRelationContainers(int faceDistancePermyriad, int locationContainerDistanceTake, float locationContainerDistanceTolerance, ReadOnlyCollection<LocationContainer> locationContainers)
{
ReadOnlyCollection<RelationContainer> result;
string? json;
List<Record> records = [];
Shared.Models.FaceEncoding? modelsFaceEncoding;
FaceRecognitionDotNet.FaceEncoding faceRecognitionDotNetFaceEncoding;
foreach (LocationContainer<MetadataExtractor.Directory> locationContainer in locationContainers)
foreach (LocationContainer locationContainer in locationContainers)
{
json = Metadata.Models.Stateless.Methods.IMetadata.GetFaceEncoding(locationContainer.Directories);
json = Metadata.Models.Stateless.Methods.IMetadata.GetFaceEncoding(locationContainer.ExifDirectory);
if (json is null)
continue;
modelsFaceEncoding = JsonSerializer.Deserialize<Shared.Models.FaceEncoding>(json);