Files
jsmr/JSMR.Worker/UI/CliUi.cs
Brian Bicknell 61f2e64972
All checks were successful
ci / build-test (push) Successful in 2m38s
ci / publish-image (push) Has been skipped
Updated scanner and table names.
2026-03-05 20:56:57 -05:00

40 lines
1.2 KiB
C#

namespace JSMR.Worker.UI;
using Spectre.Console;
public static class CliUi
{
public static void PageHeader(int page, int? endPage)
{
AnsiConsole.MarkupLine($"[grey]Scanning page[/] [bold]{page}[/] [grey]of[/] [bold]{endPage}[/][grey]...[/]");
}
public static void PageHighlights(int newUpcoming, int newRelease)
{
if (newUpcoming == 0 && newRelease == 0)
return;
// Nice little boxed summary
var grid = new Grid().AddColumn().AddColumn();
if (newUpcoming > 0)
grid.AddRow("[yellow]Upcoming[/]", $"[yellow]{newUpcoming}[/]");
if (newRelease > 0)
grid.AddRow("[green]New releases[/]", $"[green]{newRelease}[/]");
var panel = new Panel(grid)
.Header("[bold]Page updates[/]")
.Border(BoxBorder.Rounded)
.Padding(1, 0, 1, 0);
AnsiConsole.Write(panel);
}
public static void Warning(string message) =>
AnsiConsole.MarkupLine($"[yellow]⚠ {Escape(message)}[/]");
public static void Error(string message) =>
AnsiConsole.MarkupLine($"[red]✖ {Escape(message)}[/]");
private static string Escape(string s) => Markup.Escape(s);
}