mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
[RombaSharp] Get more skeleton methods started
This commit is contained in:
@@ -4,6 +4,7 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Xml;
|
||||
|
||||
namespace SabreTools
|
||||
@@ -435,6 +436,33 @@ namespace SabreTools
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets all valid DATs that match in the DAT root
|
||||
/// </summary>
|
||||
/// <param name="inputs">List of input strings to check for, presumably file names</param>
|
||||
/// <returns>Dictionary of hash/full path for each of the valid DATs</returns>
|
||||
private static Dictionary<string, string> GetValidDats(List<string> inputs)
|
||||
{
|
||||
// Get a dictionary of filenames that actually exist in the DATRoot, logging which ones are not
|
||||
List<string> datRootDats = Directory.EnumerateFiles(_dats, "*", SearchOption.AllDirectories).ToList().ConvertAll(i => i.ToLowerInvariant());
|
||||
Dictionary<string, string> foundDats = new Dictionary<string, string>();
|
||||
foreach (string input in inputs)
|
||||
{
|
||||
if (datRootDats.Contains(input.ToLowerInvariant()))
|
||||
{
|
||||
string fullpath = Path.GetFullPath(datRootDats[datRootDats.IndexOf(input.ToLowerInvariant())]);
|
||||
string sha1 = FileTools.GetSingleFileInfo(fullpath).HashData.SHA1;
|
||||
foundDats.Add(sha1, fullpath);
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.Warning("The file '" + input + "' could not be found in the DAT root");
|
||||
}
|
||||
}
|
||||
|
||||
return foundDats;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,11 @@ namespace SabreTools
|
||||
private static void InitArchive(List<string> inputs, bool onlyNeeded)
|
||||
{
|
||||
_logger.User("This feature is not yet implemented: archive");
|
||||
|
||||
// This should use the same thing as something like in SimpleSort, as in scan the archive and scan the files inside equally
|
||||
// Either during or after, we then check against the database to see if there's any matches. If there's no match and
|
||||
// we say onlyNeeded, then don't add it. If there's no match and not onlyNeeded, add it with no DAT hash. If there's a match,
|
||||
// and it doesn't say exists, add it and change the flag. If there's a match and says exists, skip it.
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -25,6 +30,12 @@ namespace SabreTools
|
||||
private static void InitBuild(List<string> inputs)
|
||||
{
|
||||
_logger.User("This feature is not yet implemented: build");
|
||||
|
||||
// Verify the filenames
|
||||
Dictionary<string, string> foundDats = GetValidDats(inputs);
|
||||
|
||||
// Now that we have the dictionary, we can loop through and output to a new folder for each
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -34,6 +45,9 @@ namespace SabreTools
|
||||
private static void InitDiffDat(string newdat)
|
||||
{
|
||||
_logger.User("This feature is not yet implemented: diffdat");
|
||||
|
||||
// First, we want to read in the DAT. Then for each file listed in the DAT, we check if it's in there or not.
|
||||
// If it is in there, we add it to an output DAT. If it's not, we skip. Then we output the DAT.
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -63,6 +77,9 @@ namespace SabreTools
|
||||
private static void InitFixdat(List<string> inputs)
|
||||
{
|
||||
_logger.User("This feature is not yet implemented: fixdat");
|
||||
|
||||
// Verify the filenames
|
||||
Dictionary<string, string> foundDats = GetValidDats(inputs);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -81,6 +98,9 @@ namespace SabreTools
|
||||
private static void InitMiss(List<string> inputs)
|
||||
{
|
||||
_logger.User("This feature is not yet implemented: miss");
|
||||
|
||||
// Verify the filenames
|
||||
Dictionary<string, string> foundDats = GetValidDats(inputs);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
Reference in New Issue
Block a user