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();
|
||||
foreach (string dir in onlyDirs)
|
||||
{
|
||||
df.PopulateFromDir(dir, asFiles: TreatAsFiles.AaruFormats | TreatAsFiles.CHDs);
|
||||
df.PopulateFromDir(dir, asFiles: TreatAsFiles.AaruFormats | TreatAsFiles.Archives | TreatAsFiles.CHDs);
|
||||
df.PopulateFromDir(dir, asFiles: TreatAsFile.AaruFormat | TreatAsFile.CHD);
|
||||
df.PopulateFromDir(dir, asFiles: TreatAsFile.AaruFormat | TreatAsFile.Archive | TreatAsFile.CHD);
|
||||
}
|
||||
|
||||
// Create an empty Dat for files that need to be rebuilt
|
||||
@@ -192,7 +192,7 @@ have a current entry in the DAT index.";
|
||||
onlyDirs,
|
||||
outDir: _depots.Keys.ToList()[0],
|
||||
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.Header.Name = string.IsNullOrWhiteSpace(name) ? "untitled" : name;
|
||||
datfile.Header.Description = description;
|
||||
datfile.PopulateFromDir(source, asFiles: TreatAsFiles.AaruFormats | TreatAsFiles.CHDs);
|
||||
datfile.PopulateFromDir(source, asFiles: TreatAsFile.AaruFormat | TreatAsFile.CHD);
|
||||
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
|
||||
DatFile datroot = DatFile.Create();
|
||||
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);
|
||||
|
||||
// Create a List of dat hashes in the database (SHA-1)
|
||||
|
||||
@@ -63,7 +63,7 @@ namespace RombaSharp.Features
|
||||
|
||||
// Now rescan the depot itself
|
||||
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);
|
||||
|
||||
// Set the base queries to use
|
||||
|
||||
@@ -1982,7 +1982,7 @@ namespace SabreTools.Library.DatFiles
|
||||
public bool PopulateFromDir(
|
||||
string basePath,
|
||||
Hash omitFromScan = Hash.DeepHashes,
|
||||
TreatAsFiles asFiles = 0x00,
|
||||
TreatAsFile asFiles = 0x00,
|
||||
SkipFileType skipFileType = SkipFileType.None,
|
||||
bool addBlanks = false,
|
||||
bool addDate = false,
|
||||
@@ -2075,7 +2075,7 @@ namespace SabreTools.Library.DatFiles
|
||||
string item,
|
||||
string basePath,
|
||||
Hash omitFromScan,
|
||||
TreatAsFiles asFiles,
|
||||
TreatAsFile asFiles,
|
||||
SkipFileType skipFileType,
|
||||
bool addBlanks,
|
||||
bool addDate,
|
||||
@@ -2093,7 +2093,7 @@ namespace SabreTools.Library.DatFiles
|
||||
List<BaseFile> extracted = null;
|
||||
|
||||
// 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);
|
||||
|
||||
// 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="addDate">True if dates should be archived for all files, false otherwise</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");
|
||||
BaseFile baseFile = FileExtensions.GetInfo(item, addDate, Header.HeaderSkipper, asFiles);
|
||||
@@ -2508,7 +2508,7 @@ namespace SabreTools.Library.DatFiles
|
||||
bool delete = false,
|
||||
bool inverse = false,
|
||||
OutputFormat outputFormat = OutputFormat.Folder,
|
||||
TreatAsFiles asFiles = 0x00)
|
||||
TreatAsFile asFiles = 0x00)
|
||||
{
|
||||
#region Perform setup
|
||||
|
||||
@@ -2590,7 +2590,7 @@ namespace SabreTools.Library.DatFiles
|
||||
bool delete,
|
||||
bool inverse,
|
||||
OutputFormat outputFormat,
|
||||
TreatAsFiles asFiles)
|
||||
TreatAsFile asFiles)
|
||||
{
|
||||
// If we somehow have a null filename, return
|
||||
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="asFiles">TreatAsFiles representing CHD and Archive scanning</param>
|
||||
/// <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;
|
||||
|
||||
|
||||
@@ -276,11 +276,12 @@ namespace SabreTools.Library.DatFiles
|
||||
/// <summary>
|
||||
/// Determines what sort of files get externally hashed
|
||||
/// </summary>
|
||||
/// TODO: Can FileType be used instead?
|
||||
[Flags]
|
||||
public enum TreatAsFiles
|
||||
public enum TreatAsFile
|
||||
{
|
||||
CHDs = 1 << 0,
|
||||
Archives = 1 << 1,
|
||||
AaruFormats = 1 << 2,
|
||||
CHD = 1 << 0,
|
||||
Archive = 1 << 1,
|
||||
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="asFiles">TreatAsFiles representing special format scanning</param>
|
||||
/// <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
|
||||
if (!File.Exists(input))
|
||||
@@ -351,15 +351,14 @@ namespace SabreTools.Library.IO
|
||||
|
||||
// Get input information
|
||||
var fileType = input.GetFileType();
|
||||
var inputStream = TryOpenRead(input);
|
||||
Stream inputStream = TryOpenRead(input);
|
||||
|
||||
// Get the information from the file stream
|
||||
BaseFile baseFile;
|
||||
// Try to match the supplied header skipper
|
||||
if (header != null)
|
||||
{
|
||||
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)
|
||||
{
|
||||
// Create the output stream
|
||||
@@ -367,41 +366,21 @@ namespace SabreTools.Library.IO
|
||||
|
||||
// Transform the stream and get the information from it
|
||||
rule.TransformStream(inputStream, outputStream, keepReadOpen: false, keepWriteOpen: true);
|
||||
|
||||
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();
|
||||
|
||||
inputStream = outputStream;
|
||||
}
|
||||
// Otherwise, just get the info
|
||||
else
|
||||
{
|
||||
if (fileType == FileType.AaruFormat && !asFiles.HasFlag(TreatAsFiles.AaruFormats))
|
||||
}
|
||||
|
||||
// Get the info in the proper manner
|
||||
BaseFile baseFile;
|
||||
if (fileType == FileType.AaruFormat && !asFiles.HasFlag(TreatAsFile.AaruFormat))
|
||||
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);
|
||||
else
|
||||
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
|
||||
inputStream.Dispose();
|
||||
inputStream?.Dispose();
|
||||
|
||||
// Add unique data from the file
|
||||
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
|
||||
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);
|
||||
}
|
||||
|
||||
@@ -139,7 +139,7 @@ namespace SabreTools.Library.Skippers
|
||||
Directory.CreateDirectory(outDir);
|
||||
|
||||
// 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
|
||||
List<string> headers = DatabaseTools.RetrieveHeadersFromDatabase(Utilities.ByteArrayToString(baseFile.SHA1));
|
||||
|
||||
@@ -2584,15 +2584,15 @@ Some special strings that can be used:
|
||||
/// <summary>
|
||||
/// Get TreatAsFiles from feature list
|
||||
/// </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))
|
||||
asFiles |= TreatAsFiles.AaruFormats;
|
||||
asFiles |= TreatAsFile.AaruFormat;
|
||||
if (GetBoolean(features, ArchivesAsFilesValue))
|
||||
asFiles |= TreatAsFiles.Archives;
|
||||
asFiles |= TreatAsFile.Archive;
|
||||
if (GetBoolean(features, ChdsAsFilesValue))
|
||||
asFiles |= TreatAsFiles.CHDs;
|
||||
asFiles |= TreatAsFile.CHD;
|
||||
|
||||
return asFiles;
|
||||
}
|
||||
|
||||
@@ -60,7 +60,7 @@ namespace SabreTools.Features
|
||||
// Get feature flags
|
||||
bool addBlankFiles = GetBoolean(features, AddBlankFilesValue);
|
||||
bool addFileDates = GetBoolean(features, AddDateValue);
|
||||
TreatAsFiles asFiles = GetTreatAsFiles(features);
|
||||
TreatAsFile asFiles = GetTreatAsFiles(features);
|
||||
bool copyFiles = GetBoolean(features, CopyFilesValue);
|
||||
bool noAutomaticDate = GetBoolean(features, NoAutomaticDateValue);
|
||||
var omitFromScan = GetOmitFromScan(features);
|
||||
|
||||
@@ -60,7 +60,7 @@ namespace SabreTools.Features
|
||||
base.ProcessFeatures(features);
|
||||
|
||||
// Get feature flags
|
||||
TreatAsFiles asFiles = GetTreatAsFiles(features);
|
||||
TreatAsFile asFiles = GetTreatAsFiles(features);
|
||||
bool date = GetBoolean(features, AddDateValue);
|
||||
bool delete = GetBoolean(features, DeleteValue);
|
||||
bool inverse = GetBoolean(features, InverseValue);
|
||||
|
||||
@@ -45,7 +45,7 @@ namespace SabreTools.Features
|
||||
var datfilePaths = DirectoryExtensions.GetFilesOnly(datfiles);
|
||||
|
||||
// Get feature flags
|
||||
TreatAsFiles asFiles = GetTreatAsFiles(features);
|
||||
TreatAsFile asFiles = GetTreatAsFiles(features);
|
||||
bool hashOnly = GetBoolean(features, HashOnlyValue);
|
||||
bool quickScan = GetBoolean(features, QuickValue);
|
||||
var splitType = GetSplitType(features);
|
||||
|
||||
Reference in New Issue
Block a user