mirror of
https://github.com/sp-tarkov/loot-dump-processor.git
synced 2025-02-13 09:50:44 -05:00
The changes include: - Replaced Newtonsoft.Json with System.Text.Json for serialization - Removed redundant JsonProperty attributes and simplified model classes - Converted static fields to constants where appropriate - Improved code formatting and readability - Simplified method bodies and expressions - Removed unused imports and cleaned up namespaces
40 lines
1.4 KiB
C#
40 lines
1.4 KiB
C#
using Microsoft.Extensions.Logging;
|
|
|
|
namespace LootDumpProcessor.Process.Reader.PreProcess;
|
|
|
|
public abstract class AbstractPreProcessReader : IPreProcessReader
|
|
{
|
|
protected readonly string _tempFolder;
|
|
|
|
public AbstractPreProcessReader(ILogger logger)
|
|
{
|
|
var tempFolder = LootDumpProcessorContext.GetConfig().ReaderConfig.PreProcessorConfig?.PreProcessorTempFolder;
|
|
if (string.IsNullOrEmpty(tempFolder))
|
|
{
|
|
tempFolder = GetBaseDirectory();
|
|
logger.LogWarning(
|
|
"No temp folder was assigned preProcessorTempFolder in PreProcessorConfig, defaulting to {tempFolder}",
|
|
tempFolder
|
|
);
|
|
}
|
|
|
|
// Cleanup the temp directory before starting the process
|
|
if (Directory.Exists(tempFolder)) Directory.Delete(tempFolder, true);
|
|
|
|
Directory.CreateDirectory(tempFolder);
|
|
|
|
_tempFolder = tempFolder;
|
|
}
|
|
|
|
public abstract string GetHandleExtension();
|
|
public abstract bool TryPreProcess(string file, out List<string> files, out List<string> directories);
|
|
|
|
protected string GetBaseDirectory() =>
|
|
$@"{Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)}\SPT\tmp\PreProcessor";
|
|
|
|
public void Dispose()
|
|
{
|
|
if (LootDumpProcessorContext.GetConfig().ReaderConfig.PreProcessorConfig?.CleanupTempFolderAfterProcess ?? true)
|
|
Directory.Delete(_tempFolder, true);
|
|
}
|
|
} |