From 6918e3c853bae6d21c2ecf3f66e25801cdf92d7d Mon Sep 17 00:00:00 2001 From: Dmitrii Prokudin Date: Thu, 26 Dec 2024 03:41:03 +0300 Subject: [PATCH] Fix bot --- Program.cs | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/Program.cs b/Program.cs index e51aea6..16b9902 100644 --- a/Program.cs +++ b/Program.cs @@ -9,6 +9,7 @@ using Dapper; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Logging; using Npgsql; using UserOfTheDayBot.Data; using UserOfTheDayBot.Services; @@ -23,6 +24,11 @@ public class Program config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true); config.AddEnvironmentVariables(); // Добавление переменных среды }) + .ConfigureLogging(logging => + { + logging.ClearProviders(); + logging.AddConsole(); // Вывод логов в консоль + }) .ConfigureServices((context, services) => { services.AddSingleton(); @@ -38,5 +44,36 @@ public class Program }); }) .Build(); + + var logger = host.Services.GetRequiredService>(); + logger.LogInformation("Bot is starting..."); + + var botService = host.Services.GetRequiredService(); + var botClient = host.Services.GetRequiredService(); + + using var cts = new CancellationTokenSource(); + + Console.CancelKeyPress += (_, _) => cts.Cancel(); + + botClient.StartReceiving( + updateHandler: async (bot, update, token) => + { + // Получение вашего BotService из DI + var botService = host.Services.GetRequiredService(); + await botService.HandleUpdateAsync(update, token); + }, + errorHandler: async (bot, exception, token) => + { + logger.LogError($"Telegram Bot Error: {exception.Message}"); + await Task.CompletedTask; + }, + receiverOptions: new Telegram.Bot.Polling.ReceiverOptions + { + AllowedUpdates = Array.Empty() // Получать все обновления + }, + cancellationToken: cts.Token + ); + logger.LogInformation("Bot is running. Press Ctrl+C to stop."); + await Task.Delay(Timeout.Infinite, cts.Token); } }