mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Remove public add-to-key functionality
This commit is contained in:
@@ -152,7 +152,7 @@ namespace SabreTools.DatTools
|
||||
/// <param name="datFile">Current DatFile object to run operations on</param>
|
||||
internal void CleanDatItems(DatFile datFile)
|
||||
{
|
||||
List<string> keys = [.. datFile.Items.Keys];
|
||||
List<string> keys = [.. datFile.Items.SortedKeys];
|
||||
foreach (string key in keys)
|
||||
{
|
||||
// For every item in the current key
|
||||
|
||||
@@ -230,7 +230,7 @@ namespace SabreTools.DatTools
|
||||
{
|
||||
// Add the list if it doesn't exist already
|
||||
Rom rom = baseFile.ConvertToRom();
|
||||
datFile.Add(rom.GetKey(ItemKey.CRC), rom);
|
||||
datFile.AddItem(rom, statsOnly: false);
|
||||
_staticLogger.Verbose($"File added: {Path.GetFileNameWithoutExtension(item)}");
|
||||
}
|
||||
else
|
||||
@@ -387,7 +387,7 @@ namespace SabreTools.DatTools
|
||||
blankRom.SetName(romname);
|
||||
blankRom.SetFieldValue<Machine?>(DatItem.MachineKey, blankMachine);
|
||||
|
||||
datFile.Add("null", blankRom);
|
||||
datFile.AddItem(blankRom, statsOnly: false);
|
||||
#if NET40_OR_GREATER || NETCOREAPP
|
||||
});
|
||||
#else
|
||||
@@ -440,8 +440,7 @@ namespace SabreTools.DatTools
|
||||
SetDatItemInfo(datFile, datItem, item, parent, basepath);
|
||||
|
||||
// Add the file information to the DAT
|
||||
string key = datItem.GetKey(ItemKey.CRC);
|
||||
datFile.Add(key, datItem);
|
||||
datFile.AddItem(datItem, statsOnly: false);
|
||||
|
||||
_staticLogger.Verbose($"File added: {datItem.GetName() ?? string.Empty}");
|
||||
}
|
||||
|
||||
@@ -166,7 +166,7 @@ namespace SabreTools.DatTools
|
||||
if (itemDictionary == null || (MachineFieldNames.Count == 0 && ItemFieldNames.Count == 0))
|
||||
return;
|
||||
|
||||
foreach (var key in itemDictionary.Keys)
|
||||
foreach (var key in itemDictionary.SortedKeys)
|
||||
{
|
||||
List<DatItem>? items = itemDictionary.GetItemsForBucket(key);
|
||||
if (items == null)
|
||||
|
||||
@@ -2,8 +2,8 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
#if NET40_OR_GREATER || NETCOREAPP
|
||||
using System.Net;
|
||||
using System.Threading.Tasks;
|
||||
#endif
|
||||
using SabreTools.Core.Tools;
|
||||
@@ -66,11 +66,11 @@ namespace SabreTools.DatTools
|
||||
|
||||
// Now separate the roms accordingly
|
||||
#if NET452_OR_GREATER || NETCOREAPP
|
||||
Parallel.ForEach(datFile.Items.Keys, Core.Globals.ParallelOptions, key =>
|
||||
Parallel.ForEach(datFile.Items.SortedKeys, Core.Globals.ParallelOptions, key =>
|
||||
#elif NET40_OR_GREATER
|
||||
Parallel.ForEach(datFile.Items.Keys, key =>
|
||||
Parallel.ForEach(datFile.Items.SortedKeys, key =>
|
||||
#else
|
||||
foreach (var key in datFile.Items.Keys)
|
||||
foreach (var key in datFile.Items.SortedKeys)
|
||||
#endif
|
||||
{
|
||||
var items = datFile.GetItemsForBucket(key);
|
||||
@@ -85,16 +85,16 @@ namespace SabreTools.DatTools
|
||||
{
|
||||
if (Array.IndexOf(newExtA, (item.GetName() ?? string.Empty).GetNormalizedExtension()) > -1)
|
||||
{
|
||||
extADat.Add(key, item);
|
||||
extADat.AddItem(item, statsOnly: false);
|
||||
}
|
||||
if (Array.IndexOf(newExtB, (item.GetName() ?? string.Empty).GetNormalizedExtension()) > -1)
|
||||
{
|
||||
extBDat.Add(key, item);
|
||||
extBDat.AddItem(item, statsOnly: false);
|
||||
}
|
||||
else
|
||||
{
|
||||
extADat.Add(key, item);
|
||||
extBDat.Add(key, item);
|
||||
extADat.AddItem(item, statsOnly: false);
|
||||
extBDat.AddItem(item, statsOnly: false);
|
||||
}
|
||||
}
|
||||
#if NET40_OR_GREATER || NETCOREAPP
|
||||
@@ -242,11 +242,11 @@ namespace SabreTools.DatTools
|
||||
|
||||
// Now populate each of the DAT objects in turn
|
||||
#if NET452_OR_GREATER || NETCOREAPP
|
||||
Parallel.ForEach(datFile.Items.Keys, Core.Globals.ParallelOptions, key =>
|
||||
Parallel.ForEach(datFile.Items.SortedKeys, Core.Globals.ParallelOptions, key =>
|
||||
#elif NET40_OR_GREATER
|
||||
Parallel.ForEach(datFile.Items.Keys, key =>
|
||||
Parallel.ForEach(datFile.Items.SortedKeys, key =>
|
||||
#else
|
||||
foreach (var key in datFile.Items.Keys)
|
||||
foreach (var key in datFile.Items.SortedKeys)
|
||||
#endif
|
||||
{
|
||||
var items = datFile.GetItemsForBucket(key);
|
||||
@@ -263,49 +263,49 @@ namespace SabreTools.DatTools
|
||||
{
|
||||
case Disk disk:
|
||||
if (disk.GetStringFieldValue(Models.Metadata.Disk.StatusKey).AsEnumValue<ItemStatus>() == ItemStatus.Nodump)
|
||||
fieldDats[Models.Metadata.Disk.StatusKey].Add(key, item);
|
||||
fieldDats[Models.Metadata.Disk.StatusKey].AddItem(item, statsOnly: false);
|
||||
else if (!string.IsNullOrEmpty(disk.GetStringFieldValue(Models.Metadata.Disk.SHA1Key)))
|
||||
fieldDats[Models.Metadata.Disk.SHA1Key].Add(key, item);
|
||||
fieldDats[Models.Metadata.Disk.SHA1Key].AddItem(item, statsOnly: false);
|
||||
else if (!string.IsNullOrEmpty(disk.GetStringFieldValue(Models.Metadata.Disk.MD5Key)))
|
||||
fieldDats[Models.Metadata.Disk.MD5Key].Add(key, item);
|
||||
fieldDats[Models.Metadata.Disk.MD5Key].AddItem(item, statsOnly: false);
|
||||
else if (!string.IsNullOrEmpty(disk.GetStringFieldValue(Models.Metadata.Disk.MD5Key)))
|
||||
fieldDats[Models.Metadata.Disk.MD5Key].Add(key, item);
|
||||
fieldDats[Models.Metadata.Disk.MD5Key].AddItem(item, statsOnly: false);
|
||||
else
|
||||
fieldDats["null"].Add(key, item);
|
||||
fieldDats["null"].AddItem(item, statsOnly: false);
|
||||
break;
|
||||
|
||||
case Media media:
|
||||
if (!string.IsNullOrEmpty(media.GetStringFieldValue(Models.Metadata.Media.SHA256Key)))
|
||||
fieldDats[Models.Metadata.Media.SHA256Key].Add(key, item);
|
||||
fieldDats[Models.Metadata.Media.SHA256Key].AddItem(item, statsOnly: false);
|
||||
else if (!string.IsNullOrEmpty(media.GetStringFieldValue(Models.Metadata.Media.SHA1Key)))
|
||||
fieldDats[Models.Metadata.Media.SHA1Key].Add(key, item);
|
||||
fieldDats[Models.Metadata.Media.SHA1Key].AddItem(item, statsOnly: false);
|
||||
else if (!string.IsNullOrEmpty(media.GetStringFieldValue(Models.Metadata.Media.MD5Key)))
|
||||
fieldDats[Models.Metadata.Media.MD5Key].Add(key, item);
|
||||
fieldDats[Models.Metadata.Media.MD5Key].AddItem(item, statsOnly: false);
|
||||
else
|
||||
fieldDats["null"].Add(key, item);
|
||||
fieldDats["null"].AddItem(item, statsOnly: false);
|
||||
break;
|
||||
|
||||
case Rom rom:
|
||||
if (rom.GetStringFieldValue(Models.Metadata.Rom.StatusKey).AsEnumValue<ItemStatus>() == ItemStatus.Nodump)
|
||||
fieldDats[Models.Metadata.Rom.StatusKey].Add(key, item);
|
||||
fieldDats[Models.Metadata.Rom.StatusKey].AddItem(item, statsOnly: false);
|
||||
else if (!string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.SHA512Key)))
|
||||
fieldDats[Models.Metadata.Rom.SHA512Key].Add(key, item);
|
||||
fieldDats[Models.Metadata.Rom.SHA512Key].AddItem(item, statsOnly: false);
|
||||
else if (!string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.SHA384Key)))
|
||||
fieldDats[Models.Metadata.Rom.SHA384Key].Add(key, item);
|
||||
fieldDats[Models.Metadata.Rom.SHA384Key].AddItem(item, statsOnly: false);
|
||||
else if (!string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.SHA256Key)))
|
||||
fieldDats[Models.Metadata.Rom.SHA256Key].Add(key, item);
|
||||
fieldDats[Models.Metadata.Rom.SHA256Key].AddItem(item, statsOnly: false);
|
||||
else if (!string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.SHA1Key)))
|
||||
fieldDats[Models.Metadata.Rom.SHA1Key].Add(key, item);
|
||||
fieldDats[Models.Metadata.Rom.SHA1Key].AddItem(item, statsOnly: false);
|
||||
else if (!string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.MD5Key)))
|
||||
fieldDats[Models.Metadata.Rom.MD5Key].Add(key, item);
|
||||
fieldDats[Models.Metadata.Rom.MD5Key].AddItem(item, statsOnly: false);
|
||||
else if (!string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.MD4Key)))
|
||||
fieldDats[Models.Metadata.Rom.MD4Key].Add(key, item);
|
||||
fieldDats[Models.Metadata.Rom.MD4Key].AddItem(item, statsOnly: false);
|
||||
else if (!string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.MD2Key)))
|
||||
fieldDats[Models.Metadata.Rom.MD2Key].Add(key, item);
|
||||
fieldDats[Models.Metadata.Rom.MD2Key].AddItem(item, statsOnly: false);
|
||||
else if (!string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.CRCKey)))
|
||||
fieldDats[Models.Metadata.Rom.CRCKey].Add(key, item);
|
||||
fieldDats[Models.Metadata.Rom.CRCKey].AddItem(item, statsOnly: false);
|
||||
else
|
||||
fieldDats["null"].Add(key, item);
|
||||
fieldDats["null"].AddItem(item, statsOnly: false);
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -500,7 +500,7 @@ namespace SabreTools.DatTools
|
||||
tempDat.Header.SetFieldValue<string?>(Models.Metadata.Header.NameKey, null);
|
||||
|
||||
// Sort the input keys
|
||||
List<string> keys = [.. datFile.Items.Keys];
|
||||
List<string> keys = [.. datFile.Items.SortedKeys];
|
||||
keys.Sort(SplitByLevelSort);
|
||||
|
||||
// Then, we loop over the games
|
||||
@@ -532,7 +532,7 @@ namespace SabreTools.DatTools
|
||||
items.ForEach(item => item.GetFieldValue<Machine>(DatItem.MachineKey)!.SetFieldValue<string?>(Models.Metadata.Machine.DescriptionKey, Path.GetFileName(item.GetFieldValue<Machine>(DatItem.MachineKey)!.GetStringFieldValue(Models.Metadata.Machine.DescriptionKey))));
|
||||
|
||||
// Now add the game to the output DAT
|
||||
tempDat.Add(key, items);
|
||||
items.ForEach(item => tempDat.AddItem(item, statsOnly: false));
|
||||
|
||||
// Then set the DAT name to be the parent directory name
|
||||
tempDat.Header.SetFieldValue<string?>(Models.Metadata.Header.NameKey, Path.GetDirectoryName(key));
|
||||
@@ -631,11 +631,11 @@ namespace SabreTools.DatTools
|
||||
|
||||
// Now populate each of the DAT objects in turn
|
||||
#if NET452_OR_GREATER || NETCOREAPP
|
||||
Parallel.ForEach(datFile.Items.Keys, Core.Globals.ParallelOptions, key =>
|
||||
Parallel.ForEach(datFile.Items.SortedKeys, Core.Globals.ParallelOptions, key =>
|
||||
#elif NET40_OR_GREATER
|
||||
Parallel.ForEach(datFile.Items.Keys, key =>
|
||||
Parallel.ForEach(datFile.Items.SortedKeys, key =>
|
||||
#else
|
||||
foreach (var key in datFile.Items.Keys)
|
||||
foreach (var key in datFile.Items.SortedKeys)
|
||||
#endif
|
||||
{
|
||||
List<DatItem>? items = datFile.GetItemsForBucket(key);
|
||||
@@ -649,19 +649,19 @@ namespace SabreTools.DatTools
|
||||
{
|
||||
// If the file is not a Rom, it automatically goes in the "lesser" dat
|
||||
if (item is not Rom rom)
|
||||
lessThan.Add(key, item);
|
||||
lessThan.AddItem(item, statsOnly: false);
|
||||
|
||||
// If the file is a Rom and has no size, put it in the "lesser" dat
|
||||
else if (rom.GetInt64FieldValue(Models.Metadata.Rom.SizeKey) == null)
|
||||
lessThan.Add(key, item);
|
||||
lessThan.AddItem(item, statsOnly: false);
|
||||
|
||||
// If the file is a Rom and less than the radix, put it in the "lesser" dat
|
||||
else if (rom.GetInt64FieldValue(Models.Metadata.Rom.SizeKey) < radix)
|
||||
lessThan.Add(key, item);
|
||||
lessThan.AddItem(item, statsOnly: false);
|
||||
|
||||
// If the file is a Rom and greater than or equal to the radix, put it in the "greater" dat
|
||||
else if (rom.GetInt64FieldValue(Models.Metadata.Rom.SizeKey) >= radix)
|
||||
greaterThan.Add(key, item);
|
||||
greaterThan.AddItem(item, statsOnly: false);
|
||||
}
|
||||
#if NET40_OR_GREATER || NETCOREAPP
|
||||
});
|
||||
@@ -838,7 +838,7 @@ namespace SabreTools.DatTools
|
||||
}
|
||||
|
||||
// Add the current machine to the current DatFile
|
||||
currentDat.Add(machine, items);
|
||||
items.ForEach(item => currentDat.AddItem(item, statsOnly: false));
|
||||
currentSize += machineSize;
|
||||
}
|
||||
|
||||
@@ -913,11 +913,11 @@ namespace SabreTools.DatTools
|
||||
{
|
||||
// Loop through and add the items for this index to the output
|
||||
#if NET452_OR_GREATER || NETCOREAPP
|
||||
Parallel.ForEach(datFile.Items.Keys, Core.Globals.ParallelOptions, key =>
|
||||
Parallel.ForEach(datFile.Items.SortedKeys, Core.Globals.ParallelOptions, key =>
|
||||
#elif NET40_OR_GREATER
|
||||
Parallel.ForEach(datFile.Items.Keys, key =>
|
||||
Parallel.ForEach(datFile.Items.SortedKeys, key =>
|
||||
#else
|
||||
foreach (var key in datFile.Items.Keys)
|
||||
foreach (var key in datFile.Items.SortedKeys)
|
||||
#endif
|
||||
{
|
||||
List<DatItem> items = DatFileTool.Merge(datFile.GetItemsForBucket(key));
|
||||
@@ -933,7 +933,7 @@ namespace SabreTools.DatTools
|
||||
foreach (DatItem item in items)
|
||||
{
|
||||
if (item.GetStringFieldValue(Models.Metadata.DatItem.TypeKey).AsEnumValue<ItemType>() == itemType)
|
||||
indexDat.Add(key, item);
|
||||
indexDat.AddItem(item, statsOnly: false);
|
||||
}
|
||||
#if NET40_OR_GREATER || NETCOREAPP
|
||||
});
|
||||
|
||||
@@ -83,17 +83,17 @@ namespace SabreTools.DatTools
|
||||
{
|
||||
DatStatistics individualStats = datdata.DatStatistics;
|
||||
individualStats.DisplayName = datdata.Header.GetStringFieldValue(DatHeader.FileNameKey);
|
||||
individualStats.MachineCount = datdata.Items.Keys.Count;
|
||||
individualStats.MachineCount = datdata.Items.SortedKeys.Count;
|
||||
stats.Add(individualStats);
|
||||
}
|
||||
|
||||
// Add single DAT stats to dir
|
||||
dirStats.AddStatistics(datdata.DatStatistics);
|
||||
dirStats.GameCount += datdata.Items.Keys.Count;
|
||||
dirStats.GameCount += datdata.Items.SortedKeys.Count;
|
||||
|
||||
// Add single DAT stats to totals
|
||||
totalStats.AddStatistics(datdata.DatStatistics);
|
||||
totalStats.GameCount += datdata.Items.Keys.Count;
|
||||
totalStats.GameCount += datdata.Items.SortedKeys.Count;
|
||||
|
||||
// Make sure to assign the new directory
|
||||
lastdir = thisdir;
|
||||
|
||||
@@ -141,7 +141,7 @@ namespace SabreTools.DatTools
|
||||
datFile.BucketBy(ItemKey.Machine, DedupeType.None, norename: true);
|
||||
|
||||
datFile.DatStatistics.DisplayName = datFile.Header.GetStringFieldValue(DatHeader.FileNameKey);
|
||||
datFile.DatStatistics.MachineCount = datFile.Items.Keys.Count;
|
||||
datFile.DatStatistics.MachineCount = datFile.Items.SortedKeys.Count;
|
||||
|
||||
List<DatStatistics> statsList =
|
||||
[
|
||||
|
||||
Reference in New Issue
Block a user