GenealogicalDataCommunication

This commit is contained in:
2023-04-02 23:19:15 -07:00
parent 5c3a151cd3
commit f69c100669
21 changed files with 677 additions and 376 deletions

View File

@ -25,20 +25,19 @@ public partial class DlibDotNet
private readonly C_Resize _Resize;
private readonly F_Random _Random;
private readonly IConsole _Console;
private readonly string? _GEDCOMFile;
private readonly E_Distance _Distance;
private readonly Serilog.ILogger? _Log;
private readonly D2_FaceParts _FaceParts;
private readonly AppSettings _AppSettings;
private readonly List<string> _Exceptions;
private readonly string[]? _GEDCOMFooterLines;
private readonly string[]? _GEDCOMHeaderLines;
private readonly IsEnvironment _IsEnvironment;
private readonly bool _PropertyRootExistedBefore;
private readonly PersonContainer[] _PersonContainers;
private readonly Models.Configuration _Configuration;
private readonly bool _ArgZeroIsConfigurationRootDirectory;
private readonly Map.Models.Configuration _MapConfiguration;
private readonly string[]? _GenealogicalDataCommunicationFooterLines;
private readonly string[]? _GenealogicalDataCommunicationHeaderLines;
public DlibDotNet(
List<string> args,
@ -105,9 +104,8 @@ public partial class DlibDotNet
_Distance = new(configuration.DistanceMoveUnableToMatch, configuration.DistanceRenameToMatch, _Configuration.FaceConfidencePercent, configuration.RangeFaceConfidence);
if (_PropertyRootExistedBefore || !_ArgZeroIsConfigurationRootDirectory)
{
_GEDCOMFile = null;
_GEDCOMFooterLines = null;
_GEDCOMHeaderLines = null;
_GenealogicalDataCommunicationFooterLines = null;
_GenealogicalDataCommunicationHeaderLines = null;
_PersonContainers = Array.Empty<PersonContainer>();
}
else
@ -124,8 +122,7 @@ public partial class DlibDotNet
throw new Exception();
Storage storage = new(rootDirectory, rootResultsDirectory, peopleRootDirectory);
_ = Shared.Models.Stateless.Methods.IPath.DeleteEmptyDirectories(Path.Combine(peopleRootDirectory, "{}"));
_GEDCOMFile = string.IsNullOrEmpty(configuration.GEDCOMFile) ? null : Path.GetFullPath(string.Concat(peopleRootDirectory, configuration.GEDCOMFile));
(_GEDCOMHeaderLines, Dictionary<string, List<string>> individuals, _GEDCOMFooterLines) = Shared.Models.Stateless.Methods.IPerson.GetIndividuals(_GEDCOMFile);
(_GenealogicalDataCommunicationHeaderLines, Dictionary<string, List<string>> individuals, _GenealogicalDataCommunicationFooterLines) = Shared.Models.Stateless.Methods.IGenealogicalDataCommunication.GetIndividuals(configuration.GenealogicalDataCommunicationFile, requireNickName: true);
_PersonContainers = Shared.Models.Stateless.Methods.IPersonContainer.GetPersonContainers(storage, configuration.MappingDefaultName, configuration.PersonBirthdayFormat, configuration.PersonCharacters.ToArray(), _Faces.FileNameExtension, individuals);
}
{
@ -1090,8 +1087,8 @@ public partial class DlibDotNet
containers = Shared.Models.Stateless.Methods.IContainer.SortContainers(_Configuration.PropertyConfiguration, _Configuration.IgnoreRelativePaths, _ArgZeroIsConfigurationRootDirectory, argZero, containers);
MapLogic mapLogic = new(_AppSettings.MaxDegreeOfParallelism, _Configuration.PropertyConfiguration, _MapConfiguration, _PersonContainers, ticks, a2PeopleSingletonDirectory, eDistanceContentDirectory);
personKeyToIds = mapLogic.GetPersonKeyToIds();
if (!string.IsNullOrEmpty(_GEDCOMFile) && !string.IsNullOrEmpty(a2PeopleContentDirectory) && _GEDCOMHeaderLines is not null && _GEDCOMFooterLines is not null)
Shared.Models.Stateless.Methods.IPerson.CreateTree(_Configuration.MappingDefaultName, _Configuration.PersonBirthdayFormat, _Configuration.PropertyConfiguration.ResultAllInOne, _PersonContainers, _GEDCOMHeaderLines, _GEDCOMFooterLines, ticks, a2PeopleContentDirectory, personKeyToIds);
if (!string.IsNullOrEmpty(_Configuration.GenealogicalDataCommunicationFile) && !string.IsNullOrEmpty(a2PeopleContentDirectory) && _GenealogicalDataCommunicationHeaderLines is not null && _GenealogicalDataCommunicationFooterLines is not null && _GenealogicalDataCommunicationHeaderLines.Any() && _GenealogicalDataCommunicationFooterLines.Any())
Shared.Models.Stateless.Methods.IGenealogicalDataCommunication.CreateTree(_Configuration.MappingDefaultName, _Configuration.PersonBirthdayFormat, _Configuration.PropertyConfiguration.ResultAllInOne, _PersonContainers, _GenealogicalDataCommunicationHeaderLines, _GenealogicalDataCommunicationFooterLines, ticks, a2PeopleContentDirectory, personKeyToIds);
fileNameToCollection = !Directory.Exists(fPhotoPrismSingletonDirectory) ? fileNameToCollection = new() : F_PhotoPrism.GetFileNameToCollection(fPhotoPrismSingletonDirectory);
Dictionary<int, List<LocationContainer<MetadataExtractor.Directory>>> idToLocationContainers = GetDictionary(ticks, a2PeopleContentDirectory, eDistanceContentDirectory);
FullDoWork(argZero, propertyRoot, ticks, aResultsFullGroupDirectory, bResultsFullGroupDirectory, t, containers, propertyLogic, metadata, eDistanceContentDirectory, fileNameToCollection, idToLocationContainers, mapLogic);

View File

@ -28,7 +28,7 @@ public class Configuration
[Display(Name = "Force Face Last Write Time to Creation Time"), Required] public bool? ForceFaceLastWriteTimeToCreationTime { get; set; }
[Display(Name = "Force Metadata Last Write Time to Creation Time"), Required] public bool? ForceMetadataLastWriteTimeToCreationTime { get; set; }
[Display(Name = "Force Resize Last Write Time to Creation Time"), Required] public bool? ForceResizeLastWriteTimeToCreationTime { get; set; }
[Display(Name = "GEDCOM File"), Required] public string GEDCOMFile { get; set; }
[Display(Name = "GenealogicalDataCommunication File"), Required] public string GenealogicalDataCommunicationFile { get; set; }
[Display(Name = "Ignore Extensions"), Required] public string[] IgnoreExtensions { get; set; }
[Display(Name = "Ignore Relative Paths"), Required] public string[] IgnoreRelativePaths { get; set; }
[Display(Name = "Julie Phares Copy Birthdays"), Required] public string[] JLinks { get; set; }
@ -134,8 +134,8 @@ public class Configuration
throw new NullReferenceException(nameof(configuration.ForceMetadataLastWriteTimeToCreationTime));
if (configuration.ForceResizeLastWriteTimeToCreationTime is null)
throw new NullReferenceException(nameof(configuration.ForceResizeLastWriteTimeToCreationTime));
if (configuration.GEDCOMFile is null)
throw new NullReferenceException(nameof(configuration.GEDCOMFile));
if (configuration.GenealogicalDataCommunicationFile is null)
throw new NullReferenceException(nameof(configuration.GenealogicalDataCommunicationFile));
if (configuration.IgnoreExtensions is null)
throw new NullReferenceException(nameof(configuration.IgnoreExtensions));
configuration.IgnoreRelativePaths ??= Array.Empty<string>();
@ -245,7 +245,7 @@ public class Configuration
configuration.ForceFaceLastWriteTimeToCreationTime.Value,
configuration.ForceMetadataLastWriteTimeToCreationTime.Value,
configuration.ForceResizeLastWriteTimeToCreationTime.Value,
configuration.GEDCOMFile,
configuration.GenealogicalDataCommunicationFile,
configuration.IgnoreExtensions,
configuration.IgnoreRelativePaths,
configuration.JLinks,

View File

@ -27,7 +27,7 @@ public class Configuration
public bool ForceFaceLastWriteTimeToCreationTime { init; get; }
public bool ForceMetadataLastWriteTimeToCreationTime { init; get; }
public bool ForceResizeLastWriteTimeToCreationTime { init; get; }
public string GEDCOMFile { init; get; }
public string GenealogicalDataCommunicationFile { init; get; }
public string[] IgnoreExtensions { init; get; }
public string[] IgnoreRelativePaths { init; get; }
public string[] JLinks { init; get; }
@ -102,7 +102,7 @@ public class Configuration
bool forceFaceLastWriteTimeToCreationTime,
bool forceMetadataLastWriteTimeToCreationTime,
bool forceResizeLastWriteTimeToCreationTime,
string gedCOMFile,
string genealogicalDataCommunicationFile,
string[] ignoreExtensions,
string[] ignoreRelativePaths,
string[] jLinks,
@ -176,7 +176,7 @@ public class Configuration
ForceFaceLastWriteTimeToCreationTime = forceFaceLastWriteTimeToCreationTime;
ForceMetadataLastWriteTimeToCreationTime = forceMetadataLastWriteTimeToCreationTime;
ForceResizeLastWriteTimeToCreationTime = forceResizeLastWriteTimeToCreationTime;
GEDCOMFile = gedCOMFile;
GenealogicalDataCommunicationFile = genealogicalDataCommunicationFile;
IgnoreExtensions = ignoreExtensions;
IgnoreRelativePaths = ignoreRelativePaths;
JLinks = jLinks;

View File

@ -20,8 +20,8 @@
"xFocusDirectory": "/Hawaii 2022",
"FocusModel": "",
"xFocusModel": "NIKON D3400",
"GEDCOMFile": "",
"xGEDCOMFile": "/([])/638158748933377321/638158748933377321-Export-Copy.ged",
"xGenealogicalDataCommunicationFile": "",
"GenealogicalDataCommunicationFile": "D:/5) Other Small/RootsMagic/Code-638160738845419877/638160738845419877-Export.ged.cln",
"PersonCharactersCopyCount": 0,
"xPersonCharactersCopyCount": 2,
"xRootDirectory": "D:/Tmp/phares/Pictures",

View File

@ -70,7 +70,7 @@
"ForceResizeLastWriteTimeToCreationTime": false,
"FocusDirectory": "",
"FocusModel": "",
"GEDCOMFile": "",
"GenealogicalDataCommunicationFile": "",
"LocationDigits": 9,
"LocationFactor": 10000,
"MappingDefaultName": "John Doe~25",
@ -89,7 +89,7 @@
"Pattern": "[^ABCDEFGHIJKLMNOPQRSTUVWXYZbcdfghjklmnpqrstvwxyz0-9]",
"PersonBirthdayFirstYear": 1500,
"PersonBirthdayFormat": "yyyy-MM-dd_HH",
"PersonCharacters": "!#]^_`~+",
"PersonCharacters": "!#%]^_`~+=",
"PersonCharactersCopyCount": 0,
"PersonKeyFormat": "yyyy-MM-dd_HH",
"PopulatePropertyId": true,