много дебага

This commit is contained in:
Professional 2025-03-12 22:41:14 +07:00
parent d202e02d23
commit 47c8269cdc

View File

@ -17,12 +17,22 @@ class Program
static async Task Main() static async Task Main()
{ {
// Загружаем конфигурацию из appsettings.json // Загружаем конфигурацию из appsettings.json
var config = new ConfigurationBuilder() try
.SetBasePath(AppContext.BaseDirectory) // <-- Используем правильный путь {
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) Log.Information("Загрузка конфигурации из appsettings.json...");
.Build(); var config = new ConfigurationBuilder()
.SetBasePath(AppContext.BaseDirectory) // <-- Используем правильный путь
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.Build();
_botToken = config["BotToken"] ?? throw new Exception("BotToken не найден в конфигурации!"); _botToken = config["BotToken"] ?? throw new Exception("BotToken не найден в конфигурации!");
Log.Information("Конфигурация успешно загружена.");
}
catch (Exception ex)
{
Log.Error($"Ошибка при загрузке конфигурации: {ex.Message}");
throw;
}
// Настраиваем логирование // Настраиваем логирование
Log.Logger = new LoggerConfiguration() Log.Logger = new LoggerConfiguration()
@ -32,14 +42,33 @@ class Program
Log.Information("Запуск Telegram-бота..."); Log.Information("Запуск Telegram-бота...");
_botClient = new TelegramBotClient(_botToken); try
var me = await _botClient.GetMe(); {
Log.Information($"Бот {me.FirstName} запущен!"); // Инициализация клиента бота
_botClient = new TelegramBotClient(_botToken);
var me = await _botClient.GetMe();
Log.Information($"Бот {me.FirstName} запущен! ID: {me.Id}");
}
catch (Exception ex)
{
Log.Error($"Ошибка при подключении к Telegram API: {ex.Message}");
throw;
}
var cts = new CancellationTokenSource(); var cts = new CancellationTokenSource();
Log.Information("Начало получения обновлений...");
// Применение StartReceiving для работы с задачами try
_botClient.StartReceiving(HandleUpdateAsync, HandleErrorAsync, cancellationToken: cts.Token); {
// Применение StartReceiving для работы с задачами
_botClient.StartReceiving(HandleUpdateAsync, HandleErrorAsync, cancellationToken: cts.Token);
Log.Information("Получение обновлений успешно началось.");
}
catch (Exception ex)
{
Log.Error($"Ошибка при запуске получения обновлений: {ex.Message}");
throw;
}
// Создание TaskCompletionSource для удержания процесса бота // Создание TaskCompletionSource для удержания процесса бота
var tcs = new TaskCompletionSource(); var tcs = new TaskCompletionSource();
@ -51,38 +80,49 @@ class Program
private static async Task HandleUpdateAsync(ITelegramBotClient botClient, Update update, CancellationToken cancellationToken) private static async Task HandleUpdateAsync(ITelegramBotClient botClient, Update update, CancellationToken cancellationToken)
{ {
if (update.Type != UpdateType.Message || update.Message?.Text == null) try
return; {
if (update.Type != UpdateType.Message || update.Message?.Text == null)
return;
var message = update.Message; var message = update.Message;
Log.Information($"Сообщение от {message.Chat.Id}: {message.Text}"); Log.Information($"Получено сообщение от {message.Chat.Id}: {message.Text}");
if (message.Text == "/start") if (message.Text == "/start")
{ {
await botClient.SendMessage( await botClient.SendMessage(
chatId: message.Chat.Id, chatId: message.Chat.Id,
text: "Йоу! Я бот для сбора заявок на ремонт оборудования. Отправь /report для подачи заявки." text: "Йоу! Я бот для сбора заявок на ремонт оборудования. Отправь /report для подачи заявки."
); );
Log.Information("Ответ на команду /start отправлен.");
}
else if (message.Text == "/report")
{
await botClient.SendMessage(
chatId: message.Chat.Id,
text: "Пожалуйста, отправьте описание проблемы."
);
Log.Information("Ответ на команду /report отправлен.");
}
else
{
await botClient.SendMessage(
chatId: message.Chat.Id,
text: "Неизвестная команда. Используйте /start."
);
Log.Information("Ответ на неизвестную команду отправлен.");
}
} }
else if (message.Text == "/report") catch (Exception ex)
{ {
await botClient.SendMessage( Log.Error($"Ошибка при обработке обновлений: {ex.Message}");
chatId: message.Chat.Id, Log.Error($"StackTrace: {ex.StackTrace}");
text: "Пожалуйста, отправьте описание проблемы."
);
}
else
{
await botClient.SendMessage(
chatId: message.Chat.Id,
text: "Неизвестная команда. Используйте /start."
);
} }
} }
private static Task HandleErrorAsync(ITelegramBotClient botClient, Exception exception, CancellationToken cancellationToken) private static Task HandleErrorAsync(ITelegramBotClient botClient, Exception exception, CancellationToken cancellationToken)
{ {
Log.Error($"Ошибка: {exception.Message}"); Log.Error($"Ошибка в процессе работы с ботом: {exception.Message}");
Log.Error($"StackTrace: {exception.StackTrace}"); Log.Error($"StackTrace: {exception.StackTrace}");
return Task.CompletedTask; return Task.CompletedTask;
} }