Deploy
All checks were successful
Local Deploy with Docker / build-and-deploy (push) Successful in 6s

This commit is contained in:
Dmitrii Prokudin 2024-12-25 05:20:58 +03:00
parent 950bed61e3
commit ed4c493574

View File

@ -1,10 +1,10 @@
using System; using System;
using System.Data; using System.Data;
using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using Telegram.Bot; using Telegram.Bot;
using Telegram.Bot.Types; using Telegram.Bot.Types;
using Telegram.Bot.Types.Enums; using Telegram.Bot.Types.Enums;
using Telegram.Bot.Types.ReplyMarkups;
using Dapper; using Dapper;
using Npgsql; using Npgsql;
@ -18,25 +18,32 @@ class Program
static async Task Main(string[] args) static async Task Main(string[] args)
{ {
Console.WriteLine("Bot is running..."); 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) 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) if (update.Type == UpdateType.Message && update.Message?.Text != null)
{ {
var message = update.Message; var message = update.Message;
if (message.Text.StartsWith("/help")) 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 else
{ {
@ -45,7 +52,7 @@ class Program
} }
} }
private static async Task RegisterUser(Message message) private static async Task RegisterUser(Message message, CancellationToken cancellationToken)
{ {
try try
{ {
@ -64,18 +71,18 @@ class Program
if (rowsAffected > 0) if (rowsAffected > 0)
{ {
await botClient.SendTextMessageAsync(message.Chat.Id, "Вы успешно зарегистрированы!"); await botClient.SendTextMessageAsync(message.Chat.Id, "Вы успешно зарегистрированы!", cancellationToken: cancellationToken);
} }
else else
{ {
await botClient.SendTextMessageAsync(message.Chat.Id, "Вы уже зарегистрированы."); await botClient.SendTextMessageAsync(message.Chat.Id, "Вы уже зарегистрированы.", cancellationToken: cancellationToken);
} }
} }
} }
catch (Exception ex) catch (Exception ex)
{ {
Console.WriteLine($"Error: {ex.Message}"); Console.WriteLine($"Error: {ex.Message}");
await botClient.SendTextMessageAsync(message.Chat.Id, "Произошла ошибка при регистрации. Попробуйте позже."); await botClient.SendTextMessageAsync(message.Chat.Id, "Произошла ошибка при регистрации. Попробуйте позже.", cancellationToken: cancellationToken);
} }
} }