mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
[DATabase] Clean up partial classes further
This commit is contained in:
@@ -571,277 +571,6 @@ namespace SabreTools
|
||||
return;
|
||||
}
|
||||
|
||||
#region Init Methods
|
||||
|
||||
/// <summary>
|
||||
/// Wrap importing and updating DATs
|
||||
/// </summary>
|
||||
/// <param name="ignore"></param>
|
||||
private static void InitImport(bool ignore)
|
||||
{
|
||||
IImport imp = new ImportTwo(_datroot, _connectionString, _logger, ignore);
|
||||
imp.UpdateDatabase();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Wrap trimming and merging a single DAT
|
||||
/// </summary>
|
||||
/// <param name="input">Input file or folder to be converted</param>
|
||||
/// <param name="root">Root directory to base path lengths on</param>
|
||||
/// <param name="rename">True is games should not be renamed</param>
|
||||
/// <param name="force">True if forcepacking="unzip" should be included</param>
|
||||
private static void InitTrimMerge(string input, string root, bool rename, bool force)
|
||||
{
|
||||
// Strip any quotations from the name
|
||||
input = input.Replace("\"", "");
|
||||
|
||||
if (input != "" && (File.Exists(input) || Directory.Exists(input)))
|
||||
{
|
||||
TrimMerge sg = new TrimMerge(input, root, rename, force, _logger);
|
||||
sg.Process();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Wrap merging, diffing, and deduping 2 or mor DATs
|
||||
/// </summary>
|
||||
/// <param name="inputs">A List of Strings representing the DATs or DAT folders to be merged</param>
|
||||
/// <param name="name">Internal name of the DAT</param>
|
||||
/// <param name="desc">Description and external name of the DAT</param>
|
||||
/// <param name="cat">Category for the DAT</param>
|
||||
/// <param name="version">Version of the DAT</param>
|
||||
/// <param name="author">Author of the DAT</param>
|
||||
/// <param name="diff">True if a DiffDat of all inputs is wanted, false otherwise</param>
|
||||
/// <param name="dedup">True if the outputted file should remove duplicates, false otherwise</param>
|
||||
/// <param name="bare">True if the date should be omitted from the DAT, false otherwise</param>
|
||||
/// <param name="forceunpack">True if the forcepacking="unzip" tag is to be added, false otherwise</param>
|
||||
/// <param name="old">True if a old-style DAT should be output, false otherwise</param>
|
||||
/// <param name="superdat">True if DATs should be merged in SuperDAT style, false otherwise</param>
|
||||
/// <param name="cascade">True if the outputted diffs should be cascaded, false otherwise</param>
|
||||
/// <param name="inplace">True if cascaded diffs overwrite the source files, false otherwise</param>
|
||||
/// <param name="outdir">Output directory for the files (blank is default)</param>
|
||||
/// <param name="clean">True to clean the game names to WoD standard, false otherwise (default)</param>
|
||||
private static void InitMergeDiff(List<string> inputs, string name, string desc, string cat, string version, string author,
|
||||
bool diff, bool dedup, bool bare, bool forceunpack, bool old, bool superdat, bool cascade, bool inplace, string outdir = "", bool clean = false)
|
||||
{
|
||||
// Make sure there are no folders in inputs
|
||||
List<string> newInputs = new List<string>();
|
||||
foreach (string input in inputs)
|
||||
{
|
||||
if (Directory.Exists(input.Replace("\"", "")))
|
||||
{
|
||||
foreach (string file in Directory.EnumerateFiles(input.Replace("\"", ""), "*", SearchOption.AllDirectories))
|
||||
{
|
||||
try
|
||||
{
|
||||
newInputs.Add(Path.GetFullPath(file) + "¬" + Path.GetFullPath(input.Replace("\"", "")));
|
||||
}
|
||||
catch (PathTooLongException)
|
||||
{
|
||||
_logger.Warning("The path for " + file + " was too long");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.Error(ex.ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (File.Exists(input.Replace("\"", "")))
|
||||
{
|
||||
try
|
||||
{
|
||||
newInputs.Add(Path.GetFullPath(input.Replace("\"", "")) + "¬" + Path.GetDirectoryName(Path.GetFullPath(input.Replace("\"", ""))));
|
||||
}
|
||||
catch (PathTooLongException)
|
||||
{
|
||||
_logger.Warning("The path for " + input.Replace("\"", "") + " was too long");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.Error(ex.ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
MergeDiff md = new MergeDiff(newInputs, name, desc, cat, version, author, diff, dedup, bare, forceunpack, old, superdat, cascade, inplace, outdir, clean, _logger);
|
||||
md.Process();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Wrap splitting a DAT by 2 extensions
|
||||
/// </summary>
|
||||
/// <param name="input">Input file or folder to be split</param>
|
||||
/// <param name="exta">First extension to split on</param>
|
||||
/// <param name="extb">Second extension to split on</param>
|
||||
/// <param name="outdir">Output directory for the split files</param>
|
||||
private static void InitExtSplit(string input, string exta, string extb, string outdir)
|
||||
{
|
||||
// Strip any quotations from the names
|
||||
input = input.Replace("\"", "");
|
||||
exta = exta.Replace("\"", "");
|
||||
extb = extb.Replace("\"", "");
|
||||
outdir = outdir.Replace("\"", "");
|
||||
|
||||
if (input != "" && File.Exists(input))
|
||||
{
|
||||
if (exta == "" || extb == "")
|
||||
{
|
||||
_logger.Warning("Two extensions are needed to split a DAT!");
|
||||
return;
|
||||
}
|
||||
ExtSplit es = new ExtSplit(input, exta, extb, outdir, _logger);
|
||||
es.Split();
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.Log("I'm sorry but " + input + "doesn't exist!");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Wrap splitting a DAT by best available hashes
|
||||
/// </summary>
|
||||
/// <param name="inputs">List of inputs to be used</param>
|
||||
/// <param name="outdir">Output directory for the split files</param>
|
||||
private static void InitHashSplit(List<string> inputs, string outdir)
|
||||
{
|
||||
// Strip any quotations from the names
|
||||
outdir = outdir.Replace("\"", "");
|
||||
|
||||
// Verify the input files
|
||||
foreach (string input in inputs)
|
||||
{
|
||||
if (!File.Exists(input.Replace("\"", "")) && !Directory.Exists(input.Replace("\"", "")))
|
||||
{
|
||||
_logger.Error(input + " is not a valid file or folder!");
|
||||
Console.WriteLine();
|
||||
Build.Help();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// If so, run the program
|
||||
HashSplit hs = new HashSplit(inputs, outdir, _logger);
|
||||
hs.Split();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Wrap getting statistics on a DAT or folder of DATs
|
||||
/// </summary>
|
||||
/// <param name="inputs">List of inputs to be used</param>
|
||||
/// <param name="single">True to show individual DAT statistics, false otherwise</param>
|
||||
private static void InitStats(List<string> inputs, bool single)
|
||||
{
|
||||
List<string> newinputs = new List<string>();
|
||||
|
||||
foreach (string input in inputs)
|
||||
{
|
||||
if (File.Exists(input.Replace("\"", "")))
|
||||
{
|
||||
newinputs.Add(input.Replace("\"", ""));
|
||||
}
|
||||
if (Directory.Exists(input.Replace("\"", "")))
|
||||
{
|
||||
foreach (string file in Directory.GetFiles(input.Replace("\"", ""), "*", SearchOption.AllDirectories))
|
||||
{
|
||||
newinputs.Add(file.Replace("\"", ""));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Logger statlog = new Logger(true, "stats.txt");
|
||||
statlog.Start();
|
||||
Stats stats = new Stats(newinputs, single, statlog);
|
||||
stats.Process();
|
||||
statlog.Close();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Wrap adding a new source to the database
|
||||
/// </summary>
|
||||
/// <param name="name">Source name</param>
|
||||
/// <param name="url">Source URL(s)</param>
|
||||
private static void InitAddSource(string name, string url)
|
||||
{
|
||||
if (DBTools.AddSource(name, url, _connectionString))
|
||||
{
|
||||
_logger.Log("Source " + name + " added!");
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.Error("Source " + name + " could not be added!");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Wrap removing an existing source from the database
|
||||
/// </summary>
|
||||
/// <param name="id">Source ID to be removed from the database</param>
|
||||
private static void InitRemoveSource(string sourceid)
|
||||
{
|
||||
int srcid = -1;
|
||||
if (Int32.TryParse(sourceid, out srcid))
|
||||
{
|
||||
if (DBTools.RemoveSource(srcid, _connectionString))
|
||||
{
|
||||
_logger.Log("Source '" + srcid + "' removed!");
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.Error("Source with id '" + srcid + "' could not be removed.");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.Error("Invalid input");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Wrap adding a new system to the database
|
||||
/// </summary>
|
||||
/// <param name="manufacturer">Manufacturer name</param>
|
||||
/// <param name="system">System name</param>
|
||||
private static void InitAddSystem(string manufacturer, string system)
|
||||
{
|
||||
if (DBTools.AddSystem(manufacturer, system, _connectionString))
|
||||
{
|
||||
_logger.Log("System " + manufacturer + " - " + system + " added!");
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.Error("System " + manufacturer + " - " + system + " could not be added!");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Wrap removing an existing system from the database
|
||||
/// </summary>
|
||||
/// <param name="id">System ID to be removed from the database</param>
|
||||
private static void InitRemoveSystem(string systemid)
|
||||
{
|
||||
int sysid = -1;
|
||||
if (Int32.TryParse(systemid, out sysid))
|
||||
{
|
||||
if (DBTools.RemoveSystem(sysid, _connectionString))
|
||||
{
|
||||
_logger.Log("System '" + sysid + "' removed!");
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.Error("System with id '" + sysid + "' could not be removed.");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.Error("Invalid input");
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Helper methods
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user