refactor: better casting of int types from database
This commit is contained in:
@@ -175,11 +175,11 @@ if (Directory.Exists(tosecXML))
|
|||||||
sql = "INSERT INTO signatures_platforms (platform) VALUES (@platform); SELECT LAST_INSERT_ID()";
|
sql = "INSERT INTO signatures_platforms (platform) VALUES (@platform); SELECT LAST_INSERT_ID()";
|
||||||
sigDB = db.ExecuteCMD(sql, dbDict);
|
sigDB = db.ExecuteCMD(sql, dbDict);
|
||||||
|
|
||||||
gameSystem = int.Parse(sigDB.Rows[0][0].ToString());
|
gameSystem = (int)sigDB.Rows[0][0];
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gameSystem = int.Parse(sigDB.Rows[0][0].ToString());
|
gameSystem = (int)sigDB.Rows[0][0];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
dbDict.Add("systemid", gameSystem);
|
dbDict.Add("systemid", gameSystem);
|
||||||
@@ -196,11 +196,11 @@ if (Directory.Exists(tosecXML))
|
|||||||
// entry not present, insert it
|
// entry not present, insert it
|
||||||
sql = "INSERT INTO signatures_publishers (publisher) VALUES (@publisher); SELECT LAST_INSERT_ID()";
|
sql = "INSERT INTO signatures_publishers (publisher) VALUES (@publisher); SELECT LAST_INSERT_ID()";
|
||||||
sigDB = db.ExecuteCMD(sql, dbDict);
|
sigDB = db.ExecuteCMD(sql, dbDict);
|
||||||
gamePublisher = int.Parse(sigDB.Rows[0][0].ToString());
|
gamePublisher = (int)sigDB.Rows[0][0];
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gamePublisher = int.Parse(sigDB.Rows[0][0].ToString());
|
gamePublisher = (int)sigDB.Rows[0][0];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
dbDict.Add("publisherid", gamePublisher);
|
dbDict.Add("publisherid", gamePublisher);
|
||||||
@@ -218,11 +218,11 @@ if (Directory.Exists(tosecXML))
|
|||||||
"(@name, @description, @year, @publisherid, @demo, @systemid, @systemvariant, @video, @country, @language, @copyright); SELECT LAST_INSERT_ID()";
|
"(@name, @description, @year, @publisherid, @demo, @systemid, @systemvariant, @video, @country, @language, @copyright); SELECT LAST_INSERT_ID()";
|
||||||
sigDB = db.ExecuteCMD(sql, dbDict);
|
sigDB = db.ExecuteCMD(sql, dbDict);
|
||||||
|
|
||||||
gameId = int.Parse(sigDB.Rows[0][0].ToString());
|
gameId = (int)sigDB.Rows[0][0];
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gameId = int.Parse(sigDB.Rows[0][0].ToString());
|
gameId = (int)sigDB.Rows[0][0];
|
||||||
}
|
}
|
||||||
|
|
||||||
// store rom
|
// store rom
|
||||||
@@ -268,11 +268,11 @@ if (Directory.Exists(tosecXML))
|
|||||||
sigDB = db.ExecuteCMD(sql, dbDict);
|
sigDB = db.ExecuteCMD(sql, dbDict);
|
||||||
|
|
||||||
|
|
||||||
romId = int.Parse(sigDB.Rows[0][0].ToString());
|
romId = (int)sigDB.Rows[0][0];
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
romId = int.Parse(sigDB.Rows[0][0].ToString());
|
romId = (int)sigDB.Rows[0][0];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -351,131 +351,142 @@ namespace gaseous_signature_parser.parsers
|
|||||||
|
|
||||||
case "rom":
|
case "rom":
|
||||||
RomSignatureObject.Game.Rom romObject = new RomSignatureObject.Game.Rom();
|
RomSignatureObject.Game.Rom romObject = new RomSignatureObject.Game.Rom();
|
||||||
romObject.Name = xmlGameDetail.Attributes["name"]?.Value;
|
if (xmlGameDetail != null)
|
||||||
romObject.Size = UInt64.Parse(xmlGameDetail.Attributes["size"]?.Value);
|
{
|
||||||
romObject.Crc = xmlGameDetail.Attributes["crc"]?.Value;
|
romObject.Name = xmlGameDetail.Attributes["name"]?.Value;
|
||||||
romObject.Md5 = xmlGameDetail.Attributes["md5"]?.Value;
|
if (xmlGameDetail.Attributes["size"]?.Value != null)
|
||||||
romObject.Sha1 = xmlGameDetail.Attributes["sha1"]?.Value;
|
|
||||||
|
|
||||||
// parse name
|
|
||||||
string[] romNameTokens = romDescription.Split("(");
|
|
||||||
foreach (string rawToken in romNameTokens) {
|
|
||||||
string[] tokenSplit = rawToken.Split("[");
|
|
||||||
|
|
||||||
// replace the extra closing bracket
|
|
||||||
string token = tokenSplit[0].Replace(")", "").Trim();
|
|
||||||
|
|
||||||
// check for copyright
|
|
||||||
if (TOSECDevelopment.ContainsKey(token))
|
|
||||||
{
|
{
|
||||||
romObject.DevelopmentStatus = token;
|
romObject.Size = UInt64.Parse(xmlGameDetail.Attributes["size"]?.Value);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
// check for media type
|
|
||||||
if (token.StartsWith("Disc") ||
|
|
||||||
token.StartsWith("Disk") ||
|
|
||||||
token.StartsWith("File") ||
|
|
||||||
token.StartsWith("Part") ||
|
|
||||||
token.StartsWith("Side") ||
|
|
||||||
token.StartsWith("Tape"))
|
|
||||||
{
|
{
|
||||||
string[] tokens = token.Split(" ");
|
romObject.Size = 0;
|
||||||
switch (tokens[0])
|
}
|
||||||
|
romObject.Crc = xmlGameDetail.Attributes["crc"]?.Value;
|
||||||
|
romObject.Md5 = xmlGameDetail.Attributes["md5"]?.Value;
|
||||||
|
romObject.Sha1 = xmlGameDetail.Attributes["sha1"]?.Value;
|
||||||
|
|
||||||
|
// parse name
|
||||||
|
string[] romNameTokens = romDescription.Split("(");
|
||||||
|
foreach (string rawToken in romNameTokens)
|
||||||
|
{
|
||||||
|
string[] tokenSplit = rawToken.Split("[");
|
||||||
|
|
||||||
|
// replace the extra closing bracket
|
||||||
|
string token = tokenSplit[0].Replace(")", "").Trim();
|
||||||
|
|
||||||
|
// check for copyright
|
||||||
|
if (TOSECDevelopment.ContainsKey(token))
|
||||||
{
|
{
|
||||||
case "Disc":
|
romObject.DevelopmentStatus = token;
|
||||||
romObject.RomType = RomSignatureObject.Game.Rom.RomTypes.Disc;
|
|
||||||
break;
|
|
||||||
case "Disk":
|
|
||||||
romObject.RomType = RomSignatureObject.Game.Rom.RomTypes.Disk;
|
|
||||||
break;
|
|
||||||
case "File":
|
|
||||||
romObject.RomType = RomSignatureObject.Game.Rom.RomTypes.File;
|
|
||||||
break;
|
|
||||||
case "Part":
|
|
||||||
romObject.RomType = RomSignatureObject.Game.Rom.RomTypes.Part;
|
|
||||||
break;
|
|
||||||
case "Side":
|
|
||||||
romObject.RomType = RomSignatureObject.Game.Rom.RomTypes.Side;
|
|
||||||
break;
|
|
||||||
case "Tape":
|
|
||||||
romObject.RomType = RomSignatureObject.Game.Rom.RomTypes.Tape;
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
romObject.RomTypeMedia = token;
|
|
||||||
}
|
|
||||||
|
|
||||||
// check for media label
|
// check for media type
|
||||||
if (token.Length > 0 &&
|
if (token.StartsWith("Disc") ||
|
||||||
(token + ")") == gameNameTokens.Last() &&
|
token.StartsWith("Disk") ||
|
||||||
(
|
token.StartsWith("File") ||
|
||||||
token != romObject.RomTypeMedia &&
|
token.StartsWith("Part") ||
|
||||||
token != gameObject.Publisher &&
|
token.StartsWith("Side") ||
|
||||||
token != gameObject.SystemVariant &&
|
token.StartsWith("Tape"))
|
||||||
token != gameObject.Video &&
|
|
||||||
token != gameObject.Country &&
|
|
||||||
token != gameObject.Copyright &&
|
|
||||||
token != gameObject.Language &&
|
|
||||||
token != romObject.DevelopmentStatus
|
|
||||||
)
|
|
||||||
)
|
|
||||||
{
|
|
||||||
// likely the media label?
|
|
||||||
romObject.MediaLabel = token;
|
|
||||||
}
|
|
||||||
|
|
||||||
// process dump flags
|
|
||||||
if (rawToken.IndexOf("[") > 0)
|
|
||||||
{
|
|
||||||
// has dump flags
|
|
||||||
string rawDumpFlags = rawToken.Substring(rawToken.IndexOf("["));
|
|
||||||
string[] dumpFlags = rawDumpFlags.Split("[");
|
|
||||||
foreach (string dumpFlag in dumpFlags)
|
|
||||||
{
|
{
|
||||||
string dToken = dumpFlag.Replace("]", "");
|
string[] tokens = token.Split(" ");
|
||||||
if (dToken.Length > 0)
|
switch (tokens[0])
|
||||||
{
|
{
|
||||||
string[] dTokenCompare = dToken.Split(" ");
|
case "Disc":
|
||||||
if (dTokenCompare[0].Trim().ToLower().StartsWith("a"))
|
romObject.RomType = RomSignatureObject.Game.Rom.RomTypes.Disc;
|
||||||
{
|
break;
|
||||||
romObject.flags.Add(dTokenCompare[0].Trim());
|
case "Disk":
|
||||||
}
|
romObject.RomType = RomSignatureObject.Game.Rom.RomTypes.Disk;
|
||||||
else
|
break;
|
||||||
{
|
case "File":
|
||||||
|
romObject.RomType = RomSignatureObject.Game.Rom.RomTypes.File;
|
||||||
|
break;
|
||||||
|
case "Part":
|
||||||
|
romObject.RomType = RomSignatureObject.Game.Rom.RomTypes.Part;
|
||||||
|
break;
|
||||||
|
case "Side":
|
||||||
|
romObject.RomType = RomSignatureObject.Game.Rom.RomTypes.Side;
|
||||||
|
break;
|
||||||
|
case "Tape":
|
||||||
|
romObject.RomType = RomSignatureObject.Game.Rom.RomTypes.Tape;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
romObject.RomTypeMedia = token;
|
||||||
|
}
|
||||||
|
|
||||||
switch (dTokenCompare[0].Trim().ToLower())
|
// check for media label
|
||||||
|
if (token.Length > 0 &&
|
||||||
|
(token + ")") == gameNameTokens.Last() &&
|
||||||
|
(
|
||||||
|
token != romObject.RomTypeMedia &&
|
||||||
|
token != gameObject.Publisher &&
|
||||||
|
token != gameObject.SystemVariant &&
|
||||||
|
token != gameObject.Video &&
|
||||||
|
token != gameObject.Country &&
|
||||||
|
token != gameObject.Copyright &&
|
||||||
|
token != gameObject.Language &&
|
||||||
|
token != romObject.DevelopmentStatus
|
||||||
|
)
|
||||||
|
)
|
||||||
|
{
|
||||||
|
// likely the media label?
|
||||||
|
romObject.MediaLabel = token;
|
||||||
|
}
|
||||||
|
|
||||||
|
// process dump flags
|
||||||
|
if (rawToken.IndexOf("[") > 0)
|
||||||
|
{
|
||||||
|
// has dump flags
|
||||||
|
string rawDumpFlags = rawToken.Substring(rawToken.IndexOf("["));
|
||||||
|
string[] dumpFlags = rawDumpFlags.Split("[");
|
||||||
|
foreach (string dumpFlag in dumpFlags)
|
||||||
|
{
|
||||||
|
string dToken = dumpFlag.Replace("]", "");
|
||||||
|
if (dToken.Length > 0)
|
||||||
|
{
|
||||||
|
string[] dTokenCompare = dToken.Split(" ");
|
||||||
|
if (dTokenCompare[0].Trim().ToLower().StartsWith("a"))
|
||||||
{
|
{
|
||||||
case "cr":
|
romObject.flags.Add(dTokenCompare[0].Trim());
|
||||||
// cracked
|
|
||||||
case "f":
|
|
||||||
// fixed
|
|
||||||
case "h":
|
|
||||||
// hacked
|
|
||||||
case "m":
|
|
||||||
// modified
|
|
||||||
case "p":
|
|
||||||
// pirated
|
|
||||||
case "t":
|
|
||||||
// trained
|
|
||||||
case "tr":
|
|
||||||
// translated
|
|
||||||
case "o":
|
|
||||||
// overdump
|
|
||||||
case "u":
|
|
||||||
// underdump
|
|
||||||
case "v":
|
|
||||||
// virus
|
|
||||||
case "b":
|
|
||||||
// bad dump
|
|
||||||
case "a":
|
|
||||||
// alternate
|
|
||||||
case "!":
|
|
||||||
// known verified dump
|
|
||||||
// -------------------
|
|
||||||
romObject.flags.Add(dToken);
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
else
|
||||||
|
{
|
||||||
|
|
||||||
|
switch (dTokenCompare[0].Trim().ToLower())
|
||||||
|
{
|
||||||
|
case "cr":
|
||||||
|
// cracked
|
||||||
|
case "f":
|
||||||
|
// fixed
|
||||||
|
case "h":
|
||||||
|
// hacked
|
||||||
|
case "m":
|
||||||
|
// modified
|
||||||
|
case "p":
|
||||||
|
// pirated
|
||||||
|
case "t":
|
||||||
|
// trained
|
||||||
|
case "tr":
|
||||||
|
// translated
|
||||||
|
case "o":
|
||||||
|
// overdump
|
||||||
|
case "u":
|
||||||
|
// underdump
|
||||||
|
case "v":
|
||||||
|
// virus
|
||||||
|
case "b":
|
||||||
|
// bad dump
|
||||||
|
case "a":
|
||||||
|
// alternate
|
||||||
|
case "!":
|
||||||
|
// known verified dump
|
||||||
|
// -------------------
|
||||||
|
romObject.flags.Add(dToken);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user