csharp_new_line_before_open_brace = none
This commit is contained in:
@ -1,16 +1,22 @@
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Phares.Metadata.Models.Stateless;
|
||||
using Phares.Shared.Models;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Diagnostics;
|
||||
using System.Text.Json;
|
||||
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
using Phares.Metadata.Models.Stateless;
|
||||
using Phares.Shared.Models;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace File_Folder_Helper.ADO2025.PI6;
|
||||
|
||||
internal static partial class Helper20250720 {
|
||||
|
||||
private record Helper20250720Settings(ResultSettings? ResultSettings, MetadataSettings? MetadataSettings);
|
||||
|
||||
[JsonSourceGenerationOptions(WriteIndented = true)]
|
||||
[JsonSerializable(typeof(Helper20250720Settings))]
|
||||
private partial class Helper20250720SettingsSourceGenerationContext : JsonSerializerContext {
|
||||
}
|
||||
|
||||
internal static void WriteFaceData(ILogger<Worker> logger, List<string> args) {
|
||||
logger.LogInformation(args[0]);
|
||||
logger.LogInformation(args[1]);
|
||||
@ -45,21 +51,17 @@ internal static partial class Helper20250720 {
|
||||
logger.LogError("Face file doesn't exist! <{faceFileInfo}>", faceFileInfo.FullName);
|
||||
} else {
|
||||
string json = File.ReadAllText(jsonFile);
|
||||
ResultSettings? resultSettings = JsonSerializer.Deserialize(json, ResultSettingsSourceGenerationContext.Default.ResultSettings);
|
||||
MetadataSettings? metadataSettings = JsonSerializer.Deserialize(json, MetadataSettingsSourceGenerationContext.Default.MetadataSettings);
|
||||
if (resultSettings is null) {
|
||||
logger.LogError(nameof(ResultSettings));
|
||||
} else if (metadataSettings is null) {
|
||||
logger.LogError(nameof(MetadataSettings));
|
||||
Helper20250720Settings? settings = JsonSerializer.Deserialize(json, Helper20250720SettingsSourceGenerationContext.Default.Helper20250720Settings);
|
||||
if (settings?.ResultSettings is null || settings.ResultSettings.ResultAllInOneSubdirectoryLength < 1 || settings.MetadataSettings is null) {
|
||||
throw new Exception(nameof(Helper20250720Settings));
|
||||
}
|
||||
WriteFaceData(logger, outputDirectoryName, originalFile, faceFileInfo, digiKamFile, settings.ResultSettings, settings.MetadataSettings);
|
||||
ReadOnlyDictionary<long, ReadOnlyCollection<string>> keyValuePairsXMP = GetKeyValuePairs(searchPatternXMP, pathRootXMP);
|
||||
ReadOnlyDictionary<long, ReadOnlyCollection<ExifDirectory>> keyValuePairs = GetKeyValuePairs(searchPattern, pathRoot, settings.ResultSettings, settings.MetadataSettings);
|
||||
if (keyValuePairs.Count == 0) {
|
||||
logger.LogError("Didn't find any valid file(s)!");
|
||||
} else {
|
||||
WriteFaceData(logger, outputDirectoryName, originalFile, faceFileInfo, digiKamFile, resultSettings, metadataSettings);
|
||||
ReadOnlyDictionary<long, ReadOnlyCollection<string>> keyValuePairsXMP = GetKeyValuePairs(searchPatternXMP, pathRootXMP);
|
||||
ReadOnlyDictionary<long, ReadOnlyCollection<ExifDirectory>> keyValuePairs = GetKeyValuePairs(searchPattern, pathRoot, resultSettings, metadataSettings);
|
||||
if (keyValuePairs.Count == 0) {
|
||||
logger.LogError("Didn't find any valid file(s)!");
|
||||
} else {
|
||||
WriteFaceData(logger, outputDirectoryName, keyValuePairs, keyValuePairsXMP);
|
||||
}
|
||||
WriteFaceData(logger, outputDirectoryName, keyValuePairs, keyValuePairsXMP);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -116,6 +118,8 @@ internal static partial class Helper20250720 {
|
||||
FaceFile faceFile;
|
||||
string descriptionLine = "</rdf:Description>";
|
||||
faceFile = keyValuePairs.ElementAt(0).Value;
|
||||
if (faceFile.Location is null || faceFile.OutputResolution is null)
|
||||
throw new Exception();
|
||||
List<string> regionLines = [
|
||||
"<MP:RegionInfo rdf:parseType=\"Resource\">",
|
||||
"<MPRI:Regions>",
|
||||
@ -138,6 +142,8 @@ internal static partial class Helper20250720 {
|
||||
foreach (KeyValuePair<string, FaceFile> keyValuePair in keyValuePairs) {
|
||||
personKey = keyValuePair.Key;
|
||||
faceFile = keyValuePair.Value;
|
||||
if (faceFile.Location is null || faceFile.OutputResolution is null)
|
||||
throw new Exception();
|
||||
width = faceFile.Location.Right - faceFile.Location.Left;
|
||||
height = faceFile.Location.Bottom - faceFile.Location.Top;
|
||||
if (!string.IsNullOrEmpty(originalFile) && File.Exists(originalFile)) {
|
||||
@ -233,8 +239,8 @@ internal static partial class Helper20250720 {
|
||||
// </dc:subject>
|
||||
subjectLines.Add($"<rdf:li>{personKey}</rdf:li>");
|
||||
}
|
||||
regionLines.AddRange(["</rdf:Bag>","</MPRI:Regions>","</MP:RegionInfo>"]);
|
||||
regionsLinesB.AddRange(["</rdf:Bag>", "</mwg-rs:RegionList>","</mwg-rs:Regions>"]);
|
||||
regionLines.AddRange(["</rdf:Bag>", "</MPRI:Regions>", "</MP:RegionInfo>"]);
|
||||
regionsLinesB.AddRange(["</rdf:Bag>", "</mwg-rs:RegionList>", "</mwg-rs:Regions>"]);
|
||||
digiKamLines.AddRange(["</rdf:Seq>", "</digiKam:TagsList>"]);
|
||||
microsoftPhotoLines.AddRange(["</rdf:Bag>", "</MicrosoftPhoto:LastKeywordXMP>"]);
|
||||
hierarchicalSubjectLines.AddRange(["</rdf:Bag>", "</lr:hierarchicalSubject>"]);
|
||||
@ -292,7 +298,7 @@ internal static partial class Helper20250720 {
|
||||
|
||||
private static ReadOnlyDictionary<string, FaceFile> GetKeyValuePairs(ILogger<Worker> logger, ReadOnlyCollection<ExifDirectory> exifDirectories) {
|
||||
Dictionary<string, FaceFile> results = [];
|
||||
string personKey;
|
||||
string? personKey;
|
||||
FaceFile? faceFile;
|
||||
foreach (ExifDirectory exifDirectory in exifDirectories) {
|
||||
faceFile = IMetadata.GetFaceFile(exifDirectory);
|
||||
@ -304,6 +310,9 @@ internal static partial class Helper20250720 {
|
||||
logger.LogWarning("faceFile output-resolution orientation is not aloud!");
|
||||
} else {
|
||||
personKey = Path.GetFileName(Path.GetDirectoryName(Path.GetDirectoryName(Path.GetDirectoryName(exifDirectory.FilePath.FullName))));
|
||||
if (string.IsNullOrEmpty(personKey)) {
|
||||
continue;
|
||||
}
|
||||
if (results.ContainsKey(personKey)) {
|
||||
continue;
|
||||
}
|
||||
|
Reference in New Issue
Block a user