re-organized configurations - II
This commit is contained in:
@ -7,6 +7,7 @@ using System.Drawing;
|
||||
using System.Drawing.Imaging;
|
||||
using System.Runtime.InteropServices;
|
||||
using View_by_Distance.Metadata.Models;
|
||||
using View_by_Distance.Metadata.Models.Stateless.Methods;
|
||||
using View_by_Distance.Rename.Models;
|
||||
using View_by_Distance.Shared.Models;
|
||||
using View_by_Distance.Shared.Models.Stateless.Methods;
|
||||
@ -60,8 +61,8 @@ public class Rename : IRename
|
||||
else
|
||||
{
|
||||
CommandTask<CommandResult> commandTask = Cli.Wrap("ffmpeg.exe")
|
||||
// .WithArguments(new[] { "-ss", "00:00:00", "-t", "00:00:00", "-i", files[i], "-qscale:v", "2", "-r", "0.01", $"{fileHolder.Name}-%4d.jpg" })
|
||||
.WithArguments(new[] { "-i", filePath.FullName, "-vframes", "1", $"{filePath.Name}-%4d.jpg" })
|
||||
// .WithArguments(new[] { "-ss", "00:00:00", "-t", "00:00:00", "-i", files[i], "-qScale:v", "2", "-r", "0.01", $"{fileHolder.Name}-%4d.jpg" })
|
||||
.WithArguments(new[] { "-i", filePath.FullName, "-vFrames", "1", $"{filePath.Name}-%4d.jpg" })
|
||||
.WithWorkingDirectory(filePath.DirectoryName)
|
||||
.ExecuteAsync();
|
||||
commandTask.Task.Wait();
|
||||
@ -136,12 +137,11 @@ public class Rename : IRename
|
||||
(ffmpegFiles, ffmpegFilePath) = rename.ConvertAndGetFfmpegFiles(filePath);
|
||||
if (ffmpegFilePath is not null)
|
||||
filePath = ffmpegFilePath;
|
||||
fileInfo = metadata.GetFileInfo(filePath);
|
||||
if (filePath.Id is not null)
|
||||
deterministicHashCode = new(null, filePath.Id, null);
|
||||
else
|
||||
deterministicHashCode = rename.GetDeterministicHashCode(filePath);
|
||||
exifDirectory = metadata.GetMetadataCollection(_RenameConfiguration.MetadataConfiguration, filePath, fileInfo, deterministicHashCode);
|
||||
(fileInfo, exifDirectory) = metadata.GetMetadataCollection(_RenameConfiguration.MetadataConfiguration, filePath, deterministicHashCode);
|
||||
exifDirectories.Add(new(file, fileInfo, exifDirectory));
|
||||
foreach (string ffmpegFile in ffmpegFiles)
|
||||
File.Delete(ffmpegFile);
|
||||
@ -198,17 +198,20 @@ public class Rename : IRename
|
||||
{
|
||||
List<ToDo> results = [];
|
||||
int season;
|
||||
string maker;
|
||||
Record record;
|
||||
string jsonFile;
|
||||
string paddedId;
|
||||
string checkFile;
|
||||
string seasonName;
|
||||
string directoryName;
|
||||
FileHolder fileHolder;
|
||||
string? seasonDirectory;
|
||||
string jsonFileDirectory;
|
||||
string? checkDirectory;
|
||||
const string jpg = ".jpg";
|
||||
string checkFileExtension;
|
||||
List<string> distinct = [];
|
||||
const string jpeg = ".jpeg";
|
||||
string jsonFileSubDirectory;
|
||||
int intMinValueLength = int.MinValue.ToString().Length;
|
||||
VerifyIntMinValueLength(exifDirectories, intMinValueLength);
|
||||
ReadOnlyCollection<Record> records = new((from l in exifDirectories orderby l.DateTime select l).ToArray());
|
||||
@ -220,12 +223,13 @@ public class Rename : IRename
|
||||
fileHolder = new(record.File);
|
||||
if (fileHolder.DirectoryName is null)
|
||||
continue;
|
||||
maker = IMetadata.GetMaker(record.ExifDirectory.ExifDirectoryBase);
|
||||
(season, seasonName) = IDate.GetSeason(record.DateTime.DayOfYear);
|
||||
jsonFileDirectory = Path.GetDirectoryName(record.JsonFile) ?? throw new Exception();
|
||||
checkFileExtension = fileHolder.ExtensionLowered == jpeg ? jpg : fileHolder.ExtensionLowered;
|
||||
seasonDirectory = Path.Combine(fileHolder.DirectoryName, $"{record.DateTime.Year}.{season} {seasonName}");
|
||||
checkDirectory = Path.Combine(fileHolder.DirectoryName, $"{record.DateTime.Year}.{season} {seasonName}{maker}");
|
||||
jsonFileSubDirectory = Path.GetDirectoryName(Path.GetDirectoryName(record.JsonFile)) ?? throw new Exception();
|
||||
paddedId = IId.GetPaddedId(intMinValueLength, _RenameConfiguration.MetadataConfiguration.Offset + i, record.ExifDirectory.Id.Value);
|
||||
checkFile = Path.Combine(seasonDirectory, $"{paddedId}{checkFileExtension}");
|
||||
checkFile = Path.Combine(checkDirectory, $"{paddedId}{checkFileExtension}");
|
||||
if (checkFile == fileHolder.FullName)
|
||||
continue;
|
||||
if (File.Exists(checkFile))
|
||||
@ -234,11 +238,14 @@ public class Rename : IRename
|
||||
if (File.Exists(checkFile))
|
||||
continue;
|
||||
}
|
||||
results.Add(new(null, new(record.JsonFile), Path.Combine(jsonFileDirectory, $"{record.ExifDirectory.Id.Value}{checkFileExtension}.json"), JsonFile: true));
|
||||
(directoryName, _) = IPath.GetDirectoryNameAndIndex(_RenameConfiguration.MetadataConfiguration.ResultConfiguration, record.ExifDirectory.Id.Value);
|
||||
jsonFile = Path.Combine(jsonFileSubDirectory, directoryName, $"{record.ExifDirectory.Id.Value}{checkFileExtension}.json");
|
||||
if (record.JsonFile != jsonFile)
|
||||
results.Add(new(null, new(record.JsonFile), jsonFile, JsonFile: true));
|
||||
if (distinct.Contains(checkFile))
|
||||
continue;
|
||||
distinct.Add(checkFile);
|
||||
results.Add(new(seasonDirectory, fileHolder, checkFile, JsonFile: false));
|
||||
results.Add(new(checkDirectory, fileHolder, checkFile, JsonFile: false));
|
||||
}
|
||||
return new(results);
|
||||
}
|
||||
@ -263,11 +270,17 @@ public class Rename : IRename
|
||||
foreach (ToDo toDo in toDoCollection)
|
||||
{
|
||||
if (toDo.JsonFile)
|
||||
{
|
||||
if (File.Exists(toDo.File))
|
||||
File.Delete(toDo.File);
|
||||
File.Move(toDo.FileHolder.FullName, toDo.File);
|
||||
}
|
||||
else if (toDo.Directory is null)
|
||||
throw new NotSupportedException();
|
||||
else
|
||||
{
|
||||
if (File.Exists(toDo.File))
|
||||
File.Delete(toDo.File);
|
||||
File.Move(toDo.FileHolder.FullName, toDo.File);
|
||||
results.Add($"{toDo.FileHolder.FullName}\t{toDo.File}");
|
||||
}
|
||||
|
Reference in New Issue
Block a user