From ed4c49357417b0ec43cf5c856eaa441631dae01b Mon Sep 17 00:00:00 2001 From: Dmitrii Prokudin Date: Wed, 25 Dec 2024 05:20:58 +0300 Subject: [PATCH] Deploy --- Program.cs | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/Program.cs b/Program.cs index cf07792..2bf2795 100644 --- a/Program.cs +++ b/Program.cs @@ -1,10 +1,10 @@ using System; using System.Data; +using System.Threading; using System.Threading.Tasks; using Telegram.Bot; using Telegram.Bot.Types; using Telegram.Bot.Types.Enums; -using Telegram.Bot.Types.ReplyMarkups; using Dapper; using Npgsql; @@ -18,25 +18,32 @@ class Program static async Task Main(string[] args) { Console.WriteLine("Bot is running..."); - botClient.StartReceiving(UpdateHandler, ErrorHandler); - Console.ReadLine(); + // Управление токеном завершения + var cts = new CancellationTokenSource(); + Console.CancelKeyPress += (_, _) => cts.Cancel(); + + botClient.StartReceiving(UpdateHandler, ErrorHandler, cancellationToken: cts.Token); + + Console.WriteLine("Press Ctrl+C to exit..."); + await Task.Delay(Timeout.Infinite, cts.Token); } private static async Task UpdateHandler(ITelegramBotClient bot, Update update, CancellationToken cancellationToken) { - Console.WriteLine($"Start recieveing"); + Console.WriteLine("Received an update"); if (update.Type == UpdateType.Message && update.Message?.Text != null) { var message = update.Message; + if (message.Text.StartsWith("/help")) { - await bot.SendMessage(message.Chat.Id, "Уйди. Попробуйте /reg", cancellationToken: cancellationToken); + await bot.SendTextMessageAsync(message.Chat.Id, "Уйди. Попробуйте /reg", cancellationToken: cancellationToken); } - if (message.Text.StartsWith("/reg")) + else if (message.Text.StartsWith("/reg")) { - await RegisterUser(message); + await RegisterUser(message, cancellationToken); } else { @@ -45,7 +52,7 @@ class Program } } - private static async Task RegisterUser(Message message) + private static async Task RegisterUser(Message message, CancellationToken cancellationToken) { try { @@ -64,18 +71,18 @@ class Program if (rowsAffected > 0) { - await botClient.SendTextMessageAsync(message.Chat.Id, "Вы успешно зарегистрированы!"); + await botClient.SendTextMessageAsync(message.Chat.Id, "Вы успешно зарегистрированы!", cancellationToken: cancellationToken); } else { - await botClient.SendTextMessageAsync(message.Chat.Id, "Вы уже зарегистрированы."); + await botClient.SendTextMessageAsync(message.Chat.Id, "Вы уже зарегистрированы.", cancellationToken: cancellationToken); } } } catch (Exception ex) { Console.WriteLine($"Error: {ex.Message}"); - await botClient.SendTextMessageAsync(message.Chat.Id, "Произошла ошибка при регистрации. Попробуйте позже."); + await botClient.SendTextMessageAsync(message.Chat.Id, "Произошла ошибка при регистрации. Попробуйте позже.", cancellationToken: cancellationToken); } }