Files
BotPages/Demo/Program.cs
FrigaT d817417a69
All checks were successful
CI / build-test (push) Successful in 42s
Переработанная версия ядра
2025-12-05 12:57:05 +03:00

42 lines
1.3 KiB
C#

using BotPages.Core;
using BotPages.Core.Abstractions;
using BotPages.Core.Logging;
using BotPages.Core.Middleware;
using BotPages.Core.Storage;
using BotPages.Telegram;
using Demo.Pages;
namespace Demo
{
internal class Program
{
public static async Task Main(string[] args)
{
var token = Environment.GetEnvironmentVariable("TELEGRAM_TOKEN")
?? throw new InvalidOperationException("TELEGRAM_TOKEN not set");
var logger = new ConsoleLogger();
var state = new InMemoryStateStorage();
var telegram = new TelegramAdapter(logger);
var factory = new MultiAdapterFactory()
.Register("Telegram", telegram);
var app = new BotPagesApp(factory, state, logger)
.AddDefaultPage<WelcomePage>()
.MapCommand<WelcomePage>("/start")
.AddMiddleware(new ErrorHandlingMiddleware(logger))
.AddMiddleware(new LoggingMiddleware(logger));
using var cts = new CancellationTokenSource();
await telegram.StartPollingAsync(token,
update => app.HandleUpdateAsync(update, CancellationToken.None),
cts.Token);
Console.ReadKey();
cts.Cancel();
}
}
}