mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Complex change to (seemingly) eliminate dupes properly
This commit is contained in:
@@ -236,12 +236,20 @@ JOIN files
|
|||||||
ON games.id=files.setid
|
ON games.id=files.setid
|
||||||
JOIN checksums
|
JOIN checksums
|
||||||
ON files.id=checksums.file" +
|
ON files.id=checksums.file" +
|
||||||
(!sysmerged || !srcmerged ? "\nWHERE" : "") +
|
(!sysmerged || !srcmerged ? "\nWHERE" : "") +
|
||||||
(!srcmerged ? " sources.id=" + _source : "") +
|
(!srcmerged ? " sources.id=" + _source : "") +
|
||||||
(!srcmerged && !sysmerged ? " AND" : "") +
|
(!srcmerged && !sysmerged ? " AND" : "") +
|
||||||
(!sysmerged ? " systems.id=" + _system : "") +
|
(!sysmerged ? " systems.id=" + _system : "") + "\n" +
|
||||||
(merged ? "\nGROUP BY checksums.size, checksums.crc, checksums.md5, checksums.sha1" : "") +
|
(sysmerged && srcmerged ? "\nWHERE" : " AND") +
|
||||||
|
" files.id IN ( SELECT file from checksums WHERE file IN (" +
|
||||||
|
" SELECT file FROM checksums WHERE file IN (" +
|
||||||
|
" SELECT file FROM checksums" +
|
||||||
|
(merged ? "\nGROUP BY size, sha1" : "") + " )" +
|
||||||
|
(merged ? "\nGROUP BY size, md5" : "") + " )" +
|
||||||
|
(merged ? "\nGROUP BY size, crc" : "") + " )" +
|
||||||
|
(merged ? "\nGROUP BY checksums.size, checksums.md5, checksums.sha1" : "") +
|
||||||
"\nORDER BY systems.id, sources.id, games.name, files.name";
|
"\nORDER BY systems.id, sources.id, games.name, files.name";
|
||||||
|
|
||||||
using (SQLiteConnection dbc = new SQLiteConnection(_connectionString))
|
using (SQLiteConnection dbc = new SQLiteConnection(_connectionString))
|
||||||
{
|
{
|
||||||
dbc.Open();
|
dbc.Open();
|
||||||
|
|||||||
@@ -266,12 +266,10 @@ namespace DATabase
|
|||||||
|
|
||||||
// Experimental looping using only XML parsing
|
// Experimental looping using only XML parsing
|
||||||
XmlNode node = doc.FirstChild;
|
XmlNode node = doc.FirstChild;
|
||||||
Console.WriteLine(node.Name);
|
|
||||||
if (node != null && node.Name == "xml")
|
if (node != null && node.Name == "xml")
|
||||||
{
|
{
|
||||||
node = node.NextSibling;
|
node = node.NextSibling;
|
||||||
}
|
}
|
||||||
Console.WriteLine(node.Name);
|
|
||||||
if (node != null && (node.Name == "datafile" || node.Name == "softwarelist"))
|
if (node != null && (node.Name == "datafile" || node.Name == "softwarelist"))
|
||||||
{
|
{
|
||||||
if (node.NextSibling != null && node.NextSibling.Name == node.Name)
|
if (node.NextSibling != null && node.NextSibling.Name == node.Name)
|
||||||
@@ -280,7 +278,6 @@ namespace DATabase
|
|||||||
}
|
}
|
||||||
node = node.FirstChild;
|
node = node.FirstChild;
|
||||||
}
|
}
|
||||||
Console.WriteLine(node.Name);
|
|
||||||
if (node != null && node.Name == "header")
|
if (node != null && node.Name == "header")
|
||||||
{
|
{
|
||||||
if (node.SelectSingleNode("name").InnerText.Contains(" - SuperDAT"))
|
if (node.SelectSingleNode("name").InnerText.Contains(" - SuperDAT"))
|
||||||
@@ -327,9 +324,9 @@ namespace DATabase
|
|||||||
child.Attributes["name"].Value,
|
child.Attributes["name"].Value,
|
||||||
date,
|
date,
|
||||||
(child.Attributes["size"] != null ? Int32.Parse(child.Attributes["size"].Value) : -1),
|
(child.Attributes["size"] != null ? Int32.Parse(child.Attributes["size"].Value) : -1),
|
||||||
(child.Attributes["crc"] != null ? child.Attributes["crc"].Value : ""),
|
(child.Attributes["crc"] != null ? child.Attributes["crc"].Value.ToLowerInvariant() : ""),
|
||||||
(child.Attributes["md5"] != null ? child.Attributes["md5"].Value : ""),
|
(child.Attributes["md5"] != null ? child.Attributes["md5"].Value.ToLowerInvariant() : ""),
|
||||||
(child.Attributes["sha1"] != null ? child.Attributes["sha1"].Value : "")
|
(child.Attributes["sha1"] != null ? child.Attributes["sha1"].Value.ToLowerInvariant() : "")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
// If we find the signs of a software list, traverse the children
|
// If we find the signs of a software list, traverse the children
|
||||||
|
|||||||
Reference in New Issue
Block a user