diff --git a/SabreTools.Library/DatFiles/DatFile.cs b/SabreTools.Library/DatFiles/DatFile.cs index 6239ebd9..a7bf1b17 100644 --- a/SabreTools.Library/DatFiles/DatFile.cs +++ b/SabreTools.Library/DatFiles/DatFile.cs @@ -6226,6 +6226,10 @@ Please check the log folder if the stats scrolled offscreen", false); { output.Add(StatReportFormat.HTML, CreateOutStatsNamesHelper(outDir, ".html", reportName, overwrite)); } + if ((statDatFormat & StatReportFormat.SSV) != 0) + { + output.Add(StatReportFormat.SSV, CreateOutStatsNamesHelper(outDir, ".ssv", reportName, overwrite)); + } if ((statDatFormat & StatReportFormat.TSV) != 0) { output.Add(StatReportFormat.TSV, CreateOutStatsNamesHelper(outDir, ".tsv", reportName, overwrite)); diff --git a/SabreTools.Library/Data/Flags.cs b/SabreTools.Library/Data/Flags.cs index 381fc716..87bbf919 100644 --- a/SabreTools.Library/Data/Flags.cs +++ b/SabreTools.Library/Data/Flags.cs @@ -273,9 +273,10 @@ namespace SabreTools.Library.Data Textfile = 0x01, HTML = Textfile << 1, CSV = HTML << 1, - TSV = CSV << 1, + SSV = CSV << 1, + TSV = SSV << 1, - All = Textfile | HTML | CSV | TSV, + All = Textfile | HTML | CSV | SSV | TSV, } /// diff --git a/SabreTools.Library/README.1ST b/SabreTools.Library/README.1ST index 6dcd1b3a..5ebab96d 100644 --- a/SabreTools.Library/README.1ST +++ b/SabreTools.Library/README.1ST @@ -637,21 +637,38 @@ Options: - Items that include a SHA-512 - Items with Nodump status - -as, --all-stats Write all statistics to all available formats + -srt, --report-type Output statistics to a specified format + Add outputting the created DAT to known format. Multiple instances + of this flag are allowed. + + Possible values are: + all - All available DAT types + csv - Standardized Comma-Separated Value + html - HTML webpage + ssv - Standardized Semicolon-Separated Value + text - Generic textfile + tsv - Standardized Tab-Separated Value + + -as, --all-stats Write all statistics to all available formats [DEPRECIATED] Output all statistical information to all available formats. + [DEPRECIATED] - -csv, --csv Output in Comma-Separated Value format + -csv, --csv Output in Comma-Separated Value format [DEPRECIATED] Output all statistical information in standardized CSV format. + [DEPRECIATED] - -html, --html Output in HTML format + -html, --html Output in HTML format [DEPRECIATED] Output all statistical information in standardized HTML format. + [DEPRECIATED] - -tsv, --tsv Output in Tab-Separated Value format + -tsv, --tsv Output in Tab-Separated Value format [DEPRECIATED] Output all statistical information in standardized TSV format. + [DEPRECIATED] - -txt, --text Output in generic text format + -txt, --text Output in generic text format [DEPRECIATED] Output all statistical information in generic text format. If no other format flags are enabled, this is the default output. + [DEPRECIATED] -f, --filename Set the external name of the DAT Set the external filename for the output DAT(s) diff --git a/SabreTools.Library/Tools/Utilities.cs b/SabreTools.Library/Tools/Utilities.cs index ba02e008..356f2c51 100644 --- a/SabreTools.Library/Tools/Utilities.cs +++ b/SabreTools.Library/Tools/Utilities.cs @@ -558,6 +558,8 @@ namespace SabreTools.Library.Tools return new Reports.SeparatedValue(null, filename, ',', baddumpCol, nodumpCol); case StatReportFormat.HTML: return new Html(null, filename, baddumpCol, nodumpCol); + case StatReportFormat.SSV: + return new Reports.SeparatedValue(null, filename, ';', baddumpCol, nodumpCol); case StatReportFormat.TSV: return new Reports.SeparatedValue(null, filename, '\t', baddumpCol, nodumpCol); } @@ -918,6 +920,32 @@ namespace SabreTools.Library.Tools } } + /// + /// Get StatReportFormat value from input string + /// + /// String to get value from + /// StatReportFormat value corresponding to the string + public static StatReportFormat GetStatFormat(string input) + { + switch (input?.Trim().ToLowerInvariant()) + { + case "all": + return StatReportFormat.All; + case "csv": + return StatReportFormat.CSV; + case "html": + return StatReportFormat.HTML; + case "ssv": + return StatReportFormat.SSV; + case "text": + return StatReportFormat.Textfile; + case "tsv": + return StatReportFormat.TSV; + default: + return 0x0; + } + } + /// /// Get a sanitized size from an input string /// diff --git a/SabreTools/SabreTools.Help.cs b/SabreTools/SabreTools.Help.cs index 05ef8631..08bbec69 100644 --- a/SabreTools/SabreTools.Help.cs +++ b/SabreTools/SabreTools.Help.cs @@ -40,11 +40,11 @@ namespace SabreTools return new Feature( "all-stats", new List() { "-as", "--all-stats" }, - "Write all statistics to all available formats", + "Write all statistics to all available formats [DEPRECIATED]", FeatureType.Flag, - longDescription: "Output all statistical information to all available formats."); + longDescription: "Output all statistical information to all available formats. [DEPRECIATED]"); } - } + } // TODO: Remove private static Feature _archivesAsFilesFlag { get @@ -136,11 +136,11 @@ namespace SabreTools return new Feature( "csv", new List() { "-csv", "--csv" }, - "Output in Comma-Separated Value format", + "Output in Comma-Separated Value format [DEPRECIATED]", FeatureType.Flag, - longDescription: "Output all statistical information in standardized CSV format."); + longDescription: "Output all statistical information in standardized CSV format. [DEPRECIATED]"); } - } + } // TODO: Remove private static Feature _datDeviceNonMergedFlag { get @@ -424,11 +424,11 @@ namespace SabreTools return new Feature( "html", new List() { "-html", "--html" }, - "Output in HTML format", + "Output in HTML format [DEPRECIATED]", FeatureType.Flag, - longDescription: "Output all statistical information in standardized HTML format."); + longDescription: "Output all statistical information in standardized HTML format. [DEPRECIATED]"); } - } + } // TODO: Remove private static Feature _individualFlag { get @@ -1168,11 +1168,11 @@ namespace SabreTools return new Feature( "text", new List() { "-txt", "--text" }, - "Output in generic text format", + "Output in generic text format [DEPRECIATED]", FeatureType.Flag, - longDescription: "Output all statistical information in generic text format. If no other format flags are enabled, this is the default output."); + longDescription: "Output all statistical information in generic text format. If no other format flags are enabled, this is the default output. [DEPRECIATED]"); } - } + } // TODO: Remove private static Feature _torrent7zipFlag { get @@ -1300,11 +1300,11 @@ namespace SabreTools return new Feature( "tsv", new List() { "-tsv", "--tsv" }, - "Output in Tab-Separated Value format", + "Output in Tab-Separated Value format [DEPRECIATED]", FeatureType.Flag, - longDescription: "Output all statistical information in standardized TSV format."); + longDescription: "Output all statistical information in standardized TSV format. [DEPRECIATED]"); } - } + } // TODO: Remove private static Feature _typeFlag { get @@ -1802,6 +1802,26 @@ Possible values are: xml, logiqx - Logiqx XML"); } } + private static Feature _reportTypeListInput + { + get + { + return new Feature( + "report-type", + new List() { "-srt", "--report-type" }, + "Output statistics to a specified format", + FeatureType.List, + longDescription: @"Add outputting the created DAT to known format. Multiple instances of this flag are allowed. + +Possible values are: + all - All available DAT types + csv - Standardized Comma-Separated Value + html - HTML webpage + ssv - Standardized Semicolon-Separated Value + text - Generic textfile + tsv - Standardized Tab-Separated Value"); + } + } private static Feature _sha1ListInput { get @@ -2486,6 +2506,9 @@ The stats that are outputted are as follows: - Items that include a SHA-384 - Items that include a SHA-512 - Items with Nodump status"); + // NEW + stats.AddFeature(_reportTypeListInput); + // OLD stats.AddFeature(_allStatsFlag); stats.AddFeature(_csvFlag); stats.AddFeature(_htmlFlag); diff --git a/SabreTools/SabreTools.cs b/SabreTools/SabreTools.cs index 5fb885d5..72f5e7e7 100644 --- a/SabreTools/SabreTools.cs +++ b/SabreTools/SabreTools.cs @@ -205,6 +205,7 @@ namespace SabreTools addFileDates = true; break; case "all-stats": + Globals.Logger.User("This flag '{0}' is depreciated, pleause use {1} instead", feat.Key, String.Join(", ", _reportTypeListInput.Flags)); statDatFormat = StatReportFormat.All; break; case "archives-as-files": @@ -229,6 +230,7 @@ namespace SabreTools cleanGameNames = true; break; case "csv": + Globals.Logger.User("This flag '{0}' is depreciated, pleause use {1} instead", feat.Key, String.Join(", ", _reportTypeListInput.Flags)); statDatFormat |= StatReportFormat.CSV; break; case "dat-device-non-merged": @@ -306,6 +308,7 @@ namespace SabreTools hashOnly = true; break; case "html": + Globals.Logger.User("This flag '{0}' is depreciated, pleause use {1} instead", feat.Key, String.Join(", ", _reportTypeListInput.Flags)); statDatFormat |= StatReportFormat.HTML; break; case "individual": @@ -521,6 +524,7 @@ namespace SabreTools outputFormat = OutputFormat.TapeArchive; break; case "text": + Globals.Logger.User("This flag '{0}' is depreciated, pleause use {1} instead", feat.Key, String.Join(", ", _reportTypeListInput.Flags)); statDatFormat |= StatReportFormat.Textfile; break; case "torrent-7zip": @@ -554,6 +558,7 @@ namespace SabreTools filter.Trim = true; break; case "tsv": + Globals.Logger.User("This flag '{0}' is depreciated, pleause use {1} instead", feat.Key, String.Join(", ", _reportTypeListInput.Flags)); statDatFormat |= StatReportFormat.TSV; break; case "type": @@ -703,6 +708,12 @@ namespace SabreTools } } break; + case "report-type": + foreach (string rt in (List)feat.Value.GetValue()) + { + statDatFormat |= Utilities.GetStatFormat(rt); + } + break; case "sha1": filter.SHA1s.AddRange((List)feat.Value.GetValue()); break;