Sorting without ... improvements

This commit is contained in:
2022-12-21 22:54:50 -07:00
parent 44d8eaf5fb
commit 2da3db7aa5
25 changed files with 353 additions and 358 deletions

View File

@ -3,14 +3,14 @@ namespace View_by_Distance.Metadata.Models.Stateless;
public interface IMetadata
{
string? TestStatic_GetFaceEncoding(string file) =>
GetFaceEncoding(file);
static string? GetFaceEncoding(string file) =>
Metadata.GetFaceEncoding(file);
string? TestStatic_GetFaceEncoding(IReadOnlyList<MetadataExtractor.Directory> directories) =>
GetFaceEncoding(directories);
static string? GetFaceEncoding(IReadOnlyList<MetadataExtractor.Directory> directories) =>
Metadata.GetFaceEncoding(directories);
string? TestStatic_GetFaceX(string file) =>
GetFaceX(file);
static string? GetFaceX(string file) =>
Metadata.GetFaceX(file);
string? TestStatic_GetFaceX(IReadOnlyList<MetadataExtractor.Directory> directories) =>
GetFaceX(directories);
static string? GetFaceX(IReadOnlyList<MetadataExtractor.Directory> directories) =>
Metadata.GetFaceX(directories);
}

View File

@ -3,52 +3,44 @@ namespace View_by_Distance.Metadata.Models.Stateless;
internal class Metadata
{
internal static string? GetFaceEncoding(string file)
internal static string? GetFaceEncoding(IReadOnlyList<MetadataExtractor.Directory> directories)
{
string? result;
List<string> results = new();
const string comment = "Comment: ";
if (File.Exists(file))
foreach (MetadataExtractor.Directory directory in directories)
{
IReadOnlyList<MetadataExtractor.Directory> directories = MetadataExtractor.ImageMetadataReader.ReadMetadata(file);
foreach (MetadataExtractor.Directory directory in directories)
if (directory.Name != "PNG-tEXt")
continue;
foreach (MetadataExtractor.Tag tag in directory.Tags)
{
if (directory.Name != "PNG-tEXt")
if (tag.Name != "Textual Data" || string.IsNullOrEmpty(tag.Description))
continue;
foreach (MetadataExtractor.Tag tag in directory.Tags)
{
if (tag.Name != "Textual Data" || string.IsNullOrEmpty(tag.Description))
continue;
if (!tag.Description.StartsWith(comment))
continue;
results.Add(tag.Description);
}
if (!tag.Description.StartsWith(comment))
continue;
results.Add(tag.Description);
}
}
result = results.Any() ? results[0][comment.Length..] : null;
return result;
}
internal static string? GetFaceX(string file)
internal static string? GetFaceX(IReadOnlyList<MetadataExtractor.Directory> directories)
{
string? result;
List<string> results = new();
const string artist = "Artist: ";
if (File.Exists(file))
foreach (MetadataExtractor.Directory directory in directories)
{
IReadOnlyList<MetadataExtractor.Directory> directories = MetadataExtractor.ImageMetadataReader.ReadMetadata(file);
foreach (MetadataExtractor.Directory directory in directories)
if (directory.Name != "PNG-tEXt")
continue;
foreach (MetadataExtractor.Tag tag in directory.Tags)
{
if (directory.Name != "PNG-tEXt")
if (tag.Name != "Textual Data" || string.IsNullOrEmpty(tag.Description))
continue;
foreach (MetadataExtractor.Tag tag in directory.Tags)
{
if (tag.Name != "Textual Data" || string.IsNullOrEmpty(tag.Description))
continue;
if (!tag.Description.StartsWith(artist))
continue;
results.Add(tag.Description);
}
if (!tag.Description.StartsWith(artist))
continue;
results.Add(tag.Description);
}
}
result = results.Any() ? results[0][artist.Length..] : null;