ResultContentCollection
ValidVideoFormatExtensions
This commit is contained in:
parent
4da353d150
commit
d8013da912
@ -10,8 +10,8 @@ namespace View_by_Distance.BlurHash.Models;
|
|||||||
public class C2_BlurHasher : IBlurHasher
|
public class C2_BlurHasher : IBlurHasher
|
||||||
{
|
{
|
||||||
|
|
||||||
private readonly Dictionary<string, string[]> _FileGroups;
|
|
||||||
private readonly IPropertyConfiguration _PropertyConfiguration;
|
private readonly IPropertyConfiguration _PropertyConfiguration;
|
||||||
|
private readonly Dictionary<string, ReadOnlyCollection<string>> _FileGroups;
|
||||||
|
|
||||||
public C2_BlurHasher(IPropertyConfiguration propertyConfiguration)
|
public C2_BlurHasher(IPropertyConfiguration propertyConfiguration)
|
||||||
{
|
{
|
||||||
@ -22,8 +22,8 @@ public class C2_BlurHasher : IBlurHasher
|
|||||||
public void Update(string resultsFullGroupDirectory)
|
public void Update(string resultsFullGroupDirectory)
|
||||||
{
|
{
|
||||||
_FileGroups.Clear();
|
_FileGroups.Clear();
|
||||||
ReadOnlyDictionary<string, string[]> keyValuePairs = Shared.Models.Stateless.Methods.IPath.GetKeyValuePairs(_PropertyConfiguration, resultsFullGroupDirectory, [_PropertyConfiguration.ResultContent, _PropertyConfiguration.ResultSingleton]);
|
ReadOnlyDictionary<string, ReadOnlyCollection<string>> keyValuePairs = Shared.Models.Stateless.Methods.IPath.GetKeyValuePairs(_PropertyConfiguration, resultsFullGroupDirectory, [_PropertyConfiguration.ResultContent, _PropertyConfiguration.ResultSingleton]);
|
||||||
foreach (KeyValuePair<string, string[]> keyValuePair in keyValuePairs)
|
foreach (KeyValuePair<string, ReadOnlyCollection<string>> keyValuePair in keyValuePairs)
|
||||||
_FileGroups.Add(keyValuePair.Key, keyValuePair.Value);
|
_FileGroups.Add(keyValuePair.Key, keyValuePair.Value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -211,7 +211,7 @@ public class Compare
|
|||||||
}
|
}
|
||||||
_Logger?.LogInformation(". . .");
|
_Logger?.LogInformation(". . .");
|
||||||
}
|
}
|
||||||
string aPropertyContentCollectionDirectory = Property.Models.Stateless.IResult.GetResultsDateGroupDirectory(propertyConfiguration, nameof(A_Property), "[()]");
|
string aPropertyContentCollectionDirectory = Property.Models.Stateless.IResult.GetResultsDateGroupDirectory(propertyConfiguration, nameof(A_Property), propertyConfiguration.ResultContentCollection);
|
||||||
ThirdPassToMove(propertyConfiguration, mapLogic, propertyLogic, containers, aPropertyContentCollectionDirectory);
|
ThirdPassToMove(propertyConfiguration, mapLogic, propertyLogic, containers, aPropertyContentCollectionDirectory);
|
||||||
if (!isSilent)
|
if (!isSilent)
|
||||||
{
|
{
|
||||||
|
@ -18,8 +18,8 @@ public class CopyDistinct
|
|||||||
private readonly Configuration _Configuration;
|
private readonly Configuration _Configuration;
|
||||||
private readonly IsEnvironment _IsEnvironment;
|
private readonly IsEnvironment _IsEnvironment;
|
||||||
private readonly IConfigurationRoot _ConfigurationRoot;
|
private readonly IConfigurationRoot _ConfigurationRoot;
|
||||||
private readonly ReadOnlyDictionary<string, string[]> _FileGroups;
|
|
||||||
private readonly Property.Models.Configuration _PropertyConfiguration;
|
private readonly Property.Models.Configuration _PropertyConfiguration;
|
||||||
|
private readonly ReadOnlyDictionary<string, ReadOnlyCollection<string>> _FileGroups;
|
||||||
|
|
||||||
public CopyDistinct(List<string> args, ILogger<Program> logger, IsEnvironment isEnvironment, IConfigurationRoot configurationRoot, AppSettings appSettings, string workingDirectory, bool isSilent, IConsole console)
|
public CopyDistinct(List<string> args, ILogger<Program> logger, IsEnvironment isEnvironment, IConfigurationRoot configurationRoot, AppSettings appSettings, string workingDirectory, bool isSilent, IConsole console)
|
||||||
{
|
{
|
||||||
@ -179,9 +179,10 @@ public class CopyDistinct
|
|||||||
{
|
{
|
||||||
progressBar = new(count, message, options);
|
progressBar = new(count, message, options);
|
||||||
string key = string.IsNullOrEmpty(_AppSettings.ResultDirectoryKey) ? _PropertyConfiguration.ResultAllInOne : _AppSettings.ResultDirectoryKey;
|
string key = string.IsNullOrEmpty(_AppSettings.ResultDirectoryKey) ? _PropertyConfiguration.ResultAllInOne : _AppSettings.ResultDirectoryKey;
|
||||||
string[] directories = _FileGroups[key];
|
if (key != _PropertyConfiguration.ResultContent)
|
||||||
|
throw new NotImplementedException("Changed but didn't update!");
|
||||||
ReadOnlyCollection<ReadOnlyCollection<FilePath>> filePathsCollection = IDirectory.GetFilePathCollections(_Configuration.PropertyConfiguration, filesCollection);
|
ReadOnlyCollection<ReadOnlyCollection<FilePath>> filePathsCollection = IDirectory.GetFilePathCollections(_Configuration.PropertyConfiguration, filesCollection);
|
||||||
(distinctDirectories, toDoCollection) = IDirectory.GetToDoCollection(_PropertyConfiguration, _AppSettings.CopyDuplicates, _AppSettings.IfCanUseId, filePathsCollection, directories, () => progressBar.Tick());
|
(distinctDirectories, toDoCollection) = IDirectory.GetToDoCollection(_PropertyConfiguration, _AppSettings.CopyDuplicates, _AppSettings.IfCanUseId, filePathsCollection, _FileGroups, () => progressBar.Tick());
|
||||||
progressBar.Dispose();
|
progressBar.Dispose();
|
||||||
}
|
}
|
||||||
foreach (string distinctDirectory in distinctDirectories)
|
foreach (string distinctDirectory in distinctDirectories)
|
||||||
|
@ -42,11 +42,11 @@ public class D_Face : IFaceD
|
|||||||
private readonly int _FaceDistanceHiddenImageFactor;
|
private readonly int _FaceDistanceHiddenImageFactor;
|
||||||
private readonly EncoderParameters _EncoderParameters;
|
private readonly EncoderParameters _EncoderParameters;
|
||||||
private readonly ImageCodecInfo _HiddenImageCodecInfo;
|
private readonly ImageCodecInfo _HiddenImageCodecInfo;
|
||||||
private readonly Dictionary<string, string[]> _FileGroups;
|
|
||||||
private readonly bool _ForceFaceLastWriteTimeToCreationTime;
|
private readonly bool _ForceFaceLastWriteTimeToCreationTime;
|
||||||
private readonly EncoderParameters _HiddenEncoderParameters;
|
private readonly EncoderParameters _HiddenEncoderParameters;
|
||||||
private readonly IPropertyConfiguration _PropertyConfiguration;
|
private readonly IPropertyConfiguration _PropertyConfiguration;
|
||||||
private readonly JsonSerializerOptions _WriteIndentedAndWhenWritingNull;
|
private readonly JsonSerializerOptions _WriteIndentedAndWhenWritingNull;
|
||||||
|
private readonly Dictionary<string, ReadOnlyCollection<string>> _FileGroups;
|
||||||
|
|
||||||
public D_Face(
|
public D_Face(
|
||||||
string argZero,
|
string argZero,
|
||||||
@ -102,8 +102,8 @@ public class D_Face : IFaceD
|
|||||||
public void Update(string dResultsFullGroupDirectory)
|
public void Update(string dResultsFullGroupDirectory)
|
||||||
{
|
{
|
||||||
_FileGroups.Clear();
|
_FileGroups.Clear();
|
||||||
ReadOnlyDictionary<string, string[]> keyValuePairs = Shared.Models.Stateless.Methods.IPath.GetKeyValuePairs(_PropertyConfiguration, dResultsFullGroupDirectory, [_PropertyConfiguration.ResultCollection, _PropertyConfiguration.ResultContent]);
|
ReadOnlyDictionary<string, ReadOnlyCollection<string>> keyValuePairs = Shared.Models.Stateless.Methods.IPath.GetKeyValuePairs(_PropertyConfiguration, dResultsFullGroupDirectory, [_PropertyConfiguration.ResultCollection, _PropertyConfiguration.ResultContent]);
|
||||||
foreach (KeyValuePair<string, string[]> keyValuePair in keyValuePairs)
|
foreach (KeyValuePair<string, ReadOnlyCollection<string>> keyValuePair in keyValuePairs)
|
||||||
_FileGroups.Add(keyValuePair.Key, keyValuePair.Value);
|
_FileGroups.Add(keyValuePair.Key, keyValuePair.Value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -31,8 +31,8 @@ public class D2_FaceParts
|
|||||||
private readonly ConstructorInfo _ConstructorInfo;
|
private readonly ConstructorInfo _ConstructorInfo;
|
||||||
private readonly bool _OverrideForFaceLandmarkImages;
|
private readonly bool _OverrideForFaceLandmarkImages;
|
||||||
private readonly EncoderParameters _EncoderParameters;
|
private readonly EncoderParameters _EncoderParameters;
|
||||||
private readonly Dictionary<string, string[]> _FileGroups;
|
|
||||||
private readonly IPropertyConfiguration _PropertyConfiguration;
|
private readonly IPropertyConfiguration _PropertyConfiguration;
|
||||||
|
private readonly Dictionary<string, ReadOnlyCollection<string>> _FileGroups;
|
||||||
|
|
||||||
public D2_FaceParts(IPropertyConfiguration propertyConfiguration, ImageCodecInfo imageCodecInfo, EncoderParameters encoderParameters, string filenameExtension, bool checkDFaceAndUpWriteDates, bool overrideForFaceLandmarkImages)
|
public D2_FaceParts(IPropertyConfiguration propertyConfiguration, ImageCodecInfo imageCodecInfo, EncoderParameters encoderParameters, string filenameExtension, bool checkDFaceAndUpWriteDates, bool overrideForFaceLandmarkImages)
|
||||||
{
|
{
|
||||||
@ -56,8 +56,8 @@ public class D2_FaceParts
|
|||||||
public void Update(string dResultsFullGroupDirectory)
|
public void Update(string dResultsFullGroupDirectory)
|
||||||
{
|
{
|
||||||
_FileGroups.Clear();
|
_FileGroups.Clear();
|
||||||
ReadOnlyDictionary<string, string[]> keyValuePairs = Shared.Models.Stateless.Methods.IPath.GetKeyValuePairs(_PropertyConfiguration, dResultsFullGroupDirectory, [_PropertyConfiguration.ResultContent]);
|
ReadOnlyDictionary<string, ReadOnlyCollection<string>> keyValuePairs = Shared.Models.Stateless.Methods.IPath.GetKeyValuePairs(_PropertyConfiguration, dResultsFullGroupDirectory, [_PropertyConfiguration.ResultContent]);
|
||||||
foreach (KeyValuePair<string, string[]> keyValuePair in keyValuePairs)
|
foreach (KeyValuePair<string, ReadOnlyCollection<string>> keyValuePair in keyValuePairs)
|
||||||
_FileGroups.Add(keyValuePair.Key, keyValuePair.Value);
|
_FileGroups.Add(keyValuePair.Key, keyValuePair.Value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -960,7 +960,7 @@ public partial class DlibDotNet : IDlibDotNet, IDisposable
|
|||||||
(_, _, string dResultsFullGroupDirectory, string d2ResultsFullGroupDirectory) = GetResultsFullGroupDirectories(outputResolution);
|
(_, _, string dResultsFullGroupDirectory, string d2ResultsFullGroupDirectory) = GetResultsFullGroupDirectories(outputResolution);
|
||||||
string dFacesContentDirectory = Path.Combine(dResultsFullGroupDirectory, _Configuration.PropertyConfiguration.ResultContent);
|
string dFacesContentDirectory = Path.Combine(dResultsFullGroupDirectory, _Configuration.PropertyConfiguration.ResultContent);
|
||||||
string d2FacePartsContentDirectory = Path.Combine(d2ResultsFullGroupDirectory, _Configuration.PropertyConfiguration.ResultContent);
|
string d2FacePartsContentDirectory = Path.Combine(d2ResultsFullGroupDirectory, _Configuration.PropertyConfiguration.ResultContent);
|
||||||
string d2FacePartsContentCollectionDirectory = Path.Combine(d2ResultsFullGroupDirectory, "[()]");
|
string d2FacePartsContentCollectionDirectory = Path.Combine(d2ResultsFullGroupDirectory, _Configuration.PropertyConfiguration.ResultContentCollection);
|
||||||
if (distinctValidImageMappingCollection.Count > 0)
|
if (distinctValidImageMappingCollection.Count > 0)
|
||||||
{
|
{
|
||||||
Shared.Models.Stateless.Methods.IPath.ChangeDateForEmptyDirectories(d2FacePartsContentDirectory, ticks);
|
Shared.Models.Stateless.Methods.IPath.ChangeDateForEmptyDirectories(d2FacePartsContentDirectory, ticks);
|
||||||
@ -1494,13 +1494,13 @@ public partial class DlibDotNet : IDlibDotNet, IDisposable
|
|||||||
ProgressBar progressBar;
|
ProgressBar progressBar;
|
||||||
string filesCollectionRootDirectory = _Configuration.PropertyConfiguration.RootDirectory;
|
string filesCollectionRootDirectory = _Configuration.PropertyConfiguration.RootDirectory;
|
||||||
(string cResultsFullGroupDirectory, _, _, _) = GetResultsFullGroupDirectories(outputResolution);
|
(string cResultsFullGroupDirectory, _, _, _) = GetResultsFullGroupDirectories(outputResolution);
|
||||||
IReadOnlyDictionary<string, string[]> fileGroups = Shared.Models.Stateless.Methods.IPath.GetKeyValuePairs(_Configuration.PropertyConfiguration, cResultsFullGroupDirectory, [_Configuration.PropertyConfiguration.ResultContent]);
|
IReadOnlyDictionary<string, ReadOnlyCollection<string>> fileGroups = Shared.Models.Stateless.Methods.IPath.GetKeyValuePairs(_Configuration.PropertyConfiguration, cResultsFullGroupDirectory, [_Configuration.PropertyConfiguration.ResultContent, _Configuration.PropertyConfiguration.ResultContentCollection]);
|
||||||
ReadOnlyCollection<ReadOnlyCollection<FilePath>> filePathsCollection = IDirectory.GetFilePathCollections(_Configuration.PropertyConfiguration, filesCollectionRootDirectory, directorySearchFilter, fileSearchFilter, useCeilingAverage: false);
|
ReadOnlyCollection<ReadOnlyCollection<FilePath>> filePathsCollection = IDirectory.GetFilePathCollections(_Configuration.PropertyConfiguration, filesCollectionRootDirectory, directorySearchFilter, fileSearchFilter, useCeilingAverage: false);
|
||||||
int count = filePathsCollection.Select(l => l.Count).Sum();
|
int count = filePathsCollection.Select(l => l.Count).Sum();
|
||||||
bool filesCollectionCountIsOne = IsFilesCollectionCountIsOne(filePathsCollection);
|
bool filesCollectionCountIsOne = IsFilesCollectionCountIsOne(filePathsCollection);
|
||||||
string message = $") Selecting for ## pattern directory - {(int)Math.Floor(new TimeSpan(DateTime.Now.Ticks - ticks).TotalSeconds)} total second(s)";
|
string message = $") Selecting for ## pattern directory - {(int)Math.Floor(new TimeSpan(DateTime.Now.Ticks - ticks).TotalSeconds)} total second(s)";
|
||||||
progressBar = new(count, message, options);
|
progressBar = new(count, message, options);
|
||||||
(string[] distinctDirectories, List<(FilePath, string)> toDoCollection) = IDirectory.GetToDoCollection(_Configuration.PropertyConfiguration, filePathsCollection, fileGroups[_Configuration.PropertyConfiguration.ResultContent], () => progressBar.Tick());
|
(string[] distinctDirectories, List<(FilePath, string)> toDoCollection) = IDirectory.GetToDoCollection(_Configuration.PropertyConfiguration, filePathsCollection, fileGroups, () => progressBar.Tick());
|
||||||
progressBar.Dispose();
|
progressBar.Dispose();
|
||||||
foreach (string distinctDirectory in distinctDirectories)
|
foreach (string distinctDirectory in distinctDirectories)
|
||||||
{
|
{
|
||||||
|
@ -16,8 +16,8 @@ public class B_Metadata : IMetadata<MetadataExtractor.Directory>
|
|||||||
private readonly bool _PropertiesChangedForMetadata;
|
private readonly bool _PropertiesChangedForMetadata;
|
||||||
private readonly IPropertyConfiguration _PropertyConfiguration;
|
private readonly IPropertyConfiguration _PropertyConfiguration;
|
||||||
private readonly bool _ForceMetadataLastWriteTimeToCreationTime;
|
private readonly bool _ForceMetadataLastWriteTimeToCreationTime;
|
||||||
private readonly ReadOnlyDictionary<string, string[]> _FileGroups;
|
|
||||||
private readonly JsonSerializerOptions _WriteIndentedJsonSerializerOptions;
|
private readonly JsonSerializerOptions _WriteIndentedJsonSerializerOptions;
|
||||||
|
private readonly ReadOnlyDictionary<string, ReadOnlyCollection<string>> _FileGroups;
|
||||||
|
|
||||||
public B_Metadata(IPropertyConfiguration propertyConfiguration)
|
public B_Metadata(IPropertyConfiguration propertyConfiguration)
|
||||||
{
|
{
|
||||||
|
@ -22,7 +22,7 @@ public class A_Property
|
|||||||
private readonly Configuration _Configuration;
|
private readonly Configuration _Configuration;
|
||||||
private readonly List<string> _AngleBracketCollection;
|
private readonly List<string> _AngleBracketCollection;
|
||||||
private readonly IPropertyConfiguration _PropertyConfiguration;
|
private readonly IPropertyConfiguration _PropertyConfiguration;
|
||||||
private readonly ReadOnlyDictionary<string, string[]> _FileGroups;
|
private readonly ReadOnlyDictionary<string, ReadOnlyCollection<string>> _FileGroups;
|
||||||
|
|
||||||
public A_Property(int maxDegreeOfParallelism, Configuration propertyConfiguration, string outputExtension, bool reverse, string aResultsFullGroupDirectory)
|
public A_Property(int maxDegreeOfParallelism, Configuration propertyConfiguration, string outputExtension, bool reverse, string aResultsFullGroupDirectory)
|
||||||
{
|
{
|
||||||
|
@ -28,9 +28,11 @@ public class Configuration
|
|||||||
public int? ResultAllInOneSubdirectoryLength { get; set; }
|
public int? ResultAllInOneSubdirectoryLength { get; set; }
|
||||||
public string? ResultCollection { get; set; }
|
public string? ResultCollection { get; set; }
|
||||||
public string? ResultContent { get; set; }
|
public string? ResultContent { get; set; }
|
||||||
|
public string? ResultContentCollection { get; set; }
|
||||||
public string? ResultSingleton { get; set; }
|
public string? ResultSingleton { get; set; }
|
||||||
public string? RootDirectory { get; set; }
|
public string? RootDirectory { get; set; }
|
||||||
public string[]? ValidImageFormatExtensions { get; set; }
|
public string[]? ValidImageFormatExtensions { get; set; }
|
||||||
|
public string[]? ValidVideoFormatExtensions { get; set; }
|
||||||
public string[]? VerifyToSeason { get; set; }
|
public string[]? VerifyToSeason { get; set; }
|
||||||
|
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
@ -81,9 +83,11 @@ public class Configuration
|
|||||||
if (configuration.ResultAllInOneSubdirectoryLength is null) throw new NullReferenceException(nameof(configuration.ResultAllInOneSubdirectoryLength));
|
if (configuration.ResultAllInOneSubdirectoryLength is null) throw new NullReferenceException(nameof(configuration.ResultAllInOneSubdirectoryLength));
|
||||||
if (configuration.ResultCollection is null) throw new NullReferenceException(nameof(configuration.ResultCollection));
|
if (configuration.ResultCollection is null) throw new NullReferenceException(nameof(configuration.ResultCollection));
|
||||||
if (configuration.ResultContent is null) throw new NullReferenceException(nameof(configuration.ResultContent));
|
if (configuration.ResultContent is null) throw new NullReferenceException(nameof(configuration.ResultContent));
|
||||||
|
if (configuration.ResultContentCollection is null) throw new NullReferenceException(nameof(configuration.ResultContentCollection));
|
||||||
if (configuration.ResultSingleton is null) throw new NullReferenceException(nameof(configuration.ResultSingleton));
|
if (configuration.ResultSingleton is null) throw new NullReferenceException(nameof(configuration.ResultSingleton));
|
||||||
if (configuration.RootDirectory is null) throw new NullReferenceException(nameof(configuration.RootDirectory));
|
if (configuration.RootDirectory is null) throw new NullReferenceException(nameof(configuration.RootDirectory));
|
||||||
if (configuration.ValidImageFormatExtensions is null) throw new NullReferenceException(nameof(configuration.ValidImageFormatExtensions));
|
if (configuration.ValidImageFormatExtensions is null) throw new NullReferenceException(nameof(configuration.ValidImageFormatExtensions));
|
||||||
|
if (configuration.ValidVideoFormatExtensions is null) throw new NullReferenceException(nameof(configuration.ValidVideoFormatExtensions));
|
||||||
// if (configuration.VerifyToSeason is null) throw new NullReferenceException(nameof(configuration.VerifyToSeason));
|
// if (configuration.VerifyToSeason is null) throw new NullReferenceException(nameof(configuration.VerifyToSeason));
|
||||||
result = new(configuration.DateGroup,
|
result = new(configuration.DateGroup,
|
||||||
configuration.FileNameDirectorySeparator,
|
configuration.FileNameDirectorySeparator,
|
||||||
@ -106,9 +110,11 @@ public class Configuration
|
|||||||
configuration.ResultAllInOneSubdirectoryLength.Value,
|
configuration.ResultAllInOneSubdirectoryLength.Value,
|
||||||
configuration.ResultCollection,
|
configuration.ResultCollection,
|
||||||
configuration.ResultContent,
|
configuration.ResultContent,
|
||||||
|
configuration.ResultContentCollection,
|
||||||
configuration.ResultSingleton,
|
configuration.ResultSingleton,
|
||||||
Path.GetFullPath(configuration.RootDirectory),
|
Path.GetFullPath(configuration.RootDirectory),
|
||||||
configuration.ValidImageFormatExtensions,
|
configuration.ValidImageFormatExtensions,
|
||||||
|
configuration.ValidVideoFormatExtensions,
|
||||||
configuration.VerifyToSeason ?? []);
|
configuration.VerifyToSeason ?? []);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -31,8 +31,10 @@ public class Configuration : Shared.Models.Properties.IPropertyConfiguration
|
|||||||
public int ResultAllInOneSubdirectoryLength { init; get; }
|
public int ResultAllInOneSubdirectoryLength { init; get; }
|
||||||
public string ResultCollection { init; get; }
|
public string ResultCollection { init; get; }
|
||||||
public string ResultContent { init; get; }
|
public string ResultContent { init; get; }
|
||||||
|
public string ResultContentCollection { init; get; }
|
||||||
public string ResultSingleton { init; get; }
|
public string ResultSingleton { init; get; }
|
||||||
public string[] ValidImageFormatExtensions { init; get; }
|
public string[] ValidImageFormatExtensions { init; get; }
|
||||||
|
public string[] ValidVideoFormatExtensions { init; get; }
|
||||||
|
|
||||||
[JsonConstructor]
|
[JsonConstructor]
|
||||||
public Configuration(string dateGroup,
|
public Configuration(string dateGroup,
|
||||||
@ -56,9 +58,11 @@ public class Configuration : Shared.Models.Properties.IPropertyConfiguration
|
|||||||
int resultAllInOneSubdirectoryLength,
|
int resultAllInOneSubdirectoryLength,
|
||||||
string resultCollection,
|
string resultCollection,
|
||||||
string resultContent,
|
string resultContent,
|
||||||
|
string resultContentCollection,
|
||||||
string resultSingleton,
|
string resultSingleton,
|
||||||
string rootDirectory,
|
string rootDirectory,
|
||||||
string[] validImageFormatExtensions,
|
string[] validImageFormatExtensions,
|
||||||
|
string[] validVideoFormatExtensions,
|
||||||
string[] verifyToSeason)
|
string[] verifyToSeason)
|
||||||
{
|
{
|
||||||
DateGroup = dateGroup;
|
DateGroup = dateGroup;
|
||||||
@ -82,9 +86,11 @@ public class Configuration : Shared.Models.Properties.IPropertyConfiguration
|
|||||||
ResultAllInOneSubdirectoryLength = resultAllInOneSubdirectoryLength;
|
ResultAllInOneSubdirectoryLength = resultAllInOneSubdirectoryLength;
|
||||||
ResultCollection = resultCollection;
|
ResultCollection = resultCollection;
|
||||||
ResultContent = resultContent;
|
ResultContent = resultContent;
|
||||||
|
ResultContentCollection = resultContentCollection;
|
||||||
ResultSingleton = resultSingleton;
|
ResultSingleton = resultSingleton;
|
||||||
_RootDirectory = rootDirectory;
|
_RootDirectory = rootDirectory;
|
||||||
ValidImageFormatExtensions = validImageFormatExtensions;
|
ValidImageFormatExtensions = validImageFormatExtensions;
|
||||||
|
ValidVideoFormatExtensions = validVideoFormatExtensions;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
|
@ -37,10 +37,10 @@ public class C_Resize
|
|||||||
private readonly int _OutputResolutionHeightIndex;
|
private readonly int _OutputResolutionHeightIndex;
|
||||||
private readonly EncoderParameters _EncoderParameters;
|
private readonly EncoderParameters _EncoderParameters;
|
||||||
private readonly int _OutputResolutionOrientationIndex;
|
private readonly int _OutputResolutionOrientationIndex;
|
||||||
private readonly Dictionary<string, string[]> _FileGroups;
|
|
||||||
private readonly bool _ForceResizeLastWriteTimeToCreationTime;
|
private readonly bool _ForceResizeLastWriteTimeToCreationTime;
|
||||||
private readonly IPropertyConfiguration _PropertyConfiguration;
|
private readonly IPropertyConfiguration _PropertyConfiguration;
|
||||||
private readonly JsonSerializerOptions _WriteIndentedJsonSerializerOptions;
|
private readonly JsonSerializerOptions _WriteIndentedJsonSerializerOptions;
|
||||||
|
private readonly Dictionary<string, ReadOnlyCollection<string>> _FileGroups;
|
||||||
|
|
||||||
public C_Resize(IPropertyConfiguration propertyConfiguration, bool forceResizeLastWriteTimeToCreationTime, bool overrideForResizeImages, bool propertiesChangedForResize, string[] validResolutions, ImageCodecInfo imageCodecInfo, EncoderParameters encoderParameters, string filenameExtension)
|
public C_Resize(IPropertyConfiguration propertyConfiguration, bool forceResizeLastWriteTimeToCreationTime, bool overrideForResizeImages, bool propertiesChangedForResize, string[] validResolutions, ImageCodecInfo imageCodecInfo, EncoderParameters encoderParameters, string filenameExtension)
|
||||||
{
|
{
|
||||||
@ -75,8 +75,8 @@ public class C_Resize
|
|||||||
public void Update(string cResultsFullGroupDirectory)
|
public void Update(string cResultsFullGroupDirectory)
|
||||||
{
|
{
|
||||||
_FileGroups.Clear();
|
_FileGroups.Clear();
|
||||||
ReadOnlyDictionary<string, string[]> keyValuePairs = Shared.Models.Stateless.Methods.IPath.GetKeyValuePairs(_PropertyConfiguration, cResultsFullGroupDirectory, [_PropertyConfiguration.ResultSingleton]);
|
ReadOnlyDictionary<string, ReadOnlyCollection<string>> keyValuePairs = Shared.Models.Stateless.Methods.IPath.GetKeyValuePairs(_PropertyConfiguration, cResultsFullGroupDirectory, [_PropertyConfiguration.ResultSingleton]);
|
||||||
foreach (KeyValuePair<string, string[]> keyValuePair in keyValuePairs)
|
foreach (KeyValuePair<string, ReadOnlyCollection<string>> keyValuePair in keyValuePairs)
|
||||||
_FileGroups.Add(keyValuePair.Key, keyValuePair.Value);
|
_FileGroups.Add(keyValuePair.Key, keyValuePair.Value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,8 +21,8 @@ public class SetCreatedDate
|
|||||||
private readonly Configuration _Configuration;
|
private readonly Configuration _Configuration;
|
||||||
private readonly IsEnvironment _IsEnvironment;
|
private readonly IsEnvironment _IsEnvironment;
|
||||||
private readonly IConfigurationRoot _ConfigurationRoot;
|
private readonly IConfigurationRoot _ConfigurationRoot;
|
||||||
private readonly ReadOnlyDictionary<string, string[]> _FileGroups;
|
|
||||||
private readonly Property.Models.Configuration _PropertyConfiguration;
|
private readonly Property.Models.Configuration _PropertyConfiguration;
|
||||||
|
private readonly ReadOnlyDictionary<string, ReadOnlyCollection<string>> _FileGroups;
|
||||||
|
|
||||||
public SetCreatedDate(List<string> args, ILogger<Program> logger, IsEnvironment isEnvironment, IConfigurationRoot configurationRoot, AppSettings appSettings, string workingDirectory, bool isSilent, IConsole console)
|
public SetCreatedDate(List<string> args, ILogger<Program> logger, IsEnvironment isEnvironment, IConfigurationRoot configurationRoot, AppSettings appSettings, string workingDirectory, bool isSilent, IConsole console)
|
||||||
{
|
{
|
||||||
|
@ -14,8 +14,10 @@ public interface IPropertyConfiguration
|
|||||||
public int ResultAllInOneSubdirectoryLength { init; get; }
|
public int ResultAllInOneSubdirectoryLength { init; get; }
|
||||||
public string ResultCollection { init; get; }
|
public string ResultCollection { init; get; }
|
||||||
public string ResultContent { init; get; }
|
public string ResultContent { init; get; }
|
||||||
|
public string ResultContentCollection { init; get; }
|
||||||
public string ResultSingleton { init; get; }
|
public string ResultSingleton { init; get; }
|
||||||
public string[] ValidImageFormatExtensions { init; get; }
|
public string[] ValidImageFormatExtensions { init; get; }
|
||||||
|
public string[] ValidVideoFormatExtensions { init; get; }
|
||||||
public string? ModelName { get; }
|
public string? ModelName { get; }
|
||||||
public int? NumberOfJitters { get; }
|
public int? NumberOfJitters { get; }
|
||||||
public int? NumberOfTimesToUpsample { get; }
|
public int? NumberOfTimesToUpsample { get; }
|
||||||
|
@ -30,15 +30,15 @@ public interface IDirectory
|
|||||||
static void MoveFiles(List<string> files, string find, string replace) =>
|
static void MoveFiles(List<string> files, string find, string replace) =>
|
||||||
XDirectory.MoveFiles(files, find, replace);
|
XDirectory.MoveFiles(files, find, replace);
|
||||||
|
|
||||||
(string[], List<(FilePath, string)>) TestStatic_GetToDoCollection(Properties.IPropertyConfiguration propertyConfiguration, ReadOnlyCollection<ReadOnlyCollection<FilePath>> filePathsCollection, string[] directories, Action? tick) =>
|
(string[], List<(FilePath, string)>) TestStatic_GetToDoCollection(Properties.IPropertyConfiguration propertyConfiguration, ReadOnlyCollection<ReadOnlyCollection<FilePath>> filePathsCollection, IReadOnlyDictionary<string, ReadOnlyCollection<string>> fileGroups, Action? tick) =>
|
||||||
GetToDoCollection(propertyConfiguration, filePathsCollection, directories, tick);
|
GetToDoCollection(propertyConfiguration, filePathsCollection, fileGroups, tick);
|
||||||
static (string[], List<(FilePath, string)>) GetToDoCollection(Properties.IPropertyConfiguration propertyConfiguration, ReadOnlyCollection<ReadOnlyCollection<FilePath>> filePathsCollection, string[] directories, Action? tick) =>
|
static (string[], List<(FilePath, string)>) GetToDoCollection(Properties.IPropertyConfiguration propertyConfiguration, ReadOnlyCollection<ReadOnlyCollection<FilePath>> filePathsCollection, IReadOnlyDictionary<string, ReadOnlyCollection<string>> fileGroups, Action? tick) =>
|
||||||
XDirectory.GetToDoCollection(propertyConfiguration, copyDuplicates: false, ifCanUseId: true, filePathsCollection, directories, tick);
|
XDirectory.GetToDoCollection(propertyConfiguration, copyDuplicates: false, ifCanUseId: true, filePathsCollection, fileGroups, tick);
|
||||||
|
|
||||||
(string[], List<(FilePath, string)>) TestStatic_GetToDoCollection(Properties.IPropertyConfiguration propertyConfiguration, bool copyDuplicates, bool ifCanUseId, ReadOnlyCollection<ReadOnlyCollection<FilePath>> filePathsCollection, string[] directories, Action? tick) =>
|
(string[], List<(FilePath, string)>) TestStatic_GetToDoCollection(Properties.IPropertyConfiguration propertyConfiguration, bool copyDuplicates, bool ifCanUseId, ReadOnlyCollection<ReadOnlyCollection<FilePath>> filePathsCollection, IReadOnlyDictionary<string, ReadOnlyCollection<string>> fileGroups, Action? tick) =>
|
||||||
GetToDoCollection(propertyConfiguration, copyDuplicates, ifCanUseId, filePathsCollection, directories, tick);
|
GetToDoCollection(propertyConfiguration, copyDuplicates, ifCanUseId, filePathsCollection, fileGroups, tick);
|
||||||
static (string[], List<(FilePath, string)>) GetToDoCollection(Properties.IPropertyConfiguration propertyConfiguration, bool copyDuplicates, bool ifCanUseId, ReadOnlyCollection<ReadOnlyCollection<FilePath>> filePathsCollection, string[] directories, Action? tick) =>
|
static (string[], List<(FilePath, string)>) GetToDoCollection(Properties.IPropertyConfiguration propertyConfiguration, bool copyDuplicates, bool ifCanUseId, ReadOnlyCollection<ReadOnlyCollection<FilePath>> filePathsCollection, IReadOnlyDictionary<string, ReadOnlyCollection<string>> fileGroups, Action? tick) =>
|
||||||
XDirectory.GetToDoCollection(propertyConfiguration, copyDuplicates, ifCanUseId, filePathsCollection, directories, tick);
|
XDirectory.GetToDoCollection(propertyConfiguration, copyDuplicates, ifCanUseId, filePathsCollection, fileGroups, tick);
|
||||||
|
|
||||||
List<string> TestStatic_CopyOrMove(List<(FilePath, string)> toDoCollection, bool move, bool moveBack, Action? tick) =>
|
List<string> TestStatic_CopyOrMove(List<(FilePath, string)> toDoCollection, bool move, bool moveBack, Action? tick) =>
|
||||||
CopyOrMove(toDoCollection, move, moveBack, tick);
|
CopyOrMove(toDoCollection, move, moveBack, tick);
|
||||||
|
@ -67,9 +67,9 @@ public interface IPath
|
|||||||
static (string, int) GetDirectoryNameAndIndex(IPropertyConfiguration propertyConfiguration, FilePath filePath) =>
|
static (string, int) GetDirectoryNameAndIndex(IPropertyConfiguration propertyConfiguration, FilePath filePath) =>
|
||||||
XPath.GetDirectoryNameAndIndex(propertyConfiguration, filePath);
|
XPath.GetDirectoryNameAndIndex(propertyConfiguration, filePath);
|
||||||
|
|
||||||
ReadOnlyDictionary<string, string[]> TestStatic_GetKeyValuePairs(IPropertyConfiguration propertyConfiguration, string? resultsFullGroupDirectory, string[]? jsonGroups) =>
|
ReadOnlyDictionary<string, ReadOnlyCollection<string>> TestStatic_GetKeyValuePairs(IPropertyConfiguration propertyConfiguration, string? resultsFullGroupDirectory, string[]? jsonGroups) =>
|
||||||
GetKeyValuePairs(propertyConfiguration, resultsFullGroupDirectory, jsonGroups);
|
GetKeyValuePairs(propertyConfiguration, resultsFullGroupDirectory, jsonGroups);
|
||||||
static ReadOnlyDictionary<string, string[]> GetKeyValuePairs(IPropertyConfiguration propertyConfiguration, string? resultsFullGroupDirectory, string[]? jsonGroups) =>
|
static ReadOnlyDictionary<string, ReadOnlyCollection<string>> GetKeyValuePairs(IPropertyConfiguration propertyConfiguration, string? resultsFullGroupDirectory, string[]? jsonGroups) =>
|
||||||
XPath.GetKeyValuePairs(propertyConfiguration, resultsFullGroupDirectory, jsonGroups);
|
XPath.GetKeyValuePairs(propertyConfiguration, resultsFullGroupDirectory, jsonGroups);
|
||||||
|
|
||||||
}
|
}
|
@ -327,9 +327,10 @@ internal abstract partial class XDirectory
|
|||||||
return new(results);
|
return new(results);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static (string[], List<(FilePath, string)>) GetToDoCollection(Properties.IPropertyConfiguration propertyConfiguration, bool copyDuplicates, bool ifCanUseId, ReadOnlyCollection<ReadOnlyCollection<FilePath>> filePathsCollection, string[] directories, Action? tick)
|
internal static (string[], List<(FilePath, string)>) GetToDoCollection(Properties.IPropertyConfiguration propertyConfiguration, bool copyDuplicates, bool ifCanUseId, ReadOnlyCollection<ReadOnlyCollection<FilePath>> filePathsCollection, IReadOnlyDictionary<string, ReadOnlyCollection<string>> fileGroups, Action? tick)
|
||||||
{
|
{
|
||||||
List<(FilePath, string)> results = [];
|
List<(FilePath, string)> results = [];
|
||||||
|
string key;
|
||||||
string paddedId;
|
string paddedId;
|
||||||
string checkFile;
|
string checkFile;
|
||||||
string directory;
|
string directory;
|
||||||
@ -345,6 +346,7 @@ internal abstract partial class XDirectory
|
|||||||
List<string> distinct = [];
|
List<string> distinct = [];
|
||||||
Models.FileHolder fileHolder;
|
Models.FileHolder fileHolder;
|
||||||
List<string> distinctDirectories = [];
|
List<string> distinctDirectories = [];
|
||||||
|
ReadOnlyCollection<string>? directories;
|
||||||
FilePath[] sortedRecords = GetSortedRecords(filePathsCollection);
|
FilePath[] sortedRecords = GetSortedRecords(filePathsCollection);
|
||||||
bool isOffsetDeterministicHashCode = IId.IsOffsetDeterministicHashCode(propertyConfiguration);
|
bool isOffsetDeterministicHashCode = IId.IsOffsetDeterministicHashCode(propertyConfiguration);
|
||||||
for (int i = 0; i < sortedRecords.Length; i++)
|
for (int i = 0; i < sortedRecords.Length; i++)
|
||||||
@ -353,6 +355,9 @@ internal abstract partial class XDirectory
|
|||||||
filePath = sortedRecords[i];
|
filePath = sortedRecords[i];
|
||||||
if (filePath.Name.EndsWith("len") || filePath.ExtensionLowered == ".id" || filePath.ExtensionLowered == ".lsv" || filePath.DirectoryFullPath is null)
|
if (filePath.Name.EndsWith("len") || filePath.ExtensionLowered == ".id" || filePath.ExtensionLowered == ".lsv" || filePath.DirectoryFullPath is null)
|
||||||
continue;
|
continue;
|
||||||
|
key = propertyConfiguration.ValidVideoFormatExtensions.Contains(filePath.ExtensionLowered) ? propertyConfiguration.ResultContentCollection : propertyConfiguration.ResultContent;
|
||||||
|
if (!fileGroups.TryGetValue(key, out directories))
|
||||||
|
continue;
|
||||||
(_, directoryIndex) = IPath.GetDirectoryNameAndIndex(propertyConfiguration, filePath);
|
(_, directoryIndex) = IPath.GetDirectoryNameAndIndex(propertyConfiguration, filePath);
|
||||||
fileDirectoryName = Path.GetFileName(filePath.DirectoryFullPath);
|
fileDirectoryName = Path.GetFileName(filePath.DirectoryFullPath);
|
||||||
if (fileDirectoryName.Length < propertyConfiguration.ResultAllInOneSubdirectoryLength + 3 || !filePath.Name.StartsWith(fileDirectoryName))
|
if (fileDirectoryName.Length < propertyConfiguration.ResultAllInOneSubdirectoryLength + 3 || !filePath.Name.StartsWith(fileDirectoryName))
|
||||||
|
@ -295,21 +295,21 @@ internal abstract class XPath
|
|||||||
return (result, converted);
|
return (result, converted);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static ReadOnlyDictionary<string, string[]> GetKeyValuePairs(IPropertyConfiguration propertyConfiguration, string? resultsFullGroupDirectory, string[]? jsonGroups)
|
internal static ReadOnlyDictionary<string, ReadOnlyCollection<string>> GetKeyValuePairs(IPropertyConfiguration propertyConfiguration, string? resultsFullGroupDirectory, string[]? jsonGroups)
|
||||||
{
|
{
|
||||||
Dictionary<string, string[]> results = [];
|
Dictionary<string, ReadOnlyCollection<string>> results = [];
|
||||||
int converted = int.Parse($"1{new string('0', propertyConfiguration.ResultAllInOneSubdirectoryLength)}");
|
int converted = int.Parse($"1{new string('0', propertyConfiguration.ResultAllInOneSubdirectoryLength)}");
|
||||||
string directory;
|
string directory;
|
||||||
string checkDirectory;
|
string checkDirectory;
|
||||||
|
List<string> collection;
|
||||||
int plusOne = converted + 1;
|
int plusOne = converted + 1;
|
||||||
List<string> collection = [];
|
|
||||||
if (jsonGroups is not null)
|
if (jsonGroups is not null)
|
||||||
{
|
{
|
||||||
foreach (string jsonGroup in jsonGroups)
|
foreach (string jsonGroup in jsonGroups)
|
||||||
{
|
{
|
||||||
if (resultsFullGroupDirectory is null)
|
if (resultsFullGroupDirectory is null)
|
||||||
continue;
|
continue;
|
||||||
collection.Clear();
|
collection = [];
|
||||||
for (int i = 0; i < plusOne; i++)
|
for (int i = 0; i < plusOne; i++)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(jsonGroup))
|
if (string.IsNullOrEmpty(jsonGroup))
|
||||||
@ -332,9 +332,9 @@ internal abstract class XPath
|
|||||||
collection.Add(checkDirectory);
|
collection.Add(checkDirectory);
|
||||||
}
|
}
|
||||||
if (!string.IsNullOrEmpty(jsonGroup))
|
if (!string.IsNullOrEmpty(jsonGroup))
|
||||||
results.Add(jsonGroup, collection.ToArray());
|
results.Add(jsonGroup, new(collection));
|
||||||
else
|
else
|
||||||
results.Add(propertyConfiguration.ResultAllInOne, collection.ToArray());
|
results.Add(propertyConfiguration.ResultAllInOne, new(collection));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return new(results);
|
return new(results);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user