refactor: modernize code, improve performance, and clean up various components.
This commit is contained in:
@@ -1,7 +1,3 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using System.CommandLine;
|
||||
using Spectre.Console;
|
||||
using Toak.Core;
|
||||
|
||||
@@ -9,7 +5,7 @@ namespace Toak.Commands;
|
||||
|
||||
public static class StatsCommand
|
||||
{
|
||||
public static async Task ExecuteAsync(bool verbose)
|
||||
public static Task ExecuteAsync(bool verbose)
|
||||
{
|
||||
Logger.Verbose = verbose;
|
||||
|
||||
@@ -17,7 +13,7 @@ public static class StatsCommand
|
||||
if (entries.Count == 0)
|
||||
{
|
||||
AnsiConsole.MarkupLine("[yellow]No history found. Cannot generate statistics.[/]");
|
||||
return;
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
var totalCount = entries.Count;
|
||||
@@ -30,7 +26,7 @@ public static class StatsCommand
|
||||
.FirstOrDefault();
|
||||
|
||||
var topWords = entries
|
||||
.SelectMany(e => e.RefinedText.Split(new[] { ' ', '.', ',', '!', '?' }, StringSplitOptions.RemoveEmptyEntries))
|
||||
.SelectMany(e => e.RefinedText.Split([' ', '.', ',', '!', '?'], StringSplitOptions.RemoveEmptyEntries))
|
||||
.Where(w => w.Length > 3) // Exclude short common words
|
||||
.GroupBy(w => w.ToLowerInvariant())
|
||||
.OrderByDescending(g => g.Count())
|
||||
@@ -52,5 +48,6 @@ public static class StatsCommand
|
||||
{
|
||||
AnsiConsole.MarkupLine($"[dim]Top spoken words (>3 chars):[/] {string.Join(", ", topWords)}");
|
||||
}
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user