mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Hashing
This commit is contained in:
@@ -90,6 +90,7 @@ namespace SabreTools.Library.DatFiles
|
||||
Size = Constants.SizeZero,
|
||||
CRC = Constants.CRCZero,
|
||||
MD5 = Constants.MD5Zero,
|
||||
RIPEMD160 = Constants.RIPEMD160Zero,
|
||||
SHA1 = Constants.SHA1Zero,
|
||||
ItemStatus = ItemStatus.None,
|
||||
|
||||
|
||||
@@ -342,6 +342,7 @@ namespace SabreTools.Library.DatFiles
|
||||
&& linegc[i] != "date"
|
||||
&& linegc[i] != "crc"
|
||||
&& linegc[i] != "md5"
|
||||
&& linegc[i] != "ripemd160"
|
||||
&& linegc[i] != "sha1"
|
||||
&& linegc[i] != "sha256"
|
||||
&& linegc[i] != "sha384"
|
||||
@@ -384,6 +385,12 @@ namespace SabreTools.Library.DatFiles
|
||||
((Rom)item).MD5 = linegc[++i].Replace("\"", "").ToLowerInvariant();
|
||||
}
|
||||
|
||||
// Get the RIPEMD160 from the next part
|
||||
else if (linegc[i] == "ripemd160")
|
||||
{
|
||||
((Rom)item).RIPEMD160 = linegc[++i].Replace("\"", "").ToLowerInvariant();
|
||||
}
|
||||
|
||||
// Get the SHA1 from the next part
|
||||
else if (linegc[i] == "sha1")
|
||||
{
|
||||
@@ -481,6 +488,18 @@ namespace SabreTools.Library.DatFiles
|
||||
((Disk)item).MD5 = Utilities.CleanHashData(quoteless, Constants.MD5Length);
|
||||
}
|
||||
break;
|
||||
case "ripemd160":
|
||||
if (item.ItemType == ItemType.Rom)
|
||||
{
|
||||
quoteless = linegc[++i].Replace("\"", "");
|
||||
((Rom)item).RIPEMD160 = Utilities.CleanHashData(quoteless, Constants.RIPEMD160Length);
|
||||
}
|
||||
else if (item.ItemType == ItemType.Disk)
|
||||
{
|
||||
quoteless = linegc[++i].Replace("\"", "");
|
||||
((Disk)item).RIPEMD160 = Utilities.CleanHashData(quoteless, Constants.RIPEMD160Length);
|
||||
}
|
||||
break;
|
||||
case "sha1":
|
||||
if (item.ItemType == ItemType.Rom)
|
||||
{
|
||||
@@ -738,6 +757,7 @@ namespace SabreTools.Library.DatFiles
|
||||
((Rom)rom).Size = Constants.SizeZero;
|
||||
((Rom)rom).CRC = ((Rom)rom).CRC == "null" ? Constants.CRCZero : null;
|
||||
((Rom)rom).MD5 = ((Rom)rom).MD5 == "null" ? Constants.MD5Zero : null;
|
||||
((Rom)rom).RIPEMD160 = ((Rom)rom).RIPEMD160 == "null" ? Constants.RIPEMD160Zero : null;
|
||||
((Rom)rom).SHA1 = ((Rom)rom).SHA1 == "null" ? Constants.SHA1Zero : null;
|
||||
((Rom)rom).SHA256 = ((Rom)rom).SHA256 == "null" ? Constants.SHA256Zero : null;
|
||||
((Rom)rom).SHA384 = ((Rom)rom).SHA384 == "null" ? Constants.SHA384Zero : null;
|
||||
@@ -911,6 +931,7 @@ namespace SabreTools.Library.DatFiles
|
||||
case ItemType.Disk:
|
||||
state += "\tdisk ( name \"" + (!ExcludeFields[(int)Field.Name] ? rom.Name : "") + "\""
|
||||
+ (!ExcludeFields[(int)Field.MD5] && !String.IsNullOrWhiteSpace(((Disk)rom).MD5) ? " md5 " + ((Disk)rom).MD5.ToLowerInvariant() : "")
|
||||
+ (!ExcludeFields[(int)Field.RIPEMD160] && !String.IsNullOrWhiteSpace(((Disk)rom).RIPEMD160) ? " ripemd160 " + ((Disk)rom).RIPEMD160.ToLowerInvariant() : "")
|
||||
+ (!ExcludeFields[(int)Field.SHA1] && !String.IsNullOrWhiteSpace(((Disk)rom).SHA1) ? " sha1 " + ((Disk)rom).SHA1.ToLowerInvariant() : "")
|
||||
+ (!ExcludeFields[(int)Field.SHA256] && !String.IsNullOrWhiteSpace(((Disk)rom).SHA256) ? " sha256 " + ((Disk)rom).SHA256.ToLowerInvariant() : "")
|
||||
+ (!ExcludeFields[(int)Field.SHA384] && !String.IsNullOrWhiteSpace(((Disk)rom).SHA384) ? " sha384 " + ((Disk)rom).SHA384.ToLowerInvariant() : "")
|
||||
@@ -933,6 +954,7 @@ namespace SabreTools.Library.DatFiles
|
||||
+ (!ExcludeFields[(int)Field.Size] && ((Rom)rom).Size != -1 ? " size " + ((Rom)rom).Size : "")
|
||||
+ (!ExcludeFields[(int)Field.CRC] && !String.IsNullOrWhiteSpace(((Rom)rom).CRC) ? " crc " + ((Rom)rom).CRC.ToLowerInvariant() : "")
|
||||
+ (!ExcludeFields[(int)Field.MD5] && !String.IsNullOrWhiteSpace(((Rom)rom).MD5) ? " md5 " + ((Rom)rom).MD5.ToLowerInvariant() : "")
|
||||
+ (!ExcludeFields[(int)Field.RIPEMD160] && !String.IsNullOrWhiteSpace(((Rom)rom).RIPEMD160) ? " ripemd160 " + ((Rom)rom).RIPEMD160.ToLowerInvariant() : "")
|
||||
+ (!ExcludeFields[(int)Field.SHA1] && !String.IsNullOrWhiteSpace(((Rom)rom).SHA1) ? " sha1 " + ((Rom)rom).SHA1.ToLowerInvariant() : "")
|
||||
+ (!ExcludeFields[(int)Field.SHA256] && !String.IsNullOrWhiteSpace(((Rom)rom).SHA256) ? " sha256 " + ((Rom)rom).SHA256.ToLowerInvariant() : "")
|
||||
+ (!ExcludeFields[(int)Field.SHA384] && !String.IsNullOrWhiteSpace(((Rom)rom).SHA384) ? " sha384 " + ((Rom)rom).SHA384.ToLowerInvariant() : "")
|
||||
|
||||
@@ -815,6 +815,23 @@ namespace SabreTools.Library.DatFiles
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Number of items with a RIPEMD160 hash
|
||||
/// </summary>
|
||||
public long RIPEMD160Count
|
||||
{
|
||||
get
|
||||
{
|
||||
EnsureDatStats();
|
||||
return _datStats.RIPEMD160Count;
|
||||
}
|
||||
private set
|
||||
{
|
||||
EnsureDatStats();
|
||||
_datStats.RIPEMD160Count = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Number of items with a SHA-1 hash
|
||||
/// </summary>
|
||||
@@ -1376,6 +1393,12 @@ namespace SabreTools.Library.DatFiles
|
||||
BucketBy(SortedBy.SHA1, deduperoms, lower, norename);
|
||||
}
|
||||
|
||||
// If all items are supposed to have a SHA-1, we sort by that
|
||||
else if (RomCount + DiskCount - NodumpCount == RIPEMD160Count)
|
||||
{
|
||||
BucketBy(SortedBy.RIPEMD160, deduperoms, lower, norename);
|
||||
}
|
||||
|
||||
// If all items are supposed to have a MD5, we sort by that
|
||||
else if (RomCount + DiskCount - NodumpCount == MD5Count)
|
||||
{
|
||||
@@ -1702,6 +1725,10 @@ namespace SabreTools.Library.DatFiles
|
||||
{
|
||||
newRomItem.MD5 = ((Rom)dupes[0]).MD5;
|
||||
}
|
||||
if (String.IsNullOrEmpty(newRomItem.RIPEMD160) && !String.IsNullOrEmpty(((Rom)dupes[0]).RIPEMD160))
|
||||
{
|
||||
newRomItem.RIPEMD160 = ((Rom)dupes[0]).RIPEMD160;
|
||||
}
|
||||
if (String.IsNullOrEmpty(newRomItem.SHA1) && !String.IsNullOrEmpty(((Rom)dupes[0]).SHA1))
|
||||
{
|
||||
newRomItem.SHA1 = ((Rom)dupes[0]).SHA1;
|
||||
@@ -1728,6 +1755,10 @@ namespace SabreTools.Library.DatFiles
|
||||
{
|
||||
newDiskItem.MD5 = ((Disk)dupes[0]).MD5;
|
||||
}
|
||||
if (String.IsNullOrEmpty(newDiskItem.RIPEMD160) && !String.IsNullOrEmpty(((Disk)dupes[0]).RIPEMD160))
|
||||
{
|
||||
newDiskItem.RIPEMD160 = ((Disk)dupes[0]).RIPEMD160;
|
||||
}
|
||||
if (String.IsNullOrEmpty(newDiskItem.SHA1) && !String.IsNullOrEmpty(((Disk)dupes[0]).SHA1))
|
||||
{
|
||||
newDiskItem.SHA1 = ((Disk)dupes[0]).SHA1;
|
||||
@@ -3129,6 +3160,7 @@ namespace SabreTools.Library.DatFiles
|
||||
// Sanitize the hashes from null, hex sizes, and "true blank" strings
|
||||
itemRom.CRC = Utilities.CleanHashData(itemRom.CRC, Constants.CRCLength);
|
||||
itemRom.MD5 = Utilities.CleanHashData(itemRom.MD5, Constants.MD5Length);
|
||||
itemRom.RIPEMD160 = Utilities.CleanHashData(itemRom.RIPEMD160, Constants.RIPEMD160Length);
|
||||
itemRom.SHA1 = Utilities.CleanHashData(itemRom.SHA1, Constants.SHA1Length);
|
||||
itemRom.SHA256 = Utilities.CleanHashData(itemRom.SHA256, Constants.SHA256Length);
|
||||
itemRom.SHA384 = Utilities.CleanHashData(itemRom.SHA384, Constants.SHA384Length);
|
||||
@@ -3138,6 +3170,7 @@ namespace SabreTools.Library.DatFiles
|
||||
if (itemRom.Size == -1
|
||||
&& String.IsNullOrWhiteSpace(itemRom.CRC)
|
||||
&& String.IsNullOrWhiteSpace(itemRom.MD5)
|
||||
&& String.IsNullOrWhiteSpace(itemRom.RIPEMD160)
|
||||
&& !String.IsNullOrWhiteSpace(itemRom.SHA1)
|
||||
&& String.IsNullOrWhiteSpace(itemRom.SHA256)
|
||||
&& String.IsNullOrWhiteSpace(itemRom.SHA384)
|
||||
@@ -3151,6 +3184,7 @@ namespace SabreTools.Library.DatFiles
|
||||
else if ((itemRom.Size == 0 || itemRom.Size == -1)
|
||||
&& ((itemRom.CRC == Constants.CRCZero || String.IsNullOrWhiteSpace(itemRom.CRC))
|
||||
|| itemRom.MD5 == Constants.MD5Zero
|
||||
|| itemRom.RIPEMD160 == Constants.RIPEMD160Zero
|
||||
|| itemRom.SHA1 == Constants.SHA1Zero
|
||||
|| itemRom.SHA256 == Constants.SHA256Zero
|
||||
|| itemRom.SHA384 == Constants.SHA384Zero
|
||||
@@ -3160,12 +3194,14 @@ namespace SabreTools.Library.DatFiles
|
||||
itemRom.Size = Constants.SizeZero;
|
||||
itemRom.CRC = Constants.CRCZero;
|
||||
itemRom.MD5 = Constants.MD5Zero;
|
||||
itemRom.RIPEMD160 = null;
|
||||
//itemRom.RIPEMD160 = Constants.RIPEMD160Zero;
|
||||
itemRom.SHA1 = Constants.SHA1Zero;
|
||||
itemRom.SHA256 = null;
|
||||
itemRom.SHA384 = null;
|
||||
itemRom.SHA512 = null;
|
||||
//itemRom.SHA256 = Constants.SHA256Zero;
|
||||
itemRom.SHA384 = null;
|
||||
//itemRom.SHA384 = Constants.SHA384Zero;
|
||||
itemRom.SHA512 = null;
|
||||
//itemRom.SHA512 = Constants.SHA512Zero;
|
||||
}
|
||||
// If the file has no size and it's not the above case, skip and log
|
||||
@@ -3179,6 +3215,7 @@ namespace SabreTools.Library.DatFiles
|
||||
&& itemRom.Size > 0
|
||||
&& String.IsNullOrWhiteSpace(itemRom.CRC)
|
||||
&& String.IsNullOrWhiteSpace(itemRom.MD5)
|
||||
&& String.IsNullOrWhiteSpace(itemRom.RIPEMD160)
|
||||
&& String.IsNullOrWhiteSpace(itemRom.SHA1)
|
||||
&& String.IsNullOrWhiteSpace(itemRom.SHA256)
|
||||
&& String.IsNullOrWhiteSpace(itemRom.SHA384)
|
||||
@@ -3196,6 +3233,7 @@ namespace SabreTools.Library.DatFiles
|
||||
|
||||
// Sanitize the hashes from null, hex sizes, and "true blank" strings
|
||||
itemDisk.MD5 = Utilities.CleanHashData(itemDisk.MD5, Constants.MD5Length);
|
||||
itemDisk.RIPEMD160 = Utilities.CleanHashData(itemDisk.RIPEMD160, Constants.RIPEMD160Length);
|
||||
itemDisk.SHA1 = Utilities.CleanHashData(itemDisk.SHA1, Constants.SHA1Length);
|
||||
itemDisk.SHA256 = Utilities.CleanHashData(itemDisk.SHA256, Constants.SHA256Length);
|
||||
itemDisk.SHA384 = Utilities.CleanHashData(itemDisk.SHA384, Constants.SHA384Length);
|
||||
@@ -3204,6 +3242,7 @@ namespace SabreTools.Library.DatFiles
|
||||
// If the file has aboslutely no hashes, skip and log
|
||||
if (itemDisk.ItemStatus != ItemStatus.Nodump
|
||||
&& String.IsNullOrWhiteSpace(itemDisk.MD5)
|
||||
&& String.IsNullOrWhiteSpace(itemDisk.RIPEMD160)
|
||||
&& String.IsNullOrWhiteSpace(itemDisk.SHA1)
|
||||
&& String.IsNullOrWhiteSpace(itemDisk.SHA256)
|
||||
&& String.IsNullOrWhiteSpace(itemDisk.SHA384)
|
||||
@@ -4866,6 +4905,27 @@ namespace SabreTools.Library.DatFiles
|
||||
DatFormat = this.DatFormat,
|
||||
DedupeRoms = this.DedupeRoms,
|
||||
};
|
||||
DatFile ripemd160 = new DatFile
|
||||
{
|
||||
FileName = this.FileName + " (RIPEMD160)",
|
||||
Name = this.Name + " (RIPEMD160)",
|
||||
Description = this.Description + " (RIPEMD160)",
|
||||
Category = this.Category,
|
||||
Version = this.Version,
|
||||
Date = this.Date,
|
||||
Author = this.Author,
|
||||
Email = this.Email,
|
||||
Homepage = this.Homepage,
|
||||
Url = this.Url,
|
||||
Comment = this.Comment,
|
||||
Header = this.Header,
|
||||
Type = this.Type,
|
||||
ForceMerging = this.ForceMerging,
|
||||
ForceNodump = this.ForceNodump,
|
||||
ForcePacking = this.ForcePacking,
|
||||
DatFormat = this.DatFormat,
|
||||
DedupeRoms = this.DedupeRoms,
|
||||
};
|
||||
DatFile md5 = new DatFile
|
||||
{
|
||||
FileName = this.FileName + " (MD5)",
|
||||
@@ -4973,13 +5033,19 @@ namespace SabreTools.Library.DatFiles
|
||||
{
|
||||
sha1.Add(key, item);
|
||||
}
|
||||
// If the file has no SHA-1 but has an MD5
|
||||
// If the file has a SHA-1
|
||||
else if ((item.ItemType == ItemType.Rom && !String.IsNullOrWhiteSpace(((Rom)item).RIPEMD160))
|
||||
|| (item.ItemType == ItemType.Disk && !String.IsNullOrWhiteSpace(((Disk)item).RIPEMD160)))
|
||||
{
|
||||
ripemd160.Add(key, item);
|
||||
}
|
||||
// If the file has an MD5
|
||||
else if ((item.ItemType == ItemType.Rom && !String.IsNullOrWhiteSpace(((Rom)item).MD5))
|
||||
|| (item.ItemType == ItemType.Disk && !String.IsNullOrWhiteSpace(((Disk)item).MD5)))
|
||||
{
|
||||
md5.Add(key, item);
|
||||
}
|
||||
// If the file has no MD5 but a CRC
|
||||
// If the file has a CRC
|
||||
else if ((item.ItemType == ItemType.Rom && !String.IsNullOrWhiteSpace(((Rom)item).CRC)))
|
||||
{
|
||||
crc.Add(key, item);
|
||||
@@ -4999,6 +5065,7 @@ namespace SabreTools.Library.DatFiles
|
||||
success &= sha384.Write(outDir);
|
||||
success &= sha256.Write(outDir);
|
||||
success &= sha1.Write(outDir);
|
||||
success &= ripemd160.Write(outDir);
|
||||
success &= md5.Write(outDir);
|
||||
success &= crc.Write(outDir);
|
||||
|
||||
@@ -5333,6 +5400,7 @@ namespace SabreTools.Library.DatFiles
|
||||
Disks found: " + DiskCount + @"
|
||||
Roms with CRC: " + CRCCount + @"
|
||||
Roms with MD5: " + MD5Count + @"
|
||||
Roms with RIPEMD160: " + RIPEMD160Count + @"
|
||||
Roms with SHA-1: " + SHA1Count + @"
|
||||
Roms with SHA-256: " + SHA256Count + @"
|
||||
Roms with SHA-384: " + SHA384Count + @"
|
||||
@@ -5670,6 +5738,12 @@ namespace SabreTools.Library.DatFiles
|
||||
outfileNames.Add(DatFormat.RedumpMD5, CreateOutfileNamesHelper(outDir, ".md5", overwrite));
|
||||
};
|
||||
|
||||
// Redump RIPEMD160
|
||||
if ((DatFormat & DatFormat.RedumpRIPEMD160) != 0)
|
||||
{
|
||||
outfileNames.Add(DatFormat.RedumpRIPEMD160, CreateOutfileNamesHelper(outDir, ".ripemd160", overwrite));
|
||||
};
|
||||
|
||||
// Redump SFV
|
||||
if ((DatFormat & DatFormat.RedumpSFV) != 0)
|
||||
{
|
||||
@@ -5895,6 +5969,7 @@ namespace SabreTools.Library.DatFiles
|
||||
publisher = item.Publisher,
|
||||
crc = string.Empty,
|
||||
md5 = string.Empty,
|
||||
ripemd160 = string.Empty,
|
||||
sha1 = string.Empty,
|
||||
sha256 = string.Empty,
|
||||
sha384 = string.Empty,
|
||||
@@ -5917,6 +5992,7 @@ namespace SabreTools.Library.DatFiles
|
||||
{
|
||||
crc = ((Rom)item).CRC;
|
||||
md5 = ((Rom)item).MD5;
|
||||
ripemd160 = ((Rom)item).RIPEMD160;
|
||||
sha1 = ((Rom)item).SHA1;
|
||||
sha256 = ((Rom)item).SHA256;
|
||||
sha384 = ((Rom)item).SHA384;
|
||||
@@ -5926,6 +6002,7 @@ namespace SabreTools.Library.DatFiles
|
||||
else if (item.ItemType == ItemType.Disk)
|
||||
{
|
||||
md5 = ((Disk)item).MD5;
|
||||
ripemd160 = ((Disk)item).RIPEMD160;
|
||||
sha1 = ((Disk)item).SHA1;
|
||||
sha256 = ((Disk)item).SHA256;
|
||||
sha384 = ((Disk)item).SHA384;
|
||||
@@ -5941,6 +6018,7 @@ namespace SabreTools.Library.DatFiles
|
||||
.Replace("%publisher%", publisher)
|
||||
.Replace("%crc%", crc)
|
||||
.Replace("%md5%", md5)
|
||||
.Replace("%ripemd160%", ripemd160)
|
||||
.Replace("%sha1%", sha1)
|
||||
.Replace("%sha256%", sha256)
|
||||
.Replace("%sha384%", sha384)
|
||||
|
||||
@@ -81,6 +81,11 @@ namespace SabreTools.Library.DatFiles
|
||||
/// </summary>
|
||||
public long MD5Count { get; set; } = 0;
|
||||
|
||||
/// <summary>
|
||||
/// Number of items with a RIPEMD160 hash
|
||||
/// </summary>
|
||||
public long RIPEMD160Count { get; set; } = 0;
|
||||
|
||||
/// <summary>
|
||||
/// Number of items with a SHA-1 hash
|
||||
/// </summary>
|
||||
@@ -151,6 +156,7 @@ namespace SabreTools.Library.DatFiles
|
||||
if (((Disk)item).ItemStatus != ItemStatus.Nodump)
|
||||
{
|
||||
this.MD5Count += (String.IsNullOrWhiteSpace(((Disk)item).MD5) ? 0 : 1);
|
||||
this.RIPEMD160Count += (String.IsNullOrWhiteSpace(((Disk)item).RIPEMD160) ? 0 : 1);
|
||||
this.SHA1Count += (String.IsNullOrWhiteSpace(((Disk)item).SHA1) ? 0 : 1);
|
||||
this.SHA256Count += (String.IsNullOrWhiteSpace(((Disk)item).SHA256) ? 0 : 1);
|
||||
this.SHA384Count += (String.IsNullOrWhiteSpace(((Disk)item).SHA384) ? 0 : 1);
|
||||
@@ -172,6 +178,7 @@ namespace SabreTools.Library.DatFiles
|
||||
this.TotalSize += ((Rom)item).Size;
|
||||
this.CRCCount += (String.IsNullOrWhiteSpace(((Rom)item).CRC) ? 0 : 1);
|
||||
this.MD5Count += (String.IsNullOrWhiteSpace(((Rom)item).MD5) ? 0 : 1);
|
||||
this.RIPEMD160Count += (String.IsNullOrWhiteSpace(((Rom)item).RIPEMD160) ? 0 : 1);
|
||||
this.SHA1Count += (String.IsNullOrWhiteSpace(((Rom)item).SHA1) ? 0 : 1);
|
||||
this.SHA256Count += (String.IsNullOrWhiteSpace(((Rom)item).SHA256) ? 0 : 1);
|
||||
this.SHA384Count += (String.IsNullOrWhiteSpace(((Rom)item).SHA384) ? 0 : 1);
|
||||
@@ -212,6 +219,7 @@ namespace SabreTools.Library.DatFiles
|
||||
// Individual hash counts
|
||||
this.CRCCount += stats.CRCCount;
|
||||
this.MD5Count += stats.MD5Count;
|
||||
this.RIPEMD160Count += stats.RIPEMD160Count;
|
||||
this.SHA1Count += stats.SHA1Count;
|
||||
this.SHA256Count += stats.SHA256Count;
|
||||
this.SHA384Count += stats.SHA384Count;
|
||||
@@ -250,6 +258,7 @@ namespace SabreTools.Library.DatFiles
|
||||
if (((Disk)item).ItemStatus != ItemStatus.Nodump)
|
||||
{
|
||||
this.MD5Count -= (String.IsNullOrWhiteSpace(((Disk)item).MD5) ? 0 : 1);
|
||||
this.RIPEMD160Count -= (String.IsNullOrWhiteSpace(((Disk)item).RIPEMD160) ? 0 : 1);
|
||||
this.SHA1Count -= (String.IsNullOrWhiteSpace(((Disk)item).SHA1) ? 0 : 1);
|
||||
this.SHA256Count -= (String.IsNullOrWhiteSpace(((Disk)item).SHA256) ? 0 : 1);
|
||||
this.SHA384Count -= (String.IsNullOrWhiteSpace(((Disk)item).SHA384) ? 0 : 1);
|
||||
@@ -271,6 +280,7 @@ namespace SabreTools.Library.DatFiles
|
||||
this.TotalSize -= ((Rom)item).Size;
|
||||
this.CRCCount -= (String.IsNullOrWhiteSpace(((Rom)item).CRC) ? 0 : 1);
|
||||
this.MD5Count -= (String.IsNullOrWhiteSpace(((Rom)item).MD5) ? 0 : 1);
|
||||
this.RIPEMD160Count -= (String.IsNullOrWhiteSpace(((Rom)item).RIPEMD160) ? 0 : 1);
|
||||
this.SHA1Count -= (String.IsNullOrWhiteSpace(((Rom)item).SHA1) ? 0 : 1);
|
||||
this.SHA256Count -= (String.IsNullOrWhiteSpace(((Rom)item).SHA256) ? 0 : 1);
|
||||
this.SHA384Count -= (String.IsNullOrWhiteSpace(((Rom)item).SHA384) ? 0 : 1);
|
||||
@@ -309,6 +319,7 @@ namespace SabreTools.Library.DatFiles
|
||||
|
||||
this.CRCCount = 0;
|
||||
this.MD5Count = 0;
|
||||
this.RIPEMD160Count = 0;
|
||||
this.SHA1Count = 0;
|
||||
this.SHA256Count = 0;
|
||||
this.SHA384Count = 0;
|
||||
|
||||
@@ -133,6 +133,7 @@ namespace SabreTools.Library.DatFiles
|
||||
((Rom)rom).Size = Constants.SizeZero;
|
||||
((Rom)rom).CRC = ((Rom)rom).CRC == "null" ? Constants.CRCZero : null;
|
||||
((Rom)rom).MD5 = ((Rom)rom).MD5 == "null" ? Constants.MD5Zero : null;
|
||||
((Rom)rom).RIPEMD160 = ((Rom)rom).RIPEMD160 == "null" ? Constants.RIPEMD160Zero : null;
|
||||
((Rom)rom).SHA1 = ((Rom)rom).SHA1 == "null" ? Constants.SHA1Zero : null;
|
||||
((Rom)rom).SHA256 = ((Rom)rom).SHA256 == "null" ? Constants.SHA256Zero : null;
|
||||
((Rom)rom).SHA384 = ((Rom)rom).SHA384 == "null" ? Constants.SHA384Zero : null;
|
||||
|
||||
@@ -76,10 +76,10 @@ namespace SabreTools.Library.DatFiles
|
||||
{
|
||||
Name = gameinfo[1].Substring(fullname[0].Length + 1),
|
||||
Size = -1, // No size provided, but we don't want the size being 0
|
||||
CRC = Utilities.CleanHashData(gameinfo[4], 8),
|
||||
MD5 = Utilities.CleanHashData(gameinfo[3], 32),
|
||||
SHA1 = Utilities.CleanHashData(gameinfo[2], 40),
|
||||
SHA256 = Utilities.CleanHashData(gameinfo[0], 64),
|
||||
CRC = Utilities.CleanHashData(gameinfo[4], Constants.CRCLength),
|
||||
MD5 = Utilities.CleanHashData(gameinfo[3], Constants.MD5Length),
|
||||
SHA1 = Utilities.CleanHashData(gameinfo[2], Constants.SHA1Length),
|
||||
SHA256 = Utilities.CleanHashData(gameinfo[0], Constants.SHA256Length),
|
||||
ItemStatus = ItemStatus.None,
|
||||
|
||||
MachineName = fullname[0],
|
||||
|
||||
@@ -48,6 +48,11 @@ namespace SabreTools.Library.DatFiles
|
||||
/// </summary>
|
||||
public FilterItem<string> MD5 { get; set; } = new FilterItem<string>();
|
||||
|
||||
/// <summary>
|
||||
/// Include or exclude RIPEMD160 hashes
|
||||
/// </summary>
|
||||
public FilterItem<string> RIPEMD160 { get; set; } = new FilterItem<string>();
|
||||
|
||||
/// <summary>
|
||||
/// Include or exclude SHA-1 hashes
|
||||
/// </summary>
|
||||
@@ -224,6 +229,12 @@ namespace SabreTools.Library.DatFiles
|
||||
if (this.MD5.MatchesNegativeSet(rom.MD5) == true)
|
||||
return false;
|
||||
|
||||
// Filter on RIPEMD160
|
||||
if (this.RIPEMD160.MatchesPositiveSet(rom.RIPEMD160) == false)
|
||||
return false;
|
||||
if (this.RIPEMD160.MatchesNegativeSet(rom.RIPEMD160) == true)
|
||||
return false;
|
||||
|
||||
// Filter on SHA-1
|
||||
if (this.SHA1.MatchesPositiveSet(rom.SHA1) == false)
|
||||
return false;
|
||||
@@ -264,6 +275,12 @@ namespace SabreTools.Library.DatFiles
|
||||
if (this.MD5.MatchesNegativeSet(rom.MD5) == true)
|
||||
return false;
|
||||
|
||||
// Filter on RIPEMD160
|
||||
if (this.RIPEMD160.MatchesPositiveSet(rom.RIPEMD160) == false)
|
||||
return false;
|
||||
if (this.RIPEMD160.MatchesNegativeSet(rom.RIPEMD160) == true)
|
||||
return false;
|
||||
|
||||
// Filter on SHA-1
|
||||
if (this.SHA1.MatchesPositiveSet(rom.SHA1) == false)
|
||||
return false;
|
||||
|
||||
@@ -89,6 +89,7 @@ namespace SabreTools.Library.DatFiles
|
||||
Size = -1,
|
||||
CRC = ((_hash & Hash.CRC) != 0 ? Utilities.CleanHashData(hash, Constants.CRCLength) : null),
|
||||
MD5 = ((_hash & Hash.MD5) != 0 ? Utilities.CleanHashData(hash, Constants.MD5Length) : null),
|
||||
RIPEMD160 = ((_hash & Hash.RIPEMD160) != 0 ? Utilities.CleanHashData(hash, Constants.RIPEMD160Length) : null),
|
||||
SHA1 = ((_hash & Hash.SHA1) != 0 ? Utilities.CleanHashData(hash, Constants.SHA1Length) : null),
|
||||
SHA256 = ((_hash & Hash.SHA256) != 0 ? Utilities.CleanHashData(hash, Constants.SHA256Length) : null),
|
||||
SHA384 = ((_hash & Hash.SHA384) != 0 ? Utilities.CleanHashData(hash, Constants.SHA384Length) : null),
|
||||
@@ -204,6 +205,14 @@ namespace SabreTools.Library.DatFiles
|
||||
|
||||
switch (_hash)
|
||||
{
|
||||
case Hash.CRC:
|
||||
if (rom.ItemType == ItemType.Rom)
|
||||
{
|
||||
state += (!ExcludeFields[(int)Field.MachineName] && GameName ? rom.MachineName + Path.DirectorySeparatorChar : "")
|
||||
+ (!ExcludeFields[(int)Field.Name] ? rom.Name : "")
|
||||
+ " " + (!ExcludeFields[(int)Field.CRC] ? ((Rom)rom).CRC : "") + "\n";
|
||||
}
|
||||
break;
|
||||
case Hash.MD5:
|
||||
if (rom.ItemType == ItemType.Rom)
|
||||
{
|
||||
@@ -218,12 +227,18 @@ namespace SabreTools.Library.DatFiles
|
||||
+ (!ExcludeFields[(int)Field.Name] ? rom.Name : "") + "\n";
|
||||
}
|
||||
break;
|
||||
case Hash.CRC:
|
||||
case Hash.RIPEMD160:
|
||||
if (rom.ItemType == ItemType.Rom)
|
||||
{
|
||||
state += (!ExcludeFields[(int)Field.MachineName] && GameName ? rom.MachineName + Path.DirectorySeparatorChar : "")
|
||||
+ (!ExcludeFields[(int)Field.Name] ? rom.Name : "")
|
||||
+ " " + (!ExcludeFields[(int)Field.CRC] ? ((Rom)rom).CRC : "") + "\n";
|
||||
state += (!ExcludeFields[(int)Field.RIPEMD160] ? ((Rom)rom).RIPEMD160 : "")
|
||||
+ " *" + (!ExcludeFields[(int)Field.MachineName] && GameName ? rom.MachineName + Path.DirectorySeparatorChar : "")
|
||||
+ (!ExcludeFields[(int)Field.Name] ? rom.Name : "") + "\n";
|
||||
}
|
||||
else if (rom.ItemType == ItemType.Disk)
|
||||
{
|
||||
state += (!ExcludeFields[(int)Field.RIPEMD160] ? ((Disk)rom).RIPEMD160 : "")
|
||||
+ " *" + (!ExcludeFields[(int)Field.MachineName] && GameName ? rom.MachineName + Path.DirectorySeparatorChar : "")
|
||||
+ (!ExcludeFields[(int)Field.Name] ? rom.Name : "") + "\n";
|
||||
}
|
||||
break;
|
||||
case Hash.SHA1:
|
||||
|
||||
@@ -241,6 +241,7 @@ namespace SabreTools.Library.DatFiles
|
||||
Size = Utilities.GetSize(reader.GetAttribute("size")),
|
||||
CRC = Utilities.CleanHashData(reader.GetAttribute("crc"), Constants.CRCLength),
|
||||
MD5 = Utilities.CleanHashData(reader.GetAttribute("md5"), Constants.MD5Length),
|
||||
RIPEMD160 = Utilities.CleanHashData(reader.GetAttribute("ripemd160"), Constants.SHA1Length),
|
||||
SHA1 = Utilities.CleanHashData(reader.GetAttribute("sha1"), Constants.SHA1Length),
|
||||
SHA256 = Utilities.CleanHashData(reader.GetAttribute("sha256"), Constants.SHA256Length),
|
||||
SHA384 = Utilities.CleanHashData(reader.GetAttribute("sha384"), Constants.SHA384Length),
|
||||
@@ -270,6 +271,7 @@ namespace SabreTools.Library.DatFiles
|
||||
{
|
||||
Name = reader.GetAttribute("name"),
|
||||
MD5 = Utilities.CleanHashData(reader.GetAttribute("md5"), Constants.MD5Length),
|
||||
RIPEMD160 = Utilities.CleanHashData(reader.GetAttribute("ripemd160"), Constants.SHA1Length),
|
||||
SHA1 = Utilities.CleanHashData(reader.GetAttribute("sha1"), Constants.SHA1Length),
|
||||
SHA256 = Utilities.CleanHashData(reader.GetAttribute("sha256"), Constants.SHA256Length),
|
||||
SHA384 = Utilities.CleanHashData(reader.GetAttribute("sha384"), Constants.SHA384Length),
|
||||
@@ -798,6 +800,7 @@ namespace SabreTools.Library.DatFiles
|
||||
case ItemType.Disk:
|
||||
state += "\t\t<disk name=\"" + (!ExcludeFields[(int)Field.Name] ? WebUtility.HtmlEncode(rom.Name) : "") + "\""
|
||||
+ (!ExcludeFields[(int)Field.MD5] && !String.IsNullOrWhiteSpace(((Disk)rom).MD5) ? " md5=\"" + ((Disk)rom).MD5.ToLowerInvariant() + "\"" : "")
|
||||
+ (!ExcludeFields[(int)Field.RIPEMD160] && !String.IsNullOrWhiteSpace(((Disk)rom).RIPEMD160) ? " ripemd160=\"" + ((Disk)rom).RIPEMD160.ToLowerInvariant() + "\"" : "")
|
||||
+ (!ExcludeFields[(int)Field.SHA1] && !String.IsNullOrWhiteSpace(((Disk)rom).SHA1) ? " sha1=\"" + ((Disk)rom).SHA1.ToLowerInvariant() + "\"" : "")
|
||||
+ (!ExcludeFields[(int)Field.SHA256] && !String.IsNullOrWhiteSpace(((Disk)rom).SHA256) ? " sha256=\"" + ((Disk)rom).SHA256.ToLowerInvariant() + "\"" : "")
|
||||
+ (!ExcludeFields[(int)Field.SHA384] && !String.IsNullOrWhiteSpace(((Disk)rom).SHA384) ? " sha384=\"" + ((Disk)rom).SHA384.ToLowerInvariant() + "\"" : "")
|
||||
@@ -818,6 +821,7 @@ namespace SabreTools.Library.DatFiles
|
||||
+ (!ExcludeFields[(int)Field.Size] && ((Rom)rom).Size != -1 ? " size=\"" + ((Rom)rom).Size + "\"" : "")
|
||||
+ (!ExcludeFields[(int)Field.CRC] && !String.IsNullOrWhiteSpace(((Rom)rom).CRC) ? " crc=\"" + ((Rom)rom).CRC.ToLowerInvariant() + "\"" : "")
|
||||
+ (!ExcludeFields[(int)Field.MD5] && !String.IsNullOrWhiteSpace(((Rom)rom).MD5) ? " md5=\"" + ((Rom)rom).MD5.ToLowerInvariant() + "\"" : "")
|
||||
+ (!ExcludeFields[(int)Field.RIPEMD160] && !String.IsNullOrWhiteSpace(((Rom)rom).RIPEMD160) ? " ripemd160=\"" + ((Rom)rom).RIPEMD160.ToLowerInvariant() + "\"" : "")
|
||||
+ (!ExcludeFields[(int)Field.SHA1] && !String.IsNullOrWhiteSpace(((Rom)rom).SHA1) ? " sha1=\"" + ((Rom)rom).SHA1.ToLowerInvariant() + "\"" : "")
|
||||
+ (!ExcludeFields[(int)Field.SHA256] && !String.IsNullOrWhiteSpace(((Rom)rom).SHA256) ? " sha256=\"" + ((Rom)rom).SHA256.ToLowerInvariant() + "\"" : "")
|
||||
+ (!ExcludeFields[(int)Field.SHA384] && !String.IsNullOrWhiteSpace(((Rom)rom).SHA384) ? " sha384=\"" + ((Rom)rom).SHA384.ToLowerInvariant() + "\"" : "")
|
||||
|
||||
@@ -443,6 +443,7 @@ namespace SabreTools.Library.DatFiles
|
||||
Size = Utilities.GetSize(reader.GetAttribute("size")),
|
||||
CRC = Utilities.CleanHashData(reader.GetAttribute("crc"), Constants.CRCLength),
|
||||
MD5 = Utilities.CleanHashData(reader.GetAttribute("md5"), Constants.MD5Length),
|
||||
RIPEMD160 = Utilities.CleanHashData(reader.GetAttribute("ripemd160"), Constants.RIPEMD160Length),
|
||||
SHA1 = Utilities.CleanHashData(reader.GetAttribute("sha1"), Constants.SHA1Length),
|
||||
SHA256 = Utilities.CleanHashData(reader.GetAttribute("sha256"), Constants.SHA256Length),
|
||||
SHA384 = Utilities.CleanHashData(reader.GetAttribute("sha384"), Constants.SHA384Length),
|
||||
@@ -470,6 +471,7 @@ namespace SabreTools.Library.DatFiles
|
||||
{
|
||||
Name = reader.GetAttribute("name"),
|
||||
MD5 = Utilities.CleanHashData(reader.GetAttribute("md5"), Constants.MD5Length),
|
||||
RIPEMD160 = Utilities.CleanHashData(reader.GetAttribute("ripemd160"), Constants.RIPEMD160Length),
|
||||
SHA1 = Utilities.CleanHashData(reader.GetAttribute("sha1"), Constants.SHA1Length),
|
||||
SHA256 = Utilities.CleanHashData(reader.GetAttribute("sha256"), Constants.SHA256Length),
|
||||
SHA384 = Utilities.CleanHashData(reader.GetAttribute("sha384"), Constants.SHA384Length),
|
||||
@@ -709,6 +711,7 @@ namespace SabreTools.Library.DatFiles
|
||||
((Rom)rom).Size = Constants.SizeZero;
|
||||
((Rom)rom).CRC = ((Rom)rom).CRC == "null" ? Constants.CRCZero : null;
|
||||
((Rom)rom).MD5 = ((Rom)rom).MD5 == "null" ? Constants.MD5Zero : null;
|
||||
((Rom)rom).RIPEMD160 = ((Rom)rom).RIPEMD160 == "null" ? Constants.RIPEMD160Zero : null;
|
||||
((Rom)rom).SHA1 = ((Rom)rom).SHA1 == "null" ? Constants.SHA1Zero : null;
|
||||
((Rom)rom).SHA256 = ((Rom)rom).SHA256 == "null" ? Constants.SHA256Zero : null;
|
||||
((Rom)rom).SHA384 = ((Rom)rom).SHA384 == "null" ? Constants.SHA384Zero : null;
|
||||
@@ -908,6 +911,7 @@ namespace SabreTools.Library.DatFiles
|
||||
case ItemType.Disk:
|
||||
state += "\t\t<disk name=\"" + (!ExcludeFields[(int)Field.Name] ? WebUtility.HtmlEncode(rom.Name) : "") + "\""
|
||||
+ (!ExcludeFields[(int)Field.MD5] && !String.IsNullOrWhiteSpace(((Disk)rom).MD5) ? " md5=\"" + ((Disk)rom).MD5.ToLowerInvariant() + "\"" : "")
|
||||
+ (!ExcludeFields[(int)Field.RIPEMD160] && !String.IsNullOrWhiteSpace(((Disk)rom).RIPEMD160) ? " ripemd160=\"" + ((Disk)rom).RIPEMD160.ToLowerInvariant() + "\"" : "")
|
||||
+ (!ExcludeFields[(int)Field.SHA1] && !String.IsNullOrWhiteSpace(((Disk)rom).SHA1) ? " sha1=\"" + ((Disk)rom).SHA1.ToLowerInvariant() + "\"" : "")
|
||||
+ (!ExcludeFields[(int)Field.SHA256] && !String.IsNullOrWhiteSpace(((Disk)rom).SHA256) ? " sha256=\"" + ((Disk)rom).SHA256.ToLowerInvariant() + "\"" : "")
|
||||
+ (!ExcludeFields[(int)Field.SHA384] && !String.IsNullOrWhiteSpace(((Disk)rom).SHA384) ? " sha384=\"" + ((Disk)rom).SHA384.ToLowerInvariant() + "\"" : "")
|
||||
@@ -930,6 +934,7 @@ namespace SabreTools.Library.DatFiles
|
||||
+ (!ExcludeFields[(int)Field.Size] && ((Rom)rom).Size != -1 ? " size=\"" + ((Rom)rom).Size + "\"" : "")
|
||||
+ (!ExcludeFields[(int)Field.CRC] && !String.IsNullOrWhiteSpace(((Rom)rom).CRC) ? " crc=\"" + ((Rom)rom).CRC.ToLowerInvariant() + "\"" : "")
|
||||
+ (!ExcludeFields[(int)Field.MD5] && !String.IsNullOrWhiteSpace(((Rom)rom).MD5) ? " md5=\"" + ((Rom)rom).MD5.ToLowerInvariant() + "\"" : "")
|
||||
+ (!ExcludeFields[(int)Field.RIPEMD160] && !String.IsNullOrWhiteSpace(((Rom)rom).RIPEMD160) ? " ripemd160=\"" + ((Rom)rom).RIPEMD160.ToLowerInvariant() + "\"" : "")
|
||||
+ (!ExcludeFields[(int)Field.SHA1] && !String.IsNullOrWhiteSpace(((Rom)rom).SHA1) ? " sha1=\"" + ((Rom)rom).SHA1.ToLowerInvariant() + "\"" : "")
|
||||
+ (!ExcludeFields[(int)Field.SHA256] && !String.IsNullOrWhiteSpace(((Rom)rom).SHA256) ? " sha256=\"" + ((Rom)rom).SHA256.ToLowerInvariant() + "\"" : "")
|
||||
+ (!ExcludeFields[(int)Field.SHA384] && !String.IsNullOrWhiteSpace(((Rom)rom).SHA384) ? " sha384=\"" + ((Rom)rom).SHA384.ToLowerInvariant() + "\"" : "")
|
||||
|
||||
@@ -814,6 +814,7 @@ namespace SabreTools.Library.DatFiles
|
||||
((Rom)rom).Size = Constants.SizeZero;
|
||||
((Rom)rom).CRC = ((Rom)rom).CRC == "null" ? Constants.CRCZero : null;
|
||||
((Rom)rom).MD5 = ((Rom)rom).MD5 == "null" ? Constants.MD5Zero : null;
|
||||
((Rom)rom).RIPEMD160 = ((Rom)rom).RIPEMD160 == "null" ? Constants.RIPEMD160Zero : null;
|
||||
((Rom)rom).SHA1 = ((Rom)rom).SHA1 == "null" ? Constants.SHA1Zero : null;
|
||||
((Rom)rom).SHA256 = ((Rom)rom).SHA256 == "null" ? Constants.SHA256Zero : null;
|
||||
((Rom)rom).SHA384 = ((Rom)rom).SHA384 == "null" ? Constants.SHA384Zero : null;
|
||||
|
||||
@@ -256,6 +256,7 @@ namespace SabreTools.Library.DatFiles
|
||||
((Rom)rom).Size = Constants.SizeZero;
|
||||
((Rom)rom).CRC = ((Rom)rom).CRC == "null" ? Constants.CRCZero : null;
|
||||
((Rom)rom).MD5 = ((Rom)rom).MD5 == "null" ? Constants.MD5Zero : null;
|
||||
((Rom)rom).RIPEMD160 = ((Rom)rom).RIPEMD160 == "null" ? Constants.RIPEMD160Zero : null;
|
||||
((Rom)rom).SHA1 = ((Rom)rom).SHA1 == "null" ? Constants.SHA1Zero : null;
|
||||
((Rom)rom).SHA256 = ((Rom)rom).SHA256 == "null" ? Constants.SHA256Zero : null;
|
||||
((Rom)rom).SHA384 = ((Rom)rom).SHA384 == "null" ? Constants.SHA384Zero : null;
|
||||
|
||||
@@ -404,6 +404,7 @@ namespace SabreTools.Library.DatFiles
|
||||
{
|
||||
Name = reader.GetAttribute("name"),
|
||||
MD5 = Utilities.CleanHashData(reader.GetAttribute("md5"), Constants.MD5Length),
|
||||
RIPEMD160 = Utilities.CleanHashData(reader.GetAttribute("ripemd160"), Constants.RIPEMD160Length),
|
||||
SHA1 = Utilities.CleanHashData(reader.GetAttribute("sha1"), Constants.SHA1Length),
|
||||
SHA256 = Utilities.CleanHashData(reader.GetAttribute("sha256"), Constants.SHA256Length),
|
||||
SHA384 = Utilities.CleanHashData(reader.GetAttribute("sha384"), Constants.SHA384Length),
|
||||
@@ -436,6 +437,7 @@ namespace SabreTools.Library.DatFiles
|
||||
Size = size,
|
||||
CRC = Utilities.CleanHashData(reader.GetAttribute("crc"), Constants.CRCLength),
|
||||
MD5 = Utilities.CleanHashData(reader.GetAttribute("md5"), Constants.MD5Length),
|
||||
RIPEMD160 = Utilities.CleanHashData(reader.GetAttribute("ripemd160"), Constants.RIPEMD160Length),
|
||||
SHA1 = Utilities.CleanHashData(reader.GetAttribute("sha1"), Constants.SHA1Length),
|
||||
SHA256 = Utilities.CleanHashData(reader.GetAttribute("sha256"), Constants.SHA256Length),
|
||||
SHA384 = Utilities.CleanHashData(reader.GetAttribute("sha384"), Constants.SHA384Length),
|
||||
@@ -847,6 +849,7 @@ namespace SabreTools.Library.DatFiles
|
||||
case ItemType.Disk:
|
||||
state += "<file type=\"disk\" name=\"" + (!ExcludeFields[(int)Field.Name] ? WebUtility.HtmlEncode(rom.Name) : "") + "\""
|
||||
+ (!ExcludeFields[(int)Field.MD5] && !String.IsNullOrWhiteSpace(((Disk)rom).MD5) ? " md5=\"" + ((Disk)rom).MD5.ToLowerInvariant() + "\"" : "")
|
||||
+ (!ExcludeFields[(int)Field.RIPEMD160] && !String.IsNullOrWhiteSpace(((Disk)rom).RIPEMD160) ? " ripemd160=\"" + ((Disk)rom).RIPEMD160.ToLowerInvariant() + "\"" : "")
|
||||
+ (!ExcludeFields[(int)Field.SHA1] && !String.IsNullOrWhiteSpace(((Disk)rom).SHA1) ? " sha1=\"" + ((Disk)rom).SHA1.ToLowerInvariant() + "\"" : "")
|
||||
+ (!ExcludeFields[(int)Field.SHA256] && !String.IsNullOrWhiteSpace(((Disk)rom).SHA256) ? " sha256=\"" + ((Disk)rom).SHA256.ToLowerInvariant() + "\"" : "")
|
||||
+ (!ExcludeFields[(int)Field.SHA384] && !String.IsNullOrWhiteSpace(((Disk)rom).SHA384) ? " sha384=\"" + ((Disk)rom).SHA384.ToLowerInvariant() + "\"" : "")
|
||||
@@ -871,6 +874,7 @@ namespace SabreTools.Library.DatFiles
|
||||
+ (!ExcludeFields[(int)Field.Size] && ((Rom)rom).Size != -1 ? " size=\"" + ((Rom)rom).Size + "\"" : "")
|
||||
+ (!ExcludeFields[(int)Field.CRC] && !String.IsNullOrWhiteSpace(((Rom)rom).CRC) ? " crc=\"" + ((Rom)rom).CRC.ToLowerInvariant() + "\"" : "")
|
||||
+ (!ExcludeFields[(int)Field.MD5] && !String.IsNullOrWhiteSpace(((Rom)rom).MD5) ? " md5=\"" + ((Rom)rom).MD5.ToLowerInvariant() + "\"" : "")
|
||||
+ (!ExcludeFields[(int)Field.RIPEMD160] && !String.IsNullOrWhiteSpace(((Rom)rom).RIPEMD160) ? " ripemd160=\"" + ((Rom)rom).RIPEMD160.ToLowerInvariant() + "\"" : "")
|
||||
+ (!ExcludeFields[(int)Field.SHA1] && !String.IsNullOrWhiteSpace(((Rom)rom).SHA1) ? " sha1=\"" + ((Rom)rom).SHA1.ToLowerInvariant() + "\"" : "")
|
||||
+ (!ExcludeFields[(int)Field.SHA256] && !String.IsNullOrWhiteSpace(((Rom)rom).SHA256) ? " sha256=\"" + ((Rom)rom).SHA256.ToLowerInvariant() + "\"" : "")
|
||||
+ (!ExcludeFields[(int)Field.SHA384] && !String.IsNullOrWhiteSpace(((Rom)rom).SHA384) ? " sha384=\"" + ((Rom)rom).SHA384.ToLowerInvariant() + "\"" : "")
|
||||
|
||||
@@ -121,6 +121,12 @@ namespace SabreTools.Library.DatFiles
|
||||
case "md5 hash":
|
||||
columns.Add("DatItem.MD5");
|
||||
break;
|
||||
case "ripemd":
|
||||
case "ripemd160":
|
||||
case "ripemd hash":
|
||||
case "ripemd160 hash":
|
||||
columns.Add("DatItem.RIPEMD160");
|
||||
break;
|
||||
case "sha1":
|
||||
case "sha-1":
|
||||
case "sha1 hash":
|
||||
@@ -174,8 +180,8 @@ namespace SabreTools.Library.DatFiles
|
||||
}
|
||||
|
||||
// Set the output item information
|
||||
string machineName = null, machineDesc = null, name = null, crc = null, md5 = null, sha1 = null,
|
||||
sha256 = null, sha384 = null, sha512 = null, date = null;
|
||||
string machineName = null, machineDesc = null, name = null, crc = null, md5 = null,
|
||||
ripemd160 = null, sha1 = null, sha256 = null, sha384 = null, sha512 = null, date = null;
|
||||
long size = -1;
|
||||
ItemType itemType = ItemType.Rom;
|
||||
ItemStatus status = ItemStatus.None;
|
||||
@@ -220,6 +226,9 @@ namespace SabreTools.Library.DatFiles
|
||||
case "DatItem.MD5":
|
||||
md5 = Utilities.CleanHashData(value, Constants.MD5Length);
|
||||
break;
|
||||
case "DatItem.RIPEMD160":
|
||||
ripemd160 = Utilities.CleanHashData(value, Constants.RIPEMD160Length);
|
||||
break;
|
||||
case "DatItem.SHA1":
|
||||
sha1 = Utilities.CleanHashData(value, Constants.SHA1Length);
|
||||
break;
|
||||
@@ -271,6 +280,7 @@ namespace SabreTools.Library.DatFiles
|
||||
{
|
||||
Name = name,
|
||||
MD5 = md5,
|
||||
RIPEMD160 = ripemd160,
|
||||
SHA1 = sha1,
|
||||
SHA256 = sha256,
|
||||
SHA384 = sha384,
|
||||
@@ -302,6 +312,7 @@ namespace SabreTools.Library.DatFiles
|
||||
Size = size,
|
||||
CRC = crc,
|
||||
MD5 = md5,
|
||||
RIPEMD160 = ripemd160,
|
||||
SHA1 = sha1,
|
||||
SHA256 = sha256,
|
||||
SHA384 = sha384,
|
||||
@@ -458,6 +469,7 @@ namespace SabreTools.Library.DatFiles
|
||||
size = "",
|
||||
crc = "",
|
||||
md5 = "",
|
||||
ripemd160 = "",
|
||||
sha1 = "",
|
||||
sha256 = "",
|
||||
sha384 = "",
|
||||
@@ -477,6 +489,7 @@ namespace SabreTools.Library.DatFiles
|
||||
size = ((Rom)rom).Size.ToString();
|
||||
crc = ((Rom)rom).CRC;
|
||||
md5 = ((Rom)rom).MD5;
|
||||
ripemd160 = ((Rom)rom).RIPEMD160;
|
||||
sha1 = ((Rom)rom).SHA1;
|
||||
sha256 = ((Rom)rom).SHA256;
|
||||
sha384 = ((Rom)rom).SHA384;
|
||||
@@ -488,6 +501,7 @@ namespace SabreTools.Library.DatFiles
|
||||
type = "disk";
|
||||
diskname = rom.Name;
|
||||
md5 = ((Disk)rom).MD5;
|
||||
ripemd160 = ((Disk)rom).RIPEMD160;
|
||||
sha1 = ((Disk)rom).SHA1;
|
||||
sha256 = ((Disk)rom).SHA256;
|
||||
sha384 = ((Disk)rom).SHA384;
|
||||
@@ -508,6 +522,7 @@ namespace SabreTools.Library.DatFiles
|
||||
+ "{0}\"" + (!ExcludeFields[(int)Field.Size] ? size : "") + "\""
|
||||
+ "{0}\"" + (!ExcludeFields[(int)Field.CRC] ? crc : "") + "\""
|
||||
+ "{0}\"" + (!ExcludeFields[(int)Field.MD5] ? md5 : "") + "\""
|
||||
// + "{0}\"" + (!ExcludeFields[(int)Field.RIPEMD160] ? ripemd160 : "") + "\""
|
||||
+ "{0}\"" + (!ExcludeFields[(int)Field.SHA1] ? sha1 : "") + "\""
|
||||
+ "{0}\"" + (!ExcludeFields[(int)Field.SHA256] ? sha256 : "") + "\""
|
||||
// + "{0}\"" + (!ExcludeFields[(int)Field.SHA384] ? sha384 : "") + "\""
|
||||
|
||||
@@ -432,6 +432,7 @@ namespace SabreTools.Library.DatFiles
|
||||
Size = Utilities.GetSize(reader.GetAttribute("size")),
|
||||
CRC = Utilities.CleanHashData(reader.GetAttribute("crc"), Constants.CRCLength),
|
||||
MD5 = Utilities.CleanHashData(reader.GetAttribute("md5"), Constants.MD5Length),
|
||||
RIPEMD160 = Utilities.CleanHashData(reader.GetAttribute("ripemd160"), Constants.RIPEMD160Length),
|
||||
SHA1 = Utilities.CleanHashData(reader.GetAttribute("sha1"), Constants.SHA1Length),
|
||||
SHA256 = Utilities.CleanHashData(reader.GetAttribute("sha256"), Constants.SHA256Length),
|
||||
SHA384 = Utilities.CleanHashData(reader.GetAttribute("sha384"), Constants.SHA384Length),
|
||||
@@ -526,6 +527,7 @@ namespace SabreTools.Library.DatFiles
|
||||
{
|
||||
Name = reader.GetAttribute("name"),
|
||||
MD5 = Utilities.CleanHashData(reader.GetAttribute("md5"), Constants.MD5Length),
|
||||
RIPEMD160 = Utilities.CleanHashData(reader.GetAttribute("ripemd160"), Constants.RIPEMD160Length),
|
||||
SHA1 = Utilities.CleanHashData(reader.GetAttribute("sha1"), Constants.SHA1Length),
|
||||
SHA256 = Utilities.CleanHashData(reader.GetAttribute("sha256"), Constants.SHA256Length),
|
||||
SHA384 = Utilities.CleanHashData(reader.GetAttribute("sha384"), Constants.SHA384Length),
|
||||
@@ -803,6 +805,7 @@ namespace SabreTools.Library.DatFiles
|
||||
+ (!ExcludeFields[(int)Field.AreaSize] && rom.AreaSize != null ? " size=\"" + rom.AreaSize + "\"" : "") + ">\n"
|
||||
+ "\t\t\t\t<disk name=\"" + (!ExcludeFields[(int)Field.Name] ? WebUtility.HtmlEncode(rom.Name) : "") + "\""
|
||||
+ (!ExcludeFields[(int)Field.MD5] && !String.IsNullOrWhiteSpace(((Disk)rom).MD5) ? " md5=\"" + ((Disk)rom).MD5.ToLowerInvariant() + "\"" : "")
|
||||
+ (!ExcludeFields[(int)Field.RIPEMD160] && !String.IsNullOrWhiteSpace(((Disk)rom).RIPEMD160) ? " ripemd160=\"" + ((Disk)rom).RIPEMD160.ToLowerInvariant() + "\"" : "")
|
||||
+ (!ExcludeFields[(int)Field.SHA1] && !String.IsNullOrWhiteSpace(((Disk)rom).SHA1) ? " sha1=\"" + ((Disk)rom).SHA1.ToLowerInvariant() + "\"" : "")
|
||||
+ (!ExcludeFields[(int)Field.SHA256] && !String.IsNullOrWhiteSpace(((Disk)rom).SHA256) ? " sha256=\"" + ((Disk)rom).SHA256.ToLowerInvariant() + "\"" : "")
|
||||
+ (!ExcludeFields[(int)Field.SHA384] && !String.IsNullOrWhiteSpace(((Disk)rom).SHA384) ? " sha384=\"" + ((Disk)rom).SHA384.ToLowerInvariant() + "\"" : "")
|
||||
@@ -819,6 +822,7 @@ namespace SabreTools.Library.DatFiles
|
||||
+ (!ExcludeFields[(int)Field.Size] && ((Rom)rom).Size != -1 ? " size=\"" + ((Rom)rom).Size + "\"" : "")
|
||||
+ (!ExcludeFields[(int)Field.CRC] && !String.IsNullOrWhiteSpace(((Rom)rom).CRC) ? " crc=\"" + ((Rom)rom).CRC.ToLowerInvariant() + "\"" : "")
|
||||
+ (!ExcludeFields[(int)Field.MD5] && !String.IsNullOrWhiteSpace(((Rom)rom).MD5) ? " md5=\"" + ((Rom)rom).MD5.ToLowerInvariant() + "\"" : "")
|
||||
+ (!ExcludeFields[(int)Field.RIPEMD160] && !String.IsNullOrWhiteSpace(((Rom)rom).RIPEMD160) ? " ripemd160=\"" + ((Rom)rom).RIPEMD160.ToLowerInvariant() + "\"" : "")
|
||||
+ (!ExcludeFields[(int)Field.SHA1] && !String.IsNullOrWhiteSpace(((Rom)rom).SHA1) ? " sha1=\"" + ((Rom)rom).SHA1.ToLowerInvariant() + "\"" : "")
|
||||
+ (!ExcludeFields[(int)Field.SHA256] && !String.IsNullOrWhiteSpace(((Rom)rom).SHA256) ? " sha256=\"" + ((Rom)rom).SHA256.ToLowerInvariant() + "\"" : "")
|
||||
+ (!ExcludeFields[(int)Field.SHA384] && !String.IsNullOrWhiteSpace(((Rom)rom).SHA384) ? " sha384=\"" + ((Rom)rom).SHA384.ToLowerInvariant() + "\"" : "")
|
||||
|
||||
Reference in New Issue
Block a user