Move dedupe to Cleaner, remove StripHash

This commit is contained in:
Matt Nadareski
2020-08-30 23:11:05 -07:00
parent 6ed35bffee
commit a70dc3bad6
5 changed files with 16 additions and 36 deletions

View File

@@ -709,6 +709,12 @@ namespace SabreTools.Library.DatFiles
// Perform item-level cleaning // Perform item-level cleaning
CleanDatItems(cleaner); CleanDatItems(cleaner);
// Bucket and dedupe according to the flag
if (cleaner?.DedupeRoms == DedupeType.Full)
Items.BucketBy(Field.DatItem_CRC, cleaner.DedupeRoms);
else if (cleaner?.DedupeRoms == DedupeType.Game)
Items.BucketBy(Field.Machine_Name, cleaner.DedupeRoms);
// Process description to machine name // Process description to machine name
if (cleaner?.DescriptionAsName == true) if (cleaner?.DescriptionAsName == true)
MachineDescriptionToName(); MachineDescriptionToName();
@@ -3437,14 +3443,6 @@ namespace SabreTools.Library.DatFiles
consoleOutput.ReplaceStatistics(Header.FileName, Items.Keys.Count(), Items); consoleOutput.ReplaceStatistics(Header.FileName, Items.Keys.Count(), Items);
} }
// Bucket and dedupe according to the flag
// TODO: Can this be made into a cleaning flag instead of a header one?
// TODO: Should this be run as a cleaning step?
if (Header.DedupeRoms == DedupeType.Full)
Items.BucketBy(Field.DatItem_CRC, Header.DedupeRoms, norename: norename);
else if (Header.DedupeRoms == DedupeType.Game)
Items.BucketBy(Field.Machine_Name, Header.DedupeRoms, norename: norename);
// Bucket roms by game name, if not already // Bucket roms by game name, if not already
Items.BucketBy(Field.Machine_Name, DedupeType.None, norename: norename); Items.BucketBy(Field.Machine_Name, DedupeType.None, norename: norename);

View File

@@ -265,22 +265,6 @@ namespace SabreTools.Library.DatFiles
#endregion #endregion
#region Filtering Fields
/// <summary>
/// Deduplicate items using the given method
/// </summary>
[JsonIgnore]
public DedupeType DedupeRoms { get; set; }
/// <summary>
/// Strip hash types from items
/// </summary>
[JsonIgnore]
public Hash StripHash { get; private set; }
#endregion
#region Write pre-processing #region Write pre-processing
/// <summary> /// <summary>
@@ -501,8 +485,6 @@ namespace SabreTools.Library.DatFiles
ForceNodump = this.ForceNodump, ForceNodump = this.ForceNodump,
ForcePacking = this.ForcePacking, ForcePacking = this.ForcePacking,
DatFormat = this.DatFormat, DatFormat = this.DatFormat,
DedupeRoms = this.DedupeRoms,
StripHash = this.StripHash,
UseRomName = this.UseRomName, UseRomName = this.UseRomName,
Prefix = this.Prefix, Prefix = this.Prefix,
@@ -542,8 +524,6 @@ namespace SabreTools.Library.DatFiles
ForceNodump = this.ForceNodump, ForceNodump = this.ForceNodump,
ForcePacking = this.ForcePacking, ForcePacking = this.ForcePacking,
DatFormat = this.DatFormat, DatFormat = this.DatFormat,
DedupeRoms = this.DedupeRoms,
StripHash = this.StripHash,
}; };
} }
@@ -555,8 +535,6 @@ namespace SabreTools.Library.DatFiles
return new DatHeader() return new DatHeader()
{ {
DatFormat = this.DatFormat, DatFormat = this.DatFormat,
DedupeRoms = this.DedupeRoms,
StripHash = this.StripHash,
UseRomName = this.UseRomName, UseRomName = this.UseRomName,
Prefix = this.Prefix, Prefix = this.Prefix,
@@ -631,9 +609,6 @@ namespace SabreTools.Library.DatFiles
if (datHeader.DatFormat != 0x00) if (datHeader.DatFormat != 0x00)
DatFormat = datHeader.DatFormat; DatFormat = datHeader.DatFormat;
DedupeRoms = datHeader.DedupeRoms;
//StripHash = datHeader.StripHash;
if (!string.IsNullOrWhiteSpace(datHeader.Prefix)) if (!string.IsNullOrWhiteSpace(datHeader.Prefix))
Prefix = datHeader.Prefix; Prefix = datHeader.Prefix;

View File

@@ -1,5 +1,6 @@
using System.Collections.Generic; using System.Collections.Generic;
using SabreTools.Library.DatFiles;
using SabreTools.Library.DatItems; using SabreTools.Library.DatItems;
namespace SabreTools.Library.Filtering namespace SabreTools.Library.Filtering
@@ -14,6 +15,12 @@ namespace SabreTools.Library.Filtering
/// </summary> /// </summary>
public bool Clean { get; set; } public bool Clean { get; set; }
/// <summary>
/// Deduplicate items using the given method
/// </summary>
public DedupeType DedupeRoms { get; set; }
/// <summary> /// <summary>
/// Set Machine Description from Machine Name /// Set Machine Description from Machine Name
/// </summary> /// </summary>

View File

@@ -2699,6 +2699,7 @@ Some special strings that can be used:
Cleaner cleaner = new Cleaner() Cleaner cleaner = new Cleaner()
{ {
Clean = GetBoolean(features, CleanValue), Clean = GetBoolean(features, CleanValue),
DedupeRoms = GetDedupeType(features),
DescriptionAsName = GetBoolean(features, DescriptionAsNameValue), DescriptionAsName = GetBoolean(features, DescriptionAsNameValue),
KeepEmptyGames = GetBoolean(features, KeepEmptyGamesValue), KeepEmptyGames = GetBoolean(features, KeepEmptyGamesValue),
OneGamePerRegion = GetBoolean(features, OneGamePerRegionValue), OneGamePerRegion = GetBoolean(features, OneGamePerRegionValue),
@@ -2732,7 +2733,6 @@ Some special strings that can be used:
Category = GetString(features, CategoryStringValue), Category = GetString(features, CategoryStringValue),
Comment = GetString(features, CommentStringValue), Comment = GetString(features, CommentStringValue),
Date = GetString(features, DateStringValue), Date = GetString(features, DateStringValue),
DedupeRoms = GetDedupeType(features),
Description = GetString(features, DescriptionStringValue), Description = GetString(features, DescriptionStringValue),
Email = GetString(features, EmailStringValue), Email = GetString(features, EmailStringValue),
FileName = GetString(features, FilenameStringValue), FileName = GetString(features, FilenameStringValue),

View File

@@ -125,14 +125,14 @@ namespace SabreTools.Features
{ {
Header.Name = (updateMode != 0 ? "DiffDAT" : "MergeDAT") Header.Name = (updateMode != 0 ? "DiffDAT" : "MergeDAT")
+ (Header.Type == "SuperDAT" ? "-SuperDAT" : string.Empty) + (Header.Type == "SuperDAT" ? "-SuperDAT" : string.Empty)
+ (Header.DedupeRoms != DedupeType.None ? "-deduped" : string.Empty); + (Cleaner.DedupeRoms != DedupeType.None ? "-deduped" : string.Empty);
} }
if (string.IsNullOrWhiteSpace(Header.Description)) if (string.IsNullOrWhiteSpace(Header.Description))
{ {
Header.Description = (updateMode != 0 ? "DiffDAT" : "MergeDAT") Header.Description = (updateMode != 0 ? "DiffDAT" : "MergeDAT")
+ (Header.Type == "SuperDAT" ? "-SuperDAT" : string.Empty) + (Header.Type == "SuperDAT" ? "-SuperDAT" : string.Empty)
+ (Header.DedupeRoms != DedupeType.None ? " - deduped" : string.Empty); + (Cleaner.DedupeRoms != DedupeType.None ? " - deduped" : string.Empty);
if (!GetBoolean(features, NoAutomaticDateValue)) if (!GetBoolean(features, NoAutomaticDateValue))
Header.Description += $" ({Header.Date})"; Header.Description += $" ({Header.Date})";