Handle export from phpMyAdmin
This commit is contained in:
@ -16,8 +16,17 @@ public class F_PhotoPrism
|
||||
else
|
||||
{
|
||||
string json = File.ReadAllText(fileName);
|
||||
JsonElement? jsonElement = JsonSerializer.Deserialize<JsonElement>(json);
|
||||
results = jsonElement.Value.EnumerateObject().ToArray();
|
||||
JsonElement[]? jsonElements = JsonSerializer.Deserialize<JsonElement[]>(json);
|
||||
if (jsonElements is null || !jsonElements.Any())
|
||||
results = Array.Empty<JsonProperty>();
|
||||
else
|
||||
{
|
||||
JsonElement jsonElement = jsonElements.Last();
|
||||
if (jsonElement.ValueKind != JsonValueKind.Object)
|
||||
results = Array.Empty<JsonProperty>();
|
||||
else
|
||||
results = jsonElement.EnumerateObject().ToArray();
|
||||
}
|
||||
}
|
||||
return results;
|
||||
}
|
||||
@ -30,13 +39,13 @@ public class F_PhotoPrism
|
||||
if (!jsonProperties.Any())
|
||||
results = null;
|
||||
else
|
||||
results = JsonSerializer.Deserialize<Marker[]>(jsonProperties[1].Value);
|
||||
results = JsonSerializer.Deserialize<Marker[]>(jsonProperties.Last().Value);
|
||||
return results;
|
||||
}
|
||||
|
||||
private static Dictionary<string, List<Marker>> GetFileUIdToMarkers(string fPhotoPrismSingletonDirectory)
|
||||
private static Dictionary<string, List<Shared.Models.Marker>> GetFileUIdToMarkers(string fPhotoPrismSingletonDirectory)
|
||||
{
|
||||
Dictionary<string, List<Marker>> results = new();
|
||||
Dictionary<string, List<Shared.Models.Marker>> results = new();
|
||||
Marker[]? markers = GetMarkers(fPhotoPrismSingletonDirectory);
|
||||
if (markers is null)
|
||||
throw new NullReferenceException(nameof(markers));
|
||||
@ -44,34 +53,44 @@ public class F_PhotoPrism
|
||||
{
|
||||
if (!results.ContainsKey(marker.FileUid))
|
||||
results.Add(marker.FileUid, new());
|
||||
results[marker.FileUid].Add(marker);
|
||||
results[marker.FileUid].Add(Marker.Map(marker));
|
||||
}
|
||||
return results;
|
||||
}
|
||||
|
||||
private static DatabaseFile[]? GetDatabaseFiles(string fPhotoPrismSingletonDirectory)
|
||||
private static List<Shared.Models.DatabaseFile>? GetDatabaseFiles(string fPhotoPrismSingletonDirectory)
|
||||
{
|
||||
DatabaseFile[]? results;
|
||||
List<Shared.Models.DatabaseFile>? results;
|
||||
string file = Path.Combine(fPhotoPrismSingletonDirectory, "files.json");
|
||||
JsonProperty[] jsonProperties = GetJsonProperty(file);
|
||||
if (!jsonProperties.Any())
|
||||
results = null;
|
||||
else
|
||||
results = JsonSerializer.Deserialize<DatabaseFile[]>(jsonProperties[1].Value);
|
||||
{
|
||||
results = new();
|
||||
DatabaseFile[]? databaseFiles = JsonSerializer.Deserialize<DatabaseFile[]>(jsonProperties.Last().Value);
|
||||
if (databaseFiles is null)
|
||||
results = null;
|
||||
else
|
||||
{
|
||||
foreach (DatabaseFile databaseFile in databaseFiles)
|
||||
results.Add(DatabaseFile.Map(databaseFile));
|
||||
}
|
||||
}
|
||||
return results;
|
||||
}
|
||||
|
||||
public static Dictionary<string, List<MappingFromPhotoPrism>> GetFileNameToCollection(string fPhotoPrismSingletonDirectory)
|
||||
{
|
||||
Dictionary<string, List<MappingFromPhotoPrism>> results = new();
|
||||
List<Marker>? makers;
|
||||
List<Shared.Models.Marker>? makers;
|
||||
MappingFromPhotoPrism mappingFromPhotoPrism;
|
||||
List<MappingFromPhotoPrism>? mappingFromPhotoPrismCollection;
|
||||
DatabaseFile[]? databaseFiles = GetDatabaseFiles(fPhotoPrismSingletonDirectory);
|
||||
List<Shared.Models.DatabaseFile>? databaseFiles = GetDatabaseFiles(fPhotoPrismSingletonDirectory);
|
||||
if (databaseFiles is not null)
|
||||
{
|
||||
Dictionary<string, List<Marker>> fileUIdToMarkers = GetFileUIdToMarkers(fPhotoPrismSingletonDirectory);
|
||||
foreach (DatabaseFile databaseFile in databaseFiles)
|
||||
Dictionary<string, List<Shared.Models.Marker>> fileUIdToMarkers = GetFileUIdToMarkers(fPhotoPrismSingletonDirectory);
|
||||
foreach (Shared.Models.DatabaseFile databaseFile in databaseFiles)
|
||||
{
|
||||
if (!results.TryGetValue(databaseFile.FileName, out mappingFromPhotoPrismCollection))
|
||||
{
|
||||
@ -104,8 +123,8 @@ public class F_PhotoPrism
|
||||
System.Drawing.Rectangle? prismRectangle;
|
||||
System.Drawing.Rectangle intersectRectangle;
|
||||
Dictionary<int, PersonContainer[]>? normalizedRectangleToPersonContainers;
|
||||
(MappingFromPhotoPrism MappingFromPhotoPrism, Marker Marker, double Percent)[] sortedCollection;
|
||||
List<(MappingFromPhotoPrism MappingFromPhotoPrism, Marker Marker, double Percent)> collection = new();
|
||||
(MappingFromPhotoPrism MappingFromPhotoPrism, Shared.Models.Marker Marker, double Percent)[] sortedCollection;
|
||||
List<(MappingFromPhotoPrism MappingFromPhotoPrism, Shared.Models.Marker Marker, double Percent)> collection = new();
|
||||
foreach (Face face in distinctFilteredFaces)
|
||||
{
|
||||
collection.Clear();
|
||||
@ -122,7 +141,7 @@ public class F_PhotoPrism
|
||||
dlibRectangle = new(face.Location.Left, face.Location.Top, face.Location.Right - face.Location.Left, face.Location.Bottom - face.Location.Top);
|
||||
foreach (MappingFromPhotoPrism mappingFromPhotoPrism in face.Mapping.MappingFromPhotoPrismCollection)
|
||||
{
|
||||
foreach (Marker marker in mappingFromPhotoPrism.Markers)
|
||||
foreach (Shared.Models.Marker marker in mappingFromPhotoPrism.Markers)
|
||||
{
|
||||
prismRectangle = ILocation.GetRectangle(face.OutputResolution, mappingFromPhotoPrism.DatabaseFile, marker);
|
||||
if (prismRectangle is null)
|
||||
@ -139,7 +158,7 @@ public class F_PhotoPrism
|
||||
if (!collection.Any())
|
||||
continue;
|
||||
sortedCollection = collection.OrderByDescending(l => l.Percent).ToArray();
|
||||
foreach ((MappingFromPhotoPrism mappingFromPhotoPrism, Marker marker, double percent) in sortedCollection)
|
||||
foreach ((MappingFromPhotoPrism mappingFromPhotoPrism, Shared.Models.Marker marker, double percent) in sortedCollection)
|
||||
{
|
||||
foreach (PersonContainer personContainer in personContainers)
|
||||
{
|
||||
|
Reference in New Issue
Block a user