Prep for item.FilePath.HasIgnoreKeyword, item.FilePath.HasDateTimeOriginal

This commit is contained in:
2024-06-17 21:41:37 -07:00
parent a9275dd5d1
commit 8a817750c9
4 changed files with 24 additions and 22 deletions

View File

@ -122,15 +122,16 @@ public partial class Rename : IRename, IDisposable
if (exifDirectory.Id is null)
throw new NotImplementedException();
int i = 0;
DateTime? dateTime;
const string jpg = ".jpg";
const string jpeg = ".jpeg";
List<ToDo> toDoCollection = [];
DateTime? dateTime = IDate.GetDateTimeOriginal(exifDirectory);
ReadOnlyCollection<string> keywords = IMetadata.GetKeywords(exifDirectory);
MetadataConfiguration metadataConfiguration = renameConfiguration.MetadataConfiguration;
bool hasIgnoreKeyword = metadataConfiguration.IgnoreRulesKeyWords.Any(keywords.Contains);
string checkFileExtension = filePath.ExtensionLowered == jpeg ? jpg : filePath.ExtensionLowered;
string paddedId = IId.GetPaddedId(metadataConfiguration, exifDirectory.Id.Value, hasIgnoreKeyword, i);
bool hasDateTimeOriginal = dateTime is not null;
string paddedId = IId.GetPaddedId(metadataConfiguration, exifDirectory.Id.Value, hasIgnoreKeyword, hasDateTimeOriginal, i);
string checkDirectory = renameConfiguration.InPlaceWithOriginalName ? Path.Combine(filePath.DirectoryName, filePath.FileNameFirstSegment) : filePath.DirectoryName;
string checkFile = Path.Combine(checkDirectory, $"{paddedId}{checkFileExtension}");
if (checkFile != filePath.FullName)
@ -146,8 +147,6 @@ public partial class Rename : IRename, IDisposable
{
if (renameConfiguration.InPlace)
throw new NotSupportedException($"Must use {nameof(renameConfiguration.InPlaceWithOriginalName)} when sidecar file(s) are present!");
dateTime = IDate.GetDateTimeOriginal(exifDirectory);
bool hasDateTimeOriginal = dateTime is not null;
dateTime ??= IDate.GetMinimum(exifDirectory);
RecordB recordB = new(dateTime.Value, exifDirectory, filePath, sidecarFiles, hasDateTimeOriginal, hasIgnoreKeyword, fileInfo.FullName);
toDoCollection.AddRange(GetSidecarFiles(metadataConfiguration, recordB, [], checkDirectory, paddedId));
@ -390,7 +389,7 @@ public partial class Rename : IRename, IDisposable
if (string.IsNullOrEmpty(checkDirectory))
continue;
checkFileExtension = record.FilePath.ExtensionLowered == jpeg ? jpg : record.FilePath.ExtensionLowered;
paddedId = IId.GetPaddedId(metadataConfiguration, record.ExifDirectory.Id.Value, record.HasIgnoreKeyword, i);
paddedId = IId.GetPaddedId(metadataConfiguration, record.ExifDirectory.Id.Value, record.HasIgnoreKeyword, record.HasDateTimeOriginal, i);
jsonFileSubDirectory = Path.GetDirectoryName(Path.GetDirectoryName(record.JsonFile)) ?? throw new Exception();
checkFile = Path.Combine(checkDirectory, $"{paddedId}{checkFileExtension}");
if (checkFile == record.FilePath.FullName)
@ -478,7 +477,7 @@ public partial class Rename : IRename, IDisposable
{
if (record.ExifDirectory.Id is null)
continue;
paddedId = IId.GetPaddedId(renameConfiguration.MetadataConfiguration, record.ExifDirectory.Id.Value, record.FilePath.IsIgnore, index: null);
paddedId = IId.GetPaddedId(renameConfiguration.MetadataConfiguration, record.ExifDirectory.Id.Value, record.HasIgnoreKeyword, record.HasDateTimeOriginal, index: null);
identifiers.Add(new(record.ExifDirectory.Id.Value, record.FilePath.Length, paddedId, record.DateTime.Ticks));
}
string json = JsonSerializer.Serialize(identifiers.OrderBy(l => l.PaddedId).ToArray(), IdentifierCollectionSourceGenerationContext.Default.IdentifierArray);