mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Filter Abstraction (#25)
* Add category, back filters by dictionary * Complete internal filter set * Fix AreaSize filter * Populate filter object the hard way * Manipulation flags should not be filters * None of them need to be public * Convert to partial helper method * Better method use * Field, not string; no dictionary * Add FilterTo method for later * More naming options (easier conversion) * Update README
This commit is contained in:
@@ -241,6 +241,9 @@ namespace SabreTools.Library.DatFiles
|
||||
case "manufacturer":
|
||||
machine.Manufacturer = itemVal;
|
||||
break;
|
||||
case "category":
|
||||
machine.Category = itemVal;
|
||||
break;
|
||||
case "cloneof":
|
||||
machine.CloneOf = itemVal;
|
||||
break;
|
||||
@@ -634,6 +637,8 @@ namespace SabreTools.Library.DatFiles
|
||||
cmpw.WriteStandalone("year", datItem.Year);
|
||||
if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Manufacturer, DatHeader.ExcludeFields)))
|
||||
cmpw.WriteStandalone("manufacturer", datItem.Manufacturer);
|
||||
if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Category, DatHeader.ExcludeFields)))
|
||||
cmpw.WriteStandalone("category", datItem.Category);
|
||||
|
||||
cmpw.Flush();
|
||||
}
|
||||
|
||||
@@ -1147,6 +1147,9 @@ namespace SabreTools.Library.DatFiles
|
||||
if (updateFields.Contains(Field.Publisher))
|
||||
newDatItem.Publisher = firstDupe.Publisher;
|
||||
|
||||
if (updateFields.Contains(Field.Category))
|
||||
newDatItem.Category = firstDupe.Category;
|
||||
|
||||
if (updateFields.Contains(Field.RomOf))
|
||||
newDatItem.RomOf = firstDupe.RomOf;
|
||||
|
||||
@@ -3659,6 +3662,7 @@ namespace SabreTools.Library.DatFiles
|
||||
name = item.Name,
|
||||
manufacturer = item.Manufacturer,
|
||||
publisher = item.Publisher,
|
||||
category = item.Category,
|
||||
crc = string.Empty,
|
||||
md5 = string.Empty,
|
||||
ripemd160 = string.Empty,
|
||||
@@ -3709,6 +3713,7 @@ namespace SabreTools.Library.DatFiles
|
||||
.Replace("%name%", name)
|
||||
.Replace("%manufacturer%", manufacturer)
|
||||
.Replace("%publisher%", publisher)
|
||||
.Replace("%category%", category)
|
||||
.Replace("%crc%", crc)
|
||||
.Replace("%md5%", md5)
|
||||
.Replace("%ripemd160%", ripemd160)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -317,6 +317,10 @@ namespace SabreTools.Library.DatFiles
|
||||
machine.Publisher = jtr.ReadAsString();
|
||||
break;
|
||||
|
||||
case "category":
|
||||
machine.Category = jtr.ReadAsString();
|
||||
break;
|
||||
|
||||
case "romof":
|
||||
machine.RomOf = jtr.ReadAsString();
|
||||
break;
|
||||
@@ -1023,6 +1027,11 @@ namespace SabreTools.Library.DatFiles
|
||||
jtw.WritePropertyName("publisher");
|
||||
jtw.WriteValue(datItem.Publisher);
|
||||
}
|
||||
if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Category, DatHeader.ExcludeFields)))
|
||||
{
|
||||
jtw.WritePropertyName("category");
|
||||
jtw.WriteValue(datItem.Category);
|
||||
}
|
||||
if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.RomOf, DatHeader.ExcludeFields)) && !string.Equals(datItem.MachineName, datItem.RomOf, StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
jtw.WritePropertyName("romof");
|
||||
|
||||
@@ -716,6 +716,8 @@ namespace SabreTools.Library.DatFiles
|
||||
xtw.WriteElementString("year", datItem.Year);
|
||||
if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Publisher, DatHeader.ExcludeFields)))
|
||||
xtw.WriteElementString("publisher", datItem.Publisher);
|
||||
if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Category, DatHeader.ExcludeFields)))
|
||||
xtw.WriteElementString("category", datItem.Category);
|
||||
|
||||
if (!DatHeader.ExcludeFields[(int)Field.Infos] && datItem.Infos != null && datItem.Infos.Count > 0)
|
||||
{
|
||||
|
||||
@@ -377,6 +377,10 @@ namespace SabreTools.Library.DatFiles
|
||||
machine.Publisher = reader.ReadElementContentAsString();
|
||||
break;
|
||||
|
||||
case "category": // Not technically supported but used by some legacy DATs
|
||||
machine.Category = reader.ReadElementContentAsString();
|
||||
break;
|
||||
|
||||
case "trurip": // This is special metadata unique to TruRip
|
||||
ReadTruRip(reader.ReadSubtree(), machine);
|
||||
|
||||
@@ -588,7 +592,7 @@ namespace SabreTools.Library.DatFiles
|
||||
break;
|
||||
|
||||
case "genre":
|
||||
reader.ReadElementContentAsString();
|
||||
machine.Category = reader.ReadElementContentAsString();
|
||||
break;
|
||||
|
||||
case "subgenre":
|
||||
@@ -894,6 +898,8 @@ namespace SabreTools.Library.DatFiles
|
||||
xtw.WriteElementString("publisher", datItem.Publisher);
|
||||
if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Manufacturer, DatHeader.ExcludeFields)))
|
||||
xtw.WriteElementString("manufacturer", datItem.Manufacturer);
|
||||
if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Category, DatHeader.ExcludeFields)))
|
||||
xtw.WriteElementString("category", datItem.Category);
|
||||
|
||||
xtw.Flush();
|
||||
}
|
||||
|
||||
@@ -213,6 +213,10 @@ namespace SabreTools.Library.DatFiles
|
||||
machine.Publisher = value;
|
||||
break;
|
||||
|
||||
case "Machine.Category":
|
||||
machine.Category = value;
|
||||
break;
|
||||
|
||||
case "Machine.RomOf":
|
||||
machine.RomOf = value;
|
||||
break;
|
||||
|
||||
@@ -174,6 +174,10 @@ namespace SabreTools.Library.DatFiles
|
||||
machine.Publisher = reader.ReadElementContentAsString();
|
||||
break;
|
||||
|
||||
case "category":
|
||||
machine.Category = reader.ReadElementContentAsString();
|
||||
break;
|
||||
|
||||
case "info":
|
||||
machine.Infos.Add(new KeyValuePair<string, string>(reader.GetAttribute("name"), reader.GetAttribute("value")));
|
||||
reader.Read();
|
||||
@@ -717,6 +721,8 @@ namespace SabreTools.Library.DatFiles
|
||||
xtw.WriteElementString("year", datItem.Year);
|
||||
if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Publisher, DatHeader.ExcludeFields)))
|
||||
xtw.WriteElementString("publisher", datItem.Publisher);
|
||||
if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Category, DatHeader.ExcludeFields)))
|
||||
xtw.WriteElementString("category", datItem.Category);
|
||||
|
||||
if (!DatHeader.ExcludeFields[(int)Field.Infos] && datItem.Infos != null && datItem.Infos.Count > 0)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user