mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Reduce redundant code
This commit is contained in:
@@ -64,8 +64,8 @@ have a current entry in the DAT index.";
|
|||||||
DatFile df = DatFile.Create();
|
DatFile df = DatFile.Create();
|
||||||
foreach (string dir in onlyDirs)
|
foreach (string dir in onlyDirs)
|
||||||
{
|
{
|
||||||
df.PopulateFromDir(dir, asFiles: TreatAsFiles.AaruFormats | TreatAsFiles.CHDs);
|
df.PopulateFromDir(dir, asFiles: TreatAsFile.AaruFormat | TreatAsFile.CHD);
|
||||||
df.PopulateFromDir(dir, asFiles: TreatAsFiles.AaruFormats | TreatAsFiles.Archives | TreatAsFiles.CHDs);
|
df.PopulateFromDir(dir, asFiles: TreatAsFile.AaruFormat | TreatAsFile.Archive | TreatAsFile.CHD);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create an empty Dat for files that need to be rebuilt
|
// Create an empty Dat for files that need to be rebuilt
|
||||||
@@ -192,7 +192,7 @@ have a current entry in the DAT index.";
|
|||||||
onlyDirs,
|
onlyDirs,
|
||||||
outDir: _depots.Keys.ToList()[0],
|
outDir: _depots.Keys.ToList()[0],
|
||||||
outputFormat: OutputFormat.TorrentGzipRomba,
|
outputFormat: OutputFormat.TorrentGzipRomba,
|
||||||
asFiles: TreatAsFiles.AaruFormats | TreatAsFiles.CHDs);
|
asFiles: TreatAsFile.AaruFormat | TreatAsFile.CHD);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ namespace RombaSharp.Features
|
|||||||
DatFile datfile = DatFile.Create();
|
DatFile datfile = DatFile.Create();
|
||||||
datfile.Header.Name = string.IsNullOrWhiteSpace(name) ? "untitled" : name;
|
datfile.Header.Name = string.IsNullOrWhiteSpace(name) ? "untitled" : name;
|
||||||
datfile.Header.Description = description;
|
datfile.Header.Description = description;
|
||||||
datfile.PopulateFromDir(source, asFiles: TreatAsFiles.AaruFormats | TreatAsFiles.CHDs);
|
datfile.PopulateFromDir(source, asFiles: TreatAsFile.AaruFormat | TreatAsFile.CHD);
|
||||||
datfile.Write(outDir: outdat);
|
datfile.Write(outDir: outdat);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ contents of any changed dats.";
|
|||||||
// First get a list of SHA-1's from the input DATs
|
// First get a list of SHA-1's from the input DATs
|
||||||
DatFile datroot = DatFile.Create();
|
DatFile datroot = DatFile.Create();
|
||||||
datroot.Header.Type = "SuperDAT";
|
datroot.Header.Type = "SuperDAT";
|
||||||
datroot.PopulateFromDir(_dats, asFiles: TreatAsFiles.AaruFormats | TreatAsFiles.CHDs);
|
datroot.PopulateFromDir(_dats, asFiles: TreatAsFile.AaruFormat | TreatAsFile.CHD);
|
||||||
datroot.Items.BucketBy(Field.DatItem_SHA1, DedupeType.None);
|
datroot.Items.BucketBy(Field.DatItem_SHA1, DedupeType.None);
|
||||||
|
|
||||||
// Create a List of dat hashes in the database (SHA-1)
|
// Create a List of dat hashes in the database (SHA-1)
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ namespace RombaSharp.Features
|
|||||||
|
|
||||||
// Now rescan the depot itself
|
// Now rescan the depot itself
|
||||||
DatFile depot = DatFile.Create();
|
DatFile depot = DatFile.Create();
|
||||||
depot.PopulateFromDir(depotname, asFiles: TreatAsFiles.AaruFormats | TreatAsFiles.CHDs);
|
depot.PopulateFromDir(depotname, asFiles: TreatAsFile.AaruFormat | TreatAsFile.CHD);
|
||||||
depot.Items.BucketBy(Field.DatItem_SHA1, DedupeType.None);
|
depot.Items.BucketBy(Field.DatItem_SHA1, DedupeType.None);
|
||||||
|
|
||||||
// Set the base queries to use
|
// Set the base queries to use
|
||||||
|
|||||||
@@ -1982,7 +1982,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
public bool PopulateFromDir(
|
public bool PopulateFromDir(
|
||||||
string basePath,
|
string basePath,
|
||||||
Hash omitFromScan = Hash.DeepHashes,
|
Hash omitFromScan = Hash.DeepHashes,
|
||||||
TreatAsFiles asFiles = 0x00,
|
TreatAsFile asFiles = 0x00,
|
||||||
SkipFileType skipFileType = SkipFileType.None,
|
SkipFileType skipFileType = SkipFileType.None,
|
||||||
bool addBlanks = false,
|
bool addBlanks = false,
|
||||||
bool addDate = false,
|
bool addDate = false,
|
||||||
@@ -2075,7 +2075,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
string item,
|
string item,
|
||||||
string basePath,
|
string basePath,
|
||||||
Hash omitFromScan,
|
Hash omitFromScan,
|
||||||
TreatAsFiles asFiles,
|
TreatAsFile asFiles,
|
||||||
SkipFileType skipFileType,
|
SkipFileType skipFileType,
|
||||||
bool addBlanks,
|
bool addBlanks,
|
||||||
bool addDate,
|
bool addDate,
|
||||||
@@ -2093,7 +2093,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
List<BaseFile> extracted = null;
|
List<BaseFile> extracted = null;
|
||||||
|
|
||||||
// If we have an archive and we're supposed to scan it
|
// If we have an archive and we're supposed to scan it
|
||||||
if (archive != null && !asFiles.HasFlag(TreatAsFiles.Archives))
|
if (archive != null && !asFiles.HasFlag(TreatAsFile.Archive))
|
||||||
extracted = archive.GetChildren(omitFromScan: omitFromScan, date: addDate);
|
extracted = archive.GetChildren(omitFromScan: omitFromScan, date: addDate);
|
||||||
|
|
||||||
// If the file should be skipped based on type, do so now
|
// If the file should be skipped based on type, do so now
|
||||||
@@ -2216,7 +2216,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
/// <param name="omitFromScan">Hash flag saying what hashes should not be calculated</param>
|
/// <param name="omitFromScan">Hash flag saying what hashes should not be calculated</param>
|
||||||
/// <param name="addDate">True if dates should be archived for all files, false otherwise</param>
|
/// <param name="addDate">True if dates should be archived for all files, false otherwise</param>
|
||||||
/// <param name="asFiles">TreatAsFiles representing CHD and Archive scanning</param>
|
/// <param name="asFiles">TreatAsFiles representing CHD and Archive scanning</param>
|
||||||
private void ProcessFile(string item, string basePath, Hash omitFromScan, bool addDate, TreatAsFiles asFiles)
|
private void ProcessFile(string item, string basePath, Hash omitFromScan, bool addDate, TreatAsFile asFiles)
|
||||||
{
|
{
|
||||||
Globals.Logger.Verbose($"'{Path.GetFileName(item)}' treated like a file");
|
Globals.Logger.Verbose($"'{Path.GetFileName(item)}' treated like a file");
|
||||||
BaseFile baseFile = FileExtensions.GetInfo(item, addDate, Header.HeaderSkipper, asFiles);
|
BaseFile baseFile = FileExtensions.GetInfo(item, addDate, Header.HeaderSkipper, asFiles);
|
||||||
@@ -2508,7 +2508,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
bool delete = false,
|
bool delete = false,
|
||||||
bool inverse = false,
|
bool inverse = false,
|
||||||
OutputFormat outputFormat = OutputFormat.Folder,
|
OutputFormat outputFormat = OutputFormat.Folder,
|
||||||
TreatAsFiles asFiles = 0x00)
|
TreatAsFile asFiles = 0x00)
|
||||||
{
|
{
|
||||||
#region Perform setup
|
#region Perform setup
|
||||||
|
|
||||||
@@ -2590,7 +2590,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
bool delete,
|
bool delete,
|
||||||
bool inverse,
|
bool inverse,
|
||||||
OutputFormat outputFormat,
|
OutputFormat outputFormat,
|
||||||
TreatAsFiles asFiles)
|
TreatAsFile asFiles)
|
||||||
{
|
{
|
||||||
// If we somehow have a null filename, return
|
// If we somehow have a null filename, return
|
||||||
if (file == null)
|
if (file == null)
|
||||||
@@ -2997,7 +2997,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
/// <param name="quickScan">True to enable external scanning of archives, false otherwise</param>
|
/// <param name="quickScan">True to enable external scanning of archives, false otherwise</param>
|
||||||
/// <param name="asFiles">TreatAsFiles representing CHD and Archive scanning</param>
|
/// <param name="asFiles">TreatAsFiles representing CHD and Archive scanning</param>
|
||||||
/// <returns>True if verification was a success, false otherwise</returns>
|
/// <returns>True if verification was a success, false otherwise</returns>
|
||||||
public bool VerifyGeneric(List<string> inputs, bool hashOnly, bool quickScan, TreatAsFiles asFiles = 0x00)
|
public bool VerifyGeneric(List<string> inputs, bool hashOnly, bool quickScan, TreatAsFile asFiles = 0x00)
|
||||||
{
|
{
|
||||||
bool success = true;
|
bool success = true;
|
||||||
|
|
||||||
|
|||||||
@@ -276,11 +276,12 @@ namespace SabreTools.Library.DatFiles
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Determines what sort of files get externally hashed
|
/// Determines what sort of files get externally hashed
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
/// TODO: Can FileType be used instead?
|
||||||
[Flags]
|
[Flags]
|
||||||
public enum TreatAsFiles
|
public enum TreatAsFile
|
||||||
{
|
{
|
||||||
CHDs = 1 << 0,
|
CHD = 1 << 0,
|
||||||
Archives = 1 << 1,
|
Archive = 1 << 1,
|
||||||
AaruFormats = 1 << 2,
|
AaruFormat = 1 << 2,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -343,7 +343,7 @@ namespace SabreTools.Library.IO
|
|||||||
/// <param name="header">Populated string representing the name of the skipper to use, a blank string to use the first available checker, null otherwise</param>
|
/// <param name="header">Populated string representing the name of the skipper to use, a blank string to use the first available checker, null otherwise</param>
|
||||||
/// <param name="asFiles">TreatAsFiles representing special format scanning</param>
|
/// <param name="asFiles">TreatAsFiles representing special format scanning</param>
|
||||||
/// <returns>Populated BaseFile object if success, empty one on error</returns>
|
/// <returns>Populated BaseFile object if success, empty one on error</returns>
|
||||||
public static BaseFile GetInfo(string input, bool date = false, string header = null, TreatAsFiles asFiles = 0x00)
|
public static BaseFile GetInfo(string input, bool date = false, string header = null, TreatAsFile asFiles = 0x00)
|
||||||
{
|
{
|
||||||
// Add safeguard if file doesn't exist
|
// Add safeguard if file doesn't exist
|
||||||
if (!File.Exists(input))
|
if (!File.Exists(input))
|
||||||
@@ -351,15 +351,14 @@ namespace SabreTools.Library.IO
|
|||||||
|
|
||||||
// Get input information
|
// Get input information
|
||||||
var fileType = input.GetFileType();
|
var fileType = input.GetFileType();
|
||||||
var inputStream = TryOpenRead(input);
|
Stream inputStream = TryOpenRead(input);
|
||||||
|
|
||||||
// Get the information from the file stream
|
// Try to match the supplied header skipper
|
||||||
BaseFile baseFile;
|
|
||||||
if (header != null)
|
if (header != null)
|
||||||
{
|
{
|
||||||
SkipperRule rule = Transform.GetMatchingRule(input, Path.GetFileNameWithoutExtension(header));
|
SkipperRule rule = Transform.GetMatchingRule(input, Path.GetFileNameWithoutExtension(header));
|
||||||
|
|
||||||
// If there's a match, get the new information from the stream
|
// If there's a match, transform the stream before getting info
|
||||||
if (rule.Tests != null && rule.Tests.Count != 0)
|
if (rule.Tests != null && rule.Tests.Count != 0)
|
||||||
{
|
{
|
||||||
// Create the output stream
|
// Create the output stream
|
||||||
@@ -367,41 +366,21 @@ namespace SabreTools.Library.IO
|
|||||||
|
|
||||||
// Transform the stream and get the information from it
|
// Transform the stream and get the information from it
|
||||||
rule.TransformStream(inputStream, outputStream, keepReadOpen: false, keepWriteOpen: true);
|
rule.TransformStream(inputStream, outputStream, keepReadOpen: false, keepWriteOpen: true);
|
||||||
|
inputStream = outputStream;
|
||||||
if (fileType == FileType.AaruFormat && !asFiles.HasFlag(TreatAsFiles.AaruFormats))
|
|
||||||
baseFile = AaruFormat.Create(outputStream);
|
|
||||||
else if (fileType == FileType.CHD && !asFiles.HasFlag(TreatAsFiles.CHDs))
|
|
||||||
baseFile = CHDFile.Create(outputStream);
|
|
||||||
else
|
|
||||||
baseFile = outputStream.GetInfo(keepReadOpen: false);
|
|
||||||
|
|
||||||
// Dispose of the output stream
|
|
||||||
outputStream.Dispose();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
// Otherwise, just get the info
|
}
|
||||||
else
|
|
||||||
{
|
// Get the info in the proper manner
|
||||||
if (fileType == FileType.AaruFormat && !asFiles.HasFlag(TreatAsFiles.AaruFormats))
|
BaseFile baseFile;
|
||||||
|
if (fileType == FileType.AaruFormat && !asFiles.HasFlag(TreatAsFile.AaruFormat))
|
||||||
baseFile = AaruFormat.Create(inputStream);
|
baseFile = AaruFormat.Create(inputStream);
|
||||||
else if (fileType == FileType.CHD && !asFiles.HasFlag(TreatAsFiles.CHDs))
|
else if (fileType == FileType.CHD && !asFiles.HasFlag(TreatAsFile.CHD))
|
||||||
baseFile = CHDFile.Create(inputStream);
|
baseFile = CHDFile.Create(inputStream);
|
||||||
else
|
else
|
||||||
baseFile = inputStream.GetInfo(keepReadOpen: false);
|
baseFile = inputStream.GetInfo(keepReadOpen: false);
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (fileType == FileType.AaruFormat && !asFiles.HasFlag(TreatAsFiles.AaruFormats))
|
|
||||||
baseFile = AaruFormat.Create(inputStream);
|
|
||||||
else if (fileType == FileType.CHD && !asFiles.HasFlag(TreatAsFiles.CHDs))
|
|
||||||
baseFile = CHDFile.Create(inputStream);
|
|
||||||
else
|
|
||||||
baseFile = inputStream.GetInfo(keepReadOpen: false);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Dispose of the input stream
|
// Dispose of the input stream
|
||||||
inputStream.Dispose();
|
inputStream?.Dispose();
|
||||||
|
|
||||||
// Add unique data from the file
|
// Add unique data from the file
|
||||||
baseFile.Filename = Path.GetFileName(input);
|
baseFile.Filename = Path.GetFileName(input);
|
||||||
|
|||||||
@@ -119,7 +119,7 @@ namespace SabreTools.Library.Skippers
|
|||||||
// Now add the information to the database if it's not already there
|
// Now add the information to the database if it's not already there
|
||||||
if (!nostore)
|
if (!nostore)
|
||||||
{
|
{
|
||||||
BaseFile baseFile = FileExtensions.GetInfo(newfile, asFiles: TreatAsFiles.AaruFormats | TreatAsFiles.CHDs);
|
BaseFile baseFile = FileExtensions.GetInfo(newfile, asFiles: TreatAsFile.AaruFormat | TreatAsFile.CHD);
|
||||||
DatabaseTools.AddHeaderToDatabase(hstr, Utilities.ByteArrayToString(baseFile.SHA1), rule.SourceFile);
|
DatabaseTools.AddHeaderToDatabase(hstr, Utilities.ByteArrayToString(baseFile.SHA1), rule.SourceFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -139,7 +139,7 @@ namespace SabreTools.Library.Skippers
|
|||||||
Directory.CreateDirectory(outDir);
|
Directory.CreateDirectory(outDir);
|
||||||
|
|
||||||
// First, get the SHA-1 hash of the file
|
// First, get the SHA-1 hash of the file
|
||||||
BaseFile baseFile = FileExtensions.GetInfo(file, asFiles: TreatAsFiles.AaruFormats | TreatAsFiles.CHDs);
|
BaseFile baseFile = FileExtensions.GetInfo(file, asFiles: TreatAsFile.AaruFormat | TreatAsFile.CHD);
|
||||||
|
|
||||||
// Retrieve a list of all related headers from the database
|
// Retrieve a list of all related headers from the database
|
||||||
List<string> headers = DatabaseTools.RetrieveHeadersFromDatabase(Utilities.ByteArrayToString(baseFile.SHA1));
|
List<string> headers = DatabaseTools.RetrieveHeadersFromDatabase(Utilities.ByteArrayToString(baseFile.SHA1));
|
||||||
|
|||||||
@@ -2584,15 +2584,15 @@ Some special strings that can be used:
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Get TreatAsFiles from feature list
|
/// Get TreatAsFiles from feature list
|
||||||
/// </summary>
|
/// </summary>
|
||||||
protected TreatAsFiles GetTreatAsFiles(Dictionary<string, Library.Help.Feature> features)
|
protected TreatAsFile GetTreatAsFiles(Dictionary<string, Library.Help.Feature> features)
|
||||||
{
|
{
|
||||||
TreatAsFiles asFiles = 0x00;
|
TreatAsFile asFiles = 0x00;
|
||||||
if (GetBoolean(features, AaruFormatsAsFilesValue))
|
if (GetBoolean(features, AaruFormatsAsFilesValue))
|
||||||
asFiles |= TreatAsFiles.AaruFormats;
|
asFiles |= TreatAsFile.AaruFormat;
|
||||||
if (GetBoolean(features, ArchivesAsFilesValue))
|
if (GetBoolean(features, ArchivesAsFilesValue))
|
||||||
asFiles |= TreatAsFiles.Archives;
|
asFiles |= TreatAsFile.Archive;
|
||||||
if (GetBoolean(features, ChdsAsFilesValue))
|
if (GetBoolean(features, ChdsAsFilesValue))
|
||||||
asFiles |= TreatAsFiles.CHDs;
|
asFiles |= TreatAsFile.CHD;
|
||||||
|
|
||||||
return asFiles;
|
return asFiles;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ namespace SabreTools.Features
|
|||||||
// Get feature flags
|
// Get feature flags
|
||||||
bool addBlankFiles = GetBoolean(features, AddBlankFilesValue);
|
bool addBlankFiles = GetBoolean(features, AddBlankFilesValue);
|
||||||
bool addFileDates = GetBoolean(features, AddDateValue);
|
bool addFileDates = GetBoolean(features, AddDateValue);
|
||||||
TreatAsFiles asFiles = GetTreatAsFiles(features);
|
TreatAsFile asFiles = GetTreatAsFiles(features);
|
||||||
bool copyFiles = GetBoolean(features, CopyFilesValue);
|
bool copyFiles = GetBoolean(features, CopyFilesValue);
|
||||||
bool noAutomaticDate = GetBoolean(features, NoAutomaticDateValue);
|
bool noAutomaticDate = GetBoolean(features, NoAutomaticDateValue);
|
||||||
var omitFromScan = GetOmitFromScan(features);
|
var omitFromScan = GetOmitFromScan(features);
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ namespace SabreTools.Features
|
|||||||
base.ProcessFeatures(features);
|
base.ProcessFeatures(features);
|
||||||
|
|
||||||
// Get feature flags
|
// Get feature flags
|
||||||
TreatAsFiles asFiles = GetTreatAsFiles(features);
|
TreatAsFile asFiles = GetTreatAsFiles(features);
|
||||||
bool date = GetBoolean(features, AddDateValue);
|
bool date = GetBoolean(features, AddDateValue);
|
||||||
bool delete = GetBoolean(features, DeleteValue);
|
bool delete = GetBoolean(features, DeleteValue);
|
||||||
bool inverse = GetBoolean(features, InverseValue);
|
bool inverse = GetBoolean(features, InverseValue);
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ namespace SabreTools.Features
|
|||||||
var datfilePaths = DirectoryExtensions.GetFilesOnly(datfiles);
|
var datfilePaths = DirectoryExtensions.GetFilesOnly(datfiles);
|
||||||
|
|
||||||
// Get feature flags
|
// Get feature flags
|
||||||
TreatAsFiles asFiles = GetTreatAsFiles(features);
|
TreatAsFile asFiles = GetTreatAsFiles(features);
|
||||||
bool hashOnly = GetBoolean(features, HashOnlyValue);
|
bool hashOnly = GetBoolean(features, HashOnlyValue);
|
||||||
bool quickScan = GetBoolean(features, QuickValue);
|
bool quickScan = GetBoolean(features, QuickValue);
|
||||||
var splitType = GetSplitType(features);
|
var splitType = GetSplitType(features);
|
||||||
|
|||||||
Reference in New Issue
Block a user