diff --git a/Aaru.Core/Statistics.cs b/Aaru.Core/Statistics.cs index fa694f41e..311d92fd5 100644 --- a/Aaru.Core/Statistics.cs +++ b/Aaru.Core/Statistics.cs @@ -664,4 +664,32 @@ public static class Statistics AaruLogging.Exception(ex, Localization.Core.Exception_while_trying_to_save_statistics); } } + + /// Ads a new archive to statistics + /// Archive format name + public static void AddArchiveFormat(string format) + { + if(string.IsNullOrWhiteSpace(format)) return; + + if(Settings.Settings.Current.Stats is not { MediaStats: true }) return; + + using var ctx = AaruContext.Create(Settings.Settings.LocalDbPath); + + ctx.Archives.Add(new Archive + { + Name = format, + Synchronized = false, + Count = 1 + }); + + try + { + ctx.SaveChanges(); + } + catch(SqliteException ex) + { + AaruLogging.Debug(MODULE_NAME, Localization.Core.Exception_while_trying_to_save_statistics); + AaruLogging.Exception(ex, Localization.Core.Exception_while_trying_to_save_statistics); + } + } } \ No newline at end of file diff --git a/Aaru/Commands/Archive/Extract.cs b/Aaru/Commands/Archive/Extract.cs index de5fab8aa..87395f296 100644 --- a/Aaru/Commands/Archive/Extract.cs +++ b/Aaru/Commands/Archive/Extract.cs @@ -143,8 +143,7 @@ sealed class ArchiveExtractCommand : Command AaruLogging.Debug(MODULE_NAME, UI.Correctly_opened_archive_file); - // TODO: Implement - //Statistics.AddArchiveFormat(archive.Name); + Statistics.AddArchiveFormat(archive.Name); Statistics.AddFilter(inputFilter.Name); } catch(Exception ex) diff --git a/Aaru/Commands/Archive/Info.cs b/Aaru/Commands/Archive/Info.cs index a15866add..59ddc23c1 100644 --- a/Aaru/Commands/Archive/Info.cs +++ b/Aaru/Commands/Archive/Info.cs @@ -121,8 +121,7 @@ sealed class ArchiveInfoCommand : Command ArchiveInfo.PrintArchiveInfo(archiveFormat, inputFilter, encodingClass); }); - // TODO: Implement - //Statistics.AddArchiveFormat(archiveFormat.Format); + Statistics.AddArchiveFormat(archiveFormat.Name); Statistics.AddFilter(inputFilter.Name); } catch(Exception ex) diff --git a/Aaru/Commands/Archive/List.cs b/Aaru/Commands/Archive/List.cs index 2db21396d..8409d0d09 100644 --- a/Aaru/Commands/Archive/List.cs +++ b/Aaru/Commands/Archive/List.cs @@ -140,8 +140,7 @@ sealed class ArchiveListCommand : Command AaruLogging.Debug(MODULE_NAME, UI.Correctly_opened_archive_file); - // TODO: Implement - //Statistics.AddArchiveFormat(archive.Name); + Statistics.AddArchiveFormat(archive.Name); Statistics.AddFilter(inputFilter.Name); } catch(Exception ex)