Convert header filename to a key

This commit is contained in:
Matt Nadareski
2024-03-10 21:41:49 -04:00
parent 91875b4eaf
commit 6b17eb456b
15 changed files with 80 additions and 77 deletions

View File

@@ -250,7 +250,7 @@ namespace SabreTools.DatFiles
if (rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) == null && !rom.HasHashes())
{
// No-op, just catch it so it doesn't go further
logger.Verbose($"{Header.FileName}: Entry with only SHA-1 found - '{rom.GetName()}'");
logger.Verbose($"{Header.GetFieldValue<string?>(DatHeader.FileNameKey)}: Entry with only SHA-1 found - '{rom.GetName()}'");
}
// If we have a rom and it's missing size AND the hashes match a 0-byte file, fill in the rest of the info
@@ -271,7 +271,7 @@ namespace SabreTools.DatFiles
// If the file has no size and it's not the above case, skip and log
else if (rom.GetFieldValue<ItemStatus>(Models.Metadata.Rom.StatusKey) != ItemStatus.Nodump && (rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) == 0 || rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) == null))
{
logger.Verbose($"{Header.FileName}: Incomplete entry for '{rom.GetName()}' will be output as nodump");
logger.Verbose($"{Header.GetFieldValue<string?>(DatHeader.FileNameKey)}: Incomplete entry for '{rom.GetName()}' will be output as nodump");
rom.SetFieldValue<ItemStatus>(Models.Metadata.Rom.StatusKey, ItemStatus.Nodump);
}
@@ -280,7 +280,7 @@ namespace SabreTools.DatFiles
&& rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) != null && rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) > 0
&& !rom.HasHashes())
{
logger.Verbose($"{Header.FileName}: Incomplete entry for '{rom.GetName()}' will be output as nodump");
logger.Verbose($"{Header.GetFieldValue<string?>(DatHeader.FileNameKey)}: Incomplete entry for '{rom.GetName()}' will be output as nodump");
rom.SetFieldValue<ItemStatus>(Models.Metadata.Rom.StatusKey, ItemStatus.Nodump);
}

View File

@@ -23,6 +23,11 @@ namespace SabreTools.DatFiles
/// </summary>
public const string AddExtensionKey = "ADDEXTENSION";
/// <summary>
/// External name of the DAT
/// </summary>
public const string FileNameKey = "FILENAME";
/// <summary>
/// Output the machine name
/// </summary>
@@ -62,13 +67,6 @@ namespace SabreTools.DatFiles
#region Fields
/// <summary>
/// External name of the DAT
/// </summary>
[JsonProperty("filename", DefaultValueHandling = DefaultValueHandling.Include)]
[XmlElement("filename")]
public string? FileName { get; set; }
/// <summary>
/// Read or write format
/// </summary>
@@ -168,7 +166,6 @@ namespace SabreTools.DatFiles
{
var header = new DatHeader()
{
FileName = this.FileName,
DatFormat = this.DatFormat,
InputDepot = this.InputDepot?.Clone() as DepotInformation,
@@ -185,6 +182,7 @@ namespace SabreTools.DatFiles
header.SetFieldValue<bool?>(Models.Metadata.Header.DebugKey, GetFieldValue<bool?>(Models.Metadata.Header.DebugKey));
header.SetFieldValue<string?>(Models.Metadata.Header.DescriptionKey, GetFieldValue<string?>(Models.Metadata.Header.DescriptionKey));
header.SetFieldValue<string?>(Models.Metadata.Header.EmailKey, GetFieldValue<string?>(Models.Metadata.Header.EmailKey));
header.SetFieldValue<string?>(DatHeader.FileNameKey, GetFieldValue<string?>(DatHeader.FileNameKey));
header.SetFieldValue<MergingFlag>(Models.Metadata.Header.ForceMergingKey, GetFieldValue<MergingFlag>(Models.Metadata.Header.ForceMergingKey));
header.SetFieldValue<NodumpFlag>(Models.Metadata.Header.ForceNodumpKey, GetFieldValue<NodumpFlag>(Models.Metadata.Header.ForceNodumpKey));
header.SetFieldValue<PackingFlag>(Models.Metadata.Header.ForcePackingKey, GetFieldValue<PackingFlag>(Models.Metadata.Header.ForcePackingKey));
@@ -227,7 +225,6 @@ namespace SabreTools.DatFiles
{
var header = new DatHeader()
{
FileName = this.FileName,
DatFormat = this.DatFormat,
};
header.SetFieldValue<string?>(Models.Metadata.Header.AuthorKey, GetFieldValue<string?>(Models.Metadata.Header.AuthorKey));
@@ -236,6 +233,7 @@ namespace SabreTools.DatFiles
header.SetFieldValue<string?>(Models.Metadata.Header.DateKey, GetFieldValue<string?>(Models.Metadata.Header.DateKey));
header.SetFieldValue<string?>(Models.Metadata.Header.DescriptionKey, GetFieldValue<string?>(Models.Metadata.Header.DescriptionKey));
header.SetFieldValue<string?>(Models.Metadata.Header.EmailKey, GetFieldValue<string?>(Models.Metadata.Header.EmailKey));
header.SetFieldValue<string?>(DatHeader.FileNameKey, GetFieldValue<string?>(DatHeader.FileNameKey));
header.SetFieldValue<MergingFlag>(Models.Metadata.Header.ForceMergingKey, GetFieldValue<MergingFlag>(Models.Metadata.Header.ForceMergingKey));
header.SetFieldValue<NodumpFlag>(Models.Metadata.Header.ForceNodumpKey, GetFieldValue<NodumpFlag>(Models.Metadata.Header.ForceNodumpKey));
header.SetFieldValue<PackingFlag>(Models.Metadata.Header.ForcePackingKey, GetFieldValue<PackingFlag>(Models.Metadata.Header.ForcePackingKey));
@@ -283,8 +281,8 @@ namespace SabreTools.DatFiles
if (datHeader == null)
return;
if (!string.IsNullOrEmpty(datHeader.FileName))
FileName = datHeader.FileName;
if (!string.IsNullOrEmpty(datHeader.GetFieldValue<string?>(DatHeader.FileNameKey)))
SetFieldValue<string?>(DatHeader.FileNameKey, datHeader.GetFieldValue<string?>(DatHeader.FileNameKey));
if (!string.IsNullOrEmpty(datHeader.GetFieldValue<string?>(Models.Metadata.Header.NameKey)))
SetFieldValue<string?>(Models.Metadata.Header.NameKey, datHeader.GetFieldValue<string?>(Models.Metadata.Header.NameKey));
@@ -859,7 +857,9 @@ namespace SabreTools.DatFiles
/// <returns>String containing the new filename</returns>
private string CreateOutFileNamesHelper(string outDir, string extension, bool overwrite)
{
string? filename = string.IsNullOrEmpty(FileName) ? GetFieldValue<string?>(Models.Metadata.Header.DescriptionKey) : FileName;
string? filename = string.IsNullOrEmpty(GetFieldValue<string?>(DatHeader.FileNameKey))
? GetFieldValue<string?>(Models.Metadata.Header.DescriptionKey)
: GetFieldValue<string?>(DatHeader.FileNameKey);
// Strip off the extension if it's a holdover from the DAT
if (Utilities.HasValidDatExtension(filename))

View File

@@ -126,7 +126,7 @@ namespace SabreTools.DatFiles.Formats
{
Name = rom.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.NameKey),
Title = rom.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.DescriptionKey),
Emulator = Header.FileName,
Emulator = Header.GetFieldValue<string?>(DatHeader.FileNameKey),
CloneOf = rom.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.CloneOfKey),
Year = rom.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.YearKey),
Manufacturer = rom.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.ManufacturerKey),

View File

@@ -159,7 +159,7 @@ namespace SabreTools.DatFiles.Formats
{
var row = new Models.SeparatedValue.Row
{
FileName = Header.FileName,
FileName = Header.GetFieldValue<string?>(DatHeader.FileNameKey),
InternalName = Header.GetFieldValue<string?>(Models.Metadata.Header.NameKey),
Description = Header.GetFieldValue<string?>(Models.Metadata.Header.DescriptionKey),
GameName = disk.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.NameKey),
@@ -187,7 +187,7 @@ namespace SabreTools.DatFiles.Formats
{
var row = new Models.SeparatedValue.Row
{
FileName = Header.FileName,
FileName = Header.GetFieldValue<string?>(DatHeader.FileNameKey),
InternalName = Header.GetFieldValue<string?>(Models.Metadata.Header.NameKey),
Description = Header.GetFieldValue<string?>(Models.Metadata.Header.DescriptionKey),
GameName = media.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.NameKey),
@@ -215,7 +215,7 @@ namespace SabreTools.DatFiles.Formats
{
var row = new Models.SeparatedValue.Row
{
FileName = Header.FileName,
FileName = Header.GetFieldValue<string?>(DatHeader.FileNameKey),
InternalName = Header.GetFieldValue<string?>(Models.Metadata.Header.NameKey),
Description = Header.GetFieldValue<string?>(Models.Metadata.Header.DescriptionKey),
GameName = rom.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.NameKey),