mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
[SimpleSort] Allow for granular header checking in SimpleSort
This commit is contained in:
@@ -178,7 +178,7 @@ namespace SabreTools
|
|||||||
|
|
||||||
// Create the sorting object to use and rebuild the needed files
|
// Create the sorting object to use and rebuild the needed files
|
||||||
ArchiveScanLevel asl = ArchiveTools.GetArchiveScanLevelFromNumbers(0, 0, 0, 0);
|
ArchiveScanLevel asl = ArchiveTools.GetArchiveScanLevelFromNumbers(0, 0, 0, 0);
|
||||||
SimpleSort ss = new SimpleSort(need, onlyDirs, _depots.Keys.ToList()[0], _tmpdir, false, false, false, false, false, true, true, asl, false, _logger);
|
SimpleSort ss = new SimpleSort(need, onlyDirs, _depots.Keys.ToList()[0], _tmpdir, false, false, false, false, false, true, true, asl, false, null, _logger);
|
||||||
ss.StartProcessing();
|
ss.StartProcessing();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -217,7 +217,7 @@ namespace SabreTools
|
|||||||
List<string> onlineDepots = _depots.Where(d => d.Value.Item2).Select(d => d.Key).ToList();
|
List<string> onlineDepots = _depots.Where(d => d.Value.Item2).Select(d => d.Key).ToList();
|
||||||
|
|
||||||
// Now scan all of those depots and rebuild
|
// Now scan all of those depots and rebuild
|
||||||
SimpleSort ss = new SimpleSort(datFile, onlineDepots, outputFolder, _tmpdir, false, false, false, false, false, copy, copy, asl, false, _logger);
|
SimpleSort ss = new SimpleSort(datFile, onlineDepots, outputFolder, _tmpdir, false, false, false, false, false, copy, copy, asl, false, null, _logger);
|
||||||
ss.StartProcessing();
|
ss.StartProcessing();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -293,6 +293,7 @@ namespace SabreTools.Helper
|
|||||||
helptext.Add(" -tgz Enable TorrentGZ output");
|
helptext.Add(" -tgz Enable TorrentGZ output");
|
||||||
helptext.Add(" -r, --romba Enable Romba depot dir output");
|
helptext.Add(" -r, --romba Enable Romba depot dir output");
|
||||||
helptext.Add(" -do, --directory Output files as uncompressed");
|
helptext.Add(" -do, --directory Output files as uncompressed");
|
||||||
|
helptext.Add(" -h=, --header= Set a header skipper to use, blank means all");
|
||||||
helptext.Add(" -7z={0} Set scanning level for 7z archives");
|
helptext.Add(" -7z={0} Set scanning level for 7z archives");
|
||||||
helptext.Add(" -gz={2} Set scanning level for GZip archives");
|
helptext.Add(" -gz={2} Set scanning level for GZip archives");
|
||||||
helptext.Add(" -rar={2} Set scanning level for RAR archives");
|
helptext.Add(" -rar={2} Set scanning level for RAR archives");
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ namespace SabreTools.Helper
|
|||||||
private bool _romba;
|
private bool _romba;
|
||||||
private bool _updateDat;
|
private bool _updateDat;
|
||||||
private ArchiveScanLevel _archiveScanLevel;
|
private ArchiveScanLevel _archiveScanLevel;
|
||||||
|
private string _headerToCheckAgainst;
|
||||||
private Logger _logger;
|
private Logger _logger;
|
||||||
private int _maxDegreeOfParallelism = 4; // Hardcoded for now, should be an input later
|
private int _maxDegreeOfParallelism = 4; // Hardcoded for now, should be an input later
|
||||||
|
|
||||||
@@ -46,10 +47,11 @@ namespace SabreTools.Helper
|
|||||||
/// <param name="romba">True if files should be output in Romba depot folders, false otherwise</param>
|
/// <param name="romba">True if files should be output in Romba depot folders, false otherwise</param>
|
||||||
/// <param name="archiveScanLevel">ArchiveScanLevel representing the archive handling levels</param>
|
/// <param name="archiveScanLevel">ArchiveScanLevel representing the archive handling levels</param>
|
||||||
/// <param name="updateDat">True if the updated DAT should be output, false otherwise</param>
|
/// <param name="updateDat">True if the updated DAT should be output, false otherwise</param>
|
||||||
|
/// <param name="headerToCheckAgainst">Populated string representing the name of the skipper to use, a blank string to use the first available checker, null otherwise</param>
|
||||||
/// <param name="logger">Logger object for file and console output</param>
|
/// <param name="logger">Logger object for file and console output</param>
|
||||||
public SimpleSort(DatFile datdata, List<string> inputs, string outDir, string tempDir,
|
public SimpleSort(DatFile datdata, List<string> inputs, string outDir, string tempDir,
|
||||||
bool quickScan, bool date, bool toFolder, bool verify, bool delete, bool tgz, bool romba,
|
bool quickScan, bool date, bool toFolder, bool verify, bool delete, bool tgz, bool romba,
|
||||||
ArchiveScanLevel archiveScanLevel, bool updateDat, Logger logger)
|
ArchiveScanLevel archiveScanLevel, bool updateDat, string headerToCheckAgainst, Logger logger)
|
||||||
{
|
{
|
||||||
_datdata = datdata;
|
_datdata = datdata;
|
||||||
_inputs = inputs;
|
_inputs = inputs;
|
||||||
@@ -64,6 +66,7 @@ namespace SabreTools.Helper
|
|||||||
_romba = romba;
|
_romba = romba;
|
||||||
_archiveScanLevel = archiveScanLevel;
|
_archiveScanLevel = archiveScanLevel;
|
||||||
_updateDat = updateDat;
|
_updateDat = updateDat;
|
||||||
|
_headerToCheckAgainst = headerToCheckAgainst;
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
|
|
||||||
_cursorTop = Console.CursorTop;
|
_cursorTop = Console.CursorTop;
|
||||||
@@ -133,7 +136,7 @@ namespace SabreTools.Helper
|
|||||||
{
|
{
|
||||||
_datdata.PopulateDatFromDir(input, false /* noMD5 */, false /* noSHA1 */, true /* bare */, false /* archivesAsFiles */,
|
_datdata.PopulateDatFromDir(input, false /* noMD5 */, false /* noSHA1 */, true /* bare */, false /* archivesAsFiles */,
|
||||||
true /* enableGzip */, false /* addBlanks */, false /* addDate */, "" /* tempDir */, false /* copyFiles */,
|
true /* enableGzip */, false /* addBlanks */, false /* addDate */, "" /* tempDir */, false /* copyFiles */,
|
||||||
null /* headerToCheckAgainst */, 4 /* maxDegreeOfParallelism */, _logger);
|
_headerToCheckAgainst, 4 /* maxDegreeOfParallelism */, _logger);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Setup the fixdat
|
// Setup the fixdat
|
||||||
@@ -369,7 +372,7 @@ namespace SabreTools.Helper
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Now get the transformed file if it exists
|
// Now get the transformed file if it exists
|
||||||
SkipperRule rule = Skipper.GetMatchingRule(input, "", _logger);
|
SkipperRule rule = Skipper.GetMatchingRule(input, _headerToCheckAgainst, _logger);
|
||||||
|
|
||||||
// If we have have a non-empty rule, apply it
|
// If we have have a non-empty rule, apply it
|
||||||
if (rule.Tests != null && rule.Tests.Count != 0)
|
if (rule.Tests != null && rule.Tests.Count != 0)
|
||||||
@@ -824,7 +827,7 @@ namespace SabreTools.Helper
|
|||||||
|
|
||||||
// Now attempt to see if the file has a header
|
// Now attempt to see if the file has a header
|
||||||
FileStream input = File.OpenRead(file);
|
FileStream input = File.OpenRead(file);
|
||||||
SkipperRule rule = Skipper.GetMatchingRule(input, "", _logger);
|
SkipperRule rule = Skipper.GetMatchingRule(input, _headerToCheckAgainst, _logger);
|
||||||
|
|
||||||
// If there's a match, get the new information from the stream
|
// If there's a match, get the new information from the stream
|
||||||
if (rule.Tests != null && rule.Tests.Count != 0)
|
if (rule.Tests != null && rule.Tests.Count != 0)
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ namespace SabreTools
|
|||||||
logger.User("Organizing complete in " + DateTime.Now.Subtract(start).ToString(@"hh\:mm\:ss\.fffff"));
|
logger.User("Organizing complete in " + DateTime.Now.Subtract(start).ToString(@"hh\:mm\:ss\.fffff"));
|
||||||
|
|
||||||
SimpleSort ss = new SimpleSort(datdata, newinputs, outDir, tempDir, false, false,
|
SimpleSort ss = new SimpleSort(datdata, newinputs, outDir, tempDir, false, false,
|
||||||
false, false, delete, tgz, romba, asl, false, logger);
|
false, false, delete, tgz, romba, asl, false, null, logger);
|
||||||
return ss.Convert();
|
return ss.Convert();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -304,9 +304,10 @@ namespace SabreTools
|
|||||||
/// <param name="rar">Integer representing the archive handling level for RAR</param>
|
/// <param name="rar">Integer representing the archive handling level for RAR</param>
|
||||||
/// <param name="zip">Integer representing the archive handling level for Zip</param>
|
/// <param name="zip">Integer representing the archive handling level for Zip</param>
|
||||||
/// <param name="updateDat">True if the updated DAT should be output, false otherwise</param>
|
/// <param name="updateDat">True if the updated DAT should be output, false otherwise</param>
|
||||||
|
/// <param name="headerToCheckAgainst">Populated string representing the name of the skipper to use, a blank string to use the first available checker, null otherwise</param>
|
||||||
/// <param name="logger">Logger object for file and console output</param>
|
/// <param name="logger">Logger object for file and console output</param>
|
||||||
private static void InitSortVerify(List<string> datfiles, List<string> inputs, string outDir, string tempDir, bool quickScan, bool date,
|
private static void InitSortVerify(List<string> datfiles, List<string> inputs, string outDir, string tempDir, bool quickScan, bool date,
|
||||||
bool toFolder, bool verify, bool delete, bool tgz, bool romba, int sevenzip, int gz, int rar, int zip, bool updateDat, Logger logger)
|
bool toFolder, bool verify, bool delete, bool tgz, bool romba, int sevenzip, int gz, int rar, int zip, bool updateDat, string headerToCheckAgainst, Logger logger)
|
||||||
{
|
{
|
||||||
// Get the archive scanning level
|
// Get the archive scanning level
|
||||||
ArchiveScanLevel asl = ArchiveTools.GetArchiveScanLevelFromNumbers(sevenzip, gz, rar, zip);
|
ArchiveScanLevel asl = ArchiveTools.GetArchiveScanLevelFromNumbers(sevenzip, gz, rar, zip);
|
||||||
@@ -323,7 +324,7 @@ namespace SabreTools
|
|||||||
logger.User("Populating complete in " + DateTime.Now.Subtract(start).ToString(@"hh\:mm\:ss\.fffff"));
|
logger.User("Populating complete in " + DateTime.Now.Subtract(start).ToString(@"hh\:mm\:ss\.fffff"));
|
||||||
|
|
||||||
SimpleSort ss = new SimpleSort(datdata, inputs, outDir, tempDir, quickScan, date,
|
SimpleSort ss = new SimpleSort(datdata, inputs, outDir, tempDir, quickScan, date,
|
||||||
toFolder, verify, delete, tgz, romba, asl, updateDat, logger);
|
toFolder, verify, delete, tgz, romba, asl, updateDat, headerToCheckAgainst, logger);
|
||||||
ss.StartProcessing();
|
ss.StartProcessing();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -56,7 +56,8 @@ namespace SabreTools
|
|||||||
gz = 2,
|
gz = 2,
|
||||||
rar = 2,
|
rar = 2,
|
||||||
zip = 0;
|
zip = 0;
|
||||||
string outDir = "",
|
string header = "",
|
||||||
|
outDir = "",
|
||||||
tempDir = "";
|
tempDir = "";
|
||||||
List<string> inputs = new List<string>();
|
List<string> inputs = new List<string>();
|
||||||
List<string> datfiles = new List<string>();
|
List<string> datfiles = new List<string>();
|
||||||
@@ -116,6 +117,11 @@ namespace SabreTools
|
|||||||
gz = 2;
|
gz = 2;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case "-he":
|
||||||
|
case "--header":
|
||||||
|
i++;
|
||||||
|
header = args[i];
|
||||||
|
break;
|
||||||
case "-out":
|
case "-out":
|
||||||
case "--out":
|
case "--out":
|
||||||
i++;
|
i++;
|
||||||
@@ -202,6 +208,10 @@ namespace SabreTools
|
|||||||
gz = 2;
|
gz = 2;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case "-h":
|
||||||
|
case "--header":
|
||||||
|
header = split[1];
|
||||||
|
break;
|
||||||
case "-out":
|
case "-out":
|
||||||
case "--out":
|
case "--out":
|
||||||
outDir = split[1];
|
outDir = split[1];
|
||||||
@@ -290,7 +300,7 @@ namespace SabreTools
|
|||||||
if (datfiles.Count > 0)
|
if (datfiles.Count > 0)
|
||||||
{
|
{
|
||||||
InitSortVerify(datfiles, inputs, outDir, tempDir, quickScan, date, toFolder,
|
InitSortVerify(datfiles, inputs, outDir, tempDir, quickScan, date, toFolder,
|
||||||
verify, delete, tgz, romba, sevenzip, gz, rar, zip, updateDat, logger);
|
verify, delete, tgz, romba, sevenzip, gz, rar, zip, updateDat, header, logger);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -364,7 +374,7 @@ namespace SabreTools
|
|||||||
logger.User("Organizing complete in " + DateTime.Now.Subtract(start).ToString(@"hh\:mm\:ss\.fffff"));
|
logger.User("Organizing complete in " + DateTime.Now.Subtract(start).ToString(@"hh\:mm\:ss\.fffff"));
|
||||||
|
|
||||||
SimpleSort ss = new SimpleSort(datdata, newinputs, outDir, tempDir, false, false,
|
SimpleSort ss = new SimpleSort(datdata, newinputs, outDir, tempDir, false, false,
|
||||||
false, false, delete, tgz, romba, asl, false, logger);
|
false, false, delete, tgz, romba, asl, false, null, logger);
|
||||||
return ss.Convert();
|
return ss.Convert();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -387,9 +397,10 @@ namespace SabreTools
|
|||||||
/// <param name="rar">Integer representing the archive handling level for RAR</param>
|
/// <param name="rar">Integer representing the archive handling level for RAR</param>
|
||||||
/// <param name="zip">Integer representing the archive handling level for Zip</param>
|
/// <param name="zip">Integer representing the archive handling level for Zip</param>
|
||||||
/// <param name="updateDat">True if the updated DAT should be output, false otherwise</param>
|
/// <param name="updateDat">True if the updated DAT should be output, false otherwise</param>
|
||||||
|
/// <param name="headerToCheckAgainst">Populated string representing the name of the skipper to use, a blank string to use the first available checker, null otherwise</param>
|
||||||
/// <param name="logger">Logger object for file and console output</param>
|
/// <param name="logger">Logger object for file and console output</param>
|
||||||
private static void InitSortVerify(List<string> datfiles, List<string> inputs, string outDir, string tempDir, bool quickScan, bool date,
|
private static void InitSortVerify(List<string> datfiles, List<string> inputs, string outDir, string tempDir, bool quickScan, bool date,
|
||||||
bool toFolder, bool verify, bool delete, bool tgz, bool romba, int sevenzip, int gz, int rar, int zip, bool updateDat, Logger logger)
|
bool toFolder, bool verify, bool delete, bool tgz, bool romba, int sevenzip, int gz, int rar, int zip, bool updateDat, string headerToCheckAgainst, Logger logger)
|
||||||
{
|
{
|
||||||
// Get the archive scanning level
|
// Get the archive scanning level
|
||||||
ArchiveScanLevel asl = ArchiveTools.GetArchiveScanLevelFromNumbers(sevenzip, gz, rar, zip);
|
ArchiveScanLevel asl = ArchiveTools.GetArchiveScanLevelFromNumbers(sevenzip, gz, rar, zip);
|
||||||
@@ -406,7 +417,7 @@ namespace SabreTools
|
|||||||
logger.User("Populating complete in " + DateTime.Now.Subtract(start).ToString(@"hh\:mm\:ss\.fffff"));
|
logger.User("Populating complete in " + DateTime.Now.Subtract(start).ToString(@"hh\:mm\:ss\.fffff"));
|
||||||
|
|
||||||
SimpleSort ss = new SimpleSort(datdata, inputs, outDir, tempDir, quickScan, date,
|
SimpleSort ss = new SimpleSort(datdata, inputs, outDir, tempDir, quickScan, date,
|
||||||
toFolder, verify, delete, tgz, romba, asl, updateDat, logger);
|
toFolder, verify, delete, tgz, romba, asl, updateDat, headerToCheckAgainst, logger);
|
||||||
ss.StartProcessing();
|
ss.StartProcessing();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user