Add Aaruformat validation and media item type (#29)

* Initial `media` and AaruFormat code

* But... why?

* Fix AIF reading

* Fix D2D, Logiqx cleanup

* Minor cleanup

* Final cleanup round
This commit is contained in:
Matt Nadareski
2020-08-27 16:57:22 -07:00
committed by GitHub
parent 3b481de3b9
commit 4d0a3f55eb
51 changed files with 2853 additions and 908 deletions

View File

@@ -65,8 +65,8 @@ have a current entry in the DAT index.";
DatFile df = DatFile.Create();
foreach (string dir in onlyDirs)
{
df.PopulateFromDir(dir, asFiles: TreatAsFiles.CHDs);
df.PopulateFromDir(dir, asFiles: TreatAsFiles.Archives | TreatAsFiles.CHDs);
df.PopulateFromDir(dir, asFiles: TreatAsFiles.AaruFormats | TreatAsFiles.CHDs);
df.PopulateFromDir(dir, asFiles: TreatAsFiles.AaruFormats | TreatAsFiles.Archives | TreatAsFiles.CHDs);
}
// Create an empty Dat for files that need to be rebuilt
@@ -194,7 +194,7 @@ have a current entry in the DAT index.";
outDir: _depots.Keys.ToList()[0],
outputFormat: OutputFormat.TorrentGzipRomba,
updateDat: false,
asFiles: TreatAsFiles.CHDs);
asFiles: TreatAsFiles.AaruFormats | TreatAsFiles.CHDs);
}
}
}

View File

@@ -629,7 +629,39 @@ namespace RombaSharp.Features
{
Globals.Logger.Verbose($"Checking and adding file '{datItem.Name}'");
if (datItem.ItemType == ItemType.Rom)
if (datItem.ItemType == ItemType.Disk)
{
Disk disk = (Disk)datItem;
hasItems = true;
if (!string.IsNullOrWhiteSpace(disk.MD5))
md5query += $" (\"{disk.MD5}\"),";
if (!string.IsNullOrWhiteSpace(disk.SHA1))
{
sha1query += $" (\"{disk.SHA1}\"),";
if (!string.IsNullOrWhiteSpace(disk.MD5))
md5sha1query += $" (\"{disk.MD5}\", \"{disk.SHA1}\"),";
}
}
else if (datItem.ItemType == ItemType.Media)
{
Media media = (Media)datItem;
hasItems = true;
if (!string.IsNullOrWhiteSpace(media.MD5))
md5query += $" (\"{media.MD5}\"),";
if (!string.IsNullOrWhiteSpace(media.SHA1))
{
sha1query += $" (\"{media.SHA1}\"),";
if (!string.IsNullOrWhiteSpace(media.MD5))
md5sha1query += $" (\"{media.MD5}\", \"{media.SHA1}\"),";
}
}
else if (datItem.ItemType == ItemType.Rom)
{
Rom rom = (Rom)datItem;
hasItems = true;
@@ -651,22 +683,6 @@ namespace RombaSharp.Features
md5sha1query += $" (\"{rom.MD5}\", \"{rom.SHA1}\"),";
}
}
else if (datItem.ItemType == ItemType.Disk)
{
Disk disk = (Disk)datItem;
hasItems = true;
if (!string.IsNullOrWhiteSpace(disk.MD5))
md5query += $" (\"{disk.MD5}\"),";
if (!string.IsNullOrWhiteSpace(disk.SHA1))
{
sha1query += $" (\"{disk.SHA1}\"),";
if (!string.IsNullOrWhiteSpace(disk.MD5))
md5sha1query += $" (\"{disk.MD5}\", \"{disk.SHA1}\"),";
}
}
}
}

View File

@@ -51,7 +51,7 @@ namespace RombaSharp.Features
DatFile datfile = DatFile.Create();
datfile.Header.Name = string.IsNullOrWhiteSpace(name) ? "untitled" : name;
datfile.Header.Description = description;
datfile.PopulateFromDir(source, bare: true, asFiles: TreatAsFiles.CHDs);
datfile.PopulateFromDir(source, bare: true, asFiles: TreatAsFiles.AaruFormats | TreatAsFiles.CHDs);
datfile.Write(outDir: outdat);
}
}

View File

@@ -62,7 +62,7 @@ contents of any changed dats.";
// First get a list of SHA-1's from the input DATs
DatFile datroot = DatFile.Create();
datroot.Header.Type = "SuperDAT";
datroot.PopulateFromDir(_dats, asFiles: TreatAsFiles.CHDs);
datroot.PopulateFromDir(_dats, asFiles: TreatAsFiles.AaruFormats | TreatAsFiles.CHDs);
datroot.Items.BucketBy(Field.DatItem_SHA1, DedupeType.None);
// Create a List of dat hashes in the database (SHA-1)

View File

@@ -64,7 +64,7 @@ namespace RombaSharp.Features
// Now rescan the depot itself
DatFile depot = DatFile.Create();
depot.PopulateFromDir(depotname, asFiles: TreatAsFiles.CHDs);
depot.PopulateFromDir(depotname, asFiles: TreatAsFiles.AaruFormats | TreatAsFiles.CHDs);
depot.Items.BucketBy(Field.DatItem_SHA1, DedupeType.None);
// Set the base queries to use