Videos
This commit is contained in:
parent
96c479e639
commit
82de27ce61
@ -61,7 +61,7 @@ public class Rename : IRename
|
|||||||
results.AddRange(Directory.GetFiles(filePath.DirectoryName, $"{filePath.Name}-*.jpg", SearchOption.TopDirectoryOnly));
|
results.AddRange(Directory.GetFiles(filePath.DirectoryName, $"{filePath.Name}-*.jpg", SearchOption.TopDirectoryOnly));
|
||||||
if (results.Count == 0)
|
if (results.Count == 0)
|
||||||
throw new Exception();
|
throw new Exception();
|
||||||
result = IId.GetFilePath(renameConfiguration.MetadataConfiguration, results[0]);
|
result = IId.GetFilePath(renameConfiguration.MetadataConfiguration, results[0], index: null);
|
||||||
if (!result.Name.EndsWith("-0001.jpg"))
|
if (!result.Name.EndsWith("-0001.jpg"))
|
||||||
throw new Exception();
|
throw new Exception();
|
||||||
isValidImageFormatExtension = renameConfiguration.ValidImageFormatExtensions.Contains(result.ExtensionLowered);
|
isValidImageFormatExtension = renameConfiguration.ValidImageFormatExtensions.Contains(result.ExtensionLowered);
|
||||||
@ -111,6 +111,7 @@ public class Rename : IRename
|
|||||||
|
|
||||||
private static void GetExifDirectoryCollection(IRename rename, RenameConfiguration renameConfiguration, List<(string, FileInfo, ExifDirectory)> exifDirectories, IEnumerable<string> files, A_Metadata metadata)
|
private static void GetExifDirectoryCollection(IRename rename, RenameConfiguration renameConfiguration, List<(string, FileInfo, ExifDirectory)> exifDirectories, IEnumerable<string> files, A_Metadata metadata)
|
||||||
{
|
{
|
||||||
|
int index = -1;
|
||||||
FileInfo fileInfo;
|
FileInfo fileInfo;
|
||||||
FilePath filePath;
|
FilePath filePath;
|
||||||
FilePath? ffmpegFilePath;
|
FilePath? ffmpegFilePath;
|
||||||
@ -119,8 +120,9 @@ public class Rename : IRename
|
|||||||
DeterministicHashCode deterministicHashCode;
|
DeterministicHashCode deterministicHashCode;
|
||||||
foreach (string file in files)
|
foreach (string file in files)
|
||||||
{
|
{
|
||||||
|
index += 1;
|
||||||
rename.Tick();
|
rename.Tick();
|
||||||
filePath = IId.GetFilePath(renameConfiguration.MetadataConfiguration, file);
|
filePath = IId.GetFilePath(renameConfiguration.MetadataConfiguration, file, index);
|
||||||
if (renameConfiguration.SkipIdFiles && filePath.Id is not null && (filePath.IsIntelligentIdFormat || filePath.SortOrder is not null))
|
if (renameConfiguration.SkipIdFiles && filePath.Id is not null && (filePath.IsIntelligentIdFormat || filePath.SortOrder is not null))
|
||||||
continue;
|
continue;
|
||||||
(ffmpegFiles, ffmpegFilePath) = rename.ConvertAndGetFfmpegFiles(renameConfiguration, filePath);
|
(ffmpegFiles, ffmpegFilePath) = rename.ConvertAndGetFfmpegFiles(renameConfiguration, filePath);
|
||||||
|
@ -6,6 +6,20 @@ namespace View_by_Distance.Shared.Models.Stateless;
|
|||||||
internal abstract class Id
|
internal abstract class Id
|
||||||
{
|
{
|
||||||
|
|
||||||
|
internal static bool NameWithoutExtensionIsIdFormat(string fileNameFirstSegment)
|
||||||
|
{
|
||||||
|
bool result;
|
||||||
|
int intMinValueLength = int.MinValue.ToString().Length;
|
||||||
|
if (fileNameFirstSegment.Length < 5 || fileNameFirstSegment.Length > intMinValueLength)
|
||||||
|
result = false;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
bool skipOneAllAreNumbers = fileNameFirstSegment[1..].All(l => char.IsNumber(l));
|
||||||
|
result = (skipOneAllAreNumbers && fileNameFirstSegment[0] == '-') || (skipOneAllAreNumbers && char.IsNumber(fileNameFirstSegment[0]));
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
private static int GetId(MetadataConfiguration metadataConfiguration, string intelligentId)
|
private static int GetId(MetadataConfiguration metadataConfiguration, string intelligentId)
|
||||||
{
|
{
|
||||||
int result;
|
int result;
|
||||||
@ -62,7 +76,7 @@ internal abstract class Id
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static FilePath GetFilePath(MetadataConfiguration metadataConfiguration, string file)
|
internal static FilePath GetFilePath(MetadataConfiguration metadataConfiguration, string file, int? index)
|
||||||
{
|
{
|
||||||
FilePath result;
|
FilePath result;
|
||||||
int? id;
|
int? id;
|
||||||
@ -76,7 +90,16 @@ internal abstract class Id
|
|||||||
string fileNameFirstSegment = segments[0];
|
string fileNameFirstSegment = segments[0];
|
||||||
bool fileNameFirstSegmentIsIntelligentIdFormat = IId.NameWithoutExtensionIsIntelligentIdFormat(metadataConfiguration, fileNameFirstSegment);
|
bool fileNameFirstSegmentIsIntelligentIdFormat = IId.NameWithoutExtensionIsIntelligentIdFormat(metadataConfiguration, fileNameFirstSegment);
|
||||||
bool fileNameFirstSegmentIsPaddedIntelligentIdFormat = IId.NameWithoutExtensionIsPaddedIntelligentIdFormat(metadataConfiguration, sortOrderOnlyLengthIndex, fileNameFirstSegment);
|
bool fileNameFirstSegmentIsPaddedIntelligentIdFormat = IId.NameWithoutExtensionIsPaddedIntelligentIdFormat(metadataConfiguration, sortOrderOnlyLengthIndex, fileNameFirstSegment);
|
||||||
if (!fileNameFirstSegmentIsIntelligentIdFormat && !fileNameFirstSegmentIsPaddedIntelligentIdFormat)
|
bool fileNameFirstSegmentIsIdFormat = !fileNameFirstSegmentIsPaddedIntelligentIdFormat && !fileNameFirstSegmentIsIntelligentIdFormat && IId.NameWithoutExtensionIsIdFormat(fileNameFirstSegment);
|
||||||
|
if (fileNameFirstSegmentIsIdFormat)
|
||||||
|
{
|
||||||
|
if (index is null)
|
||||||
|
throw new NullReferenceException(nameof(index));
|
||||||
|
if (!int.TryParse(fileNameFirstSegment, out int valueOfFileNameFirstSegment))
|
||||||
|
throw new NotSupportedException();
|
||||||
|
(id, sortOder) = (valueOfFileNameFirstSegment, metadataConfiguration.Offset + index);
|
||||||
|
}
|
||||||
|
else if (!fileNameFirstSegmentIsIntelligentIdFormat && !fileNameFirstSegmentIsPaddedIntelligentIdFormat)
|
||||||
(id, sortOder) = (null, null);
|
(id, sortOder) = (null, null);
|
||||||
else if (fileNameFirstSegmentIsIntelligentIdFormat)
|
else if (fileNameFirstSegmentIsIntelligentIdFormat)
|
||||||
(id, sortOder) = (GetId(metadataConfiguration, fileNameFirstSegment), null);
|
(id, sortOder) = (GetId(metadataConfiguration, fileNameFirstSegment), null);
|
||||||
|
@ -25,15 +25,20 @@ public interface IId
|
|||||||
&& fileNameFirstSegment[^1] is '1' or '2' or '8' or '9'
|
&& fileNameFirstSegment[^1] is '1' or '2' or '8' or '9'
|
||||||
&& fileNameFirstSegment.All(char.IsNumber);
|
&& fileNameFirstSegment.All(char.IsNumber);
|
||||||
|
|
||||||
|
bool TestStatic_NameWithoutExtensionIsIdFormat(string fileNameFirstSegment) =>
|
||||||
|
NameWithoutExtensionIsIdFormat(fileNameFirstSegment);
|
||||||
|
static bool NameWithoutExtensionIsIdFormat(string fileNameFirstSegment) =>
|
||||||
|
Id.NameWithoutExtensionIsIdFormat(fileNameFirstSegment);
|
||||||
|
|
||||||
short TestStatic_GetSortOrderOnlyLengthIndex(MetadataConfiguration metadataConfiguration) =>
|
short TestStatic_GetSortOrderOnlyLengthIndex(MetadataConfiguration metadataConfiguration) =>
|
||||||
GetSortOrderOnlyLengthIndex(metadataConfiguration);
|
GetSortOrderOnlyLengthIndex(metadataConfiguration);
|
||||||
static short GetSortOrderOnlyLengthIndex(MetadataConfiguration metadataConfiguration) =>
|
static short GetSortOrderOnlyLengthIndex(MetadataConfiguration metadataConfiguration) =>
|
||||||
(short)metadataConfiguration.Offset.ToString().Length;
|
(short)metadataConfiguration.Offset.ToString().Length;
|
||||||
|
|
||||||
FilePath TestStatic_GetFilePath(MetadataConfiguration metadataConfiguration, string file) =>
|
FilePath TestStatic_GetFilePath(MetadataConfiguration metadataConfiguration, string file, int? index) =>
|
||||||
GetFilePath(metadataConfiguration, file);
|
GetFilePath(metadataConfiguration, file, index);
|
||||||
static FilePath GetFilePath(MetadataConfiguration metadataConfiguration, string file) =>
|
static FilePath GetFilePath(MetadataConfiguration metadataConfiguration, string file, int? index) =>
|
||||||
Id.GetFilePath(metadataConfiguration, file);
|
Id.GetFilePath(metadataConfiguration, file, index);
|
||||||
|
|
||||||
int TestStatic_GetDeterministicHashCode(byte[] value) =>
|
int TestStatic_GetDeterministicHashCode(byte[] value) =>
|
||||||
GetDeterministicHashCode(value);
|
GetDeterministicHashCode(value);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user