using System.Net; using System; using Telegram.Bot; using Telegram.Bot.Exceptions; using Telegram.Bot.Polling; using Telegram.Bot.Types; using Telegram.Bot.Types.Enums; using LC_Bot; using LC_Bot.Models; using Telegram.Bot.Types.ReplyMarkups; using static System.Net.Mime.MediaTypeNames; using System.Reflection.Metadata; internal class Program { //public static string token = "6964910806:AAH5EuJq9vNm0D2KwvcEnmuvPYd7_sYa5aI"; //Новый public static string token = "7055214362:AAFL1aroXt1S00pACH6jMs7OiNQtmK8pI_Y"; //Старый public static TelegramBotClient botClient = null; public static string txt; private static async Task Main(string[] args) { using Db db = new Db(); botClient = new TelegramBotClient(token); using CancellationTokenSource cts = new(); ReceiverOptions receiverOptions = new() { AllowedUpdates = Array.Empty() // receive all update types except ChatMember related updates }; botClient.StartReceiving(updateHandler: HandleUpdateAsync, pollingErrorHandler: HandlePollingErrorAsync, receiverOptions: receiverOptions, cancellationToken: cts.Token); var me = await botClient.GetMeAsync(); Console.WriteLine($"Start listening for @{me.Username}"); Console.ReadLine(); cts.Cancel(); } private static async Task HandleUpdateAsync(ITelegramBotClient botClient, Update update, CancellationToken cancellationToken) { long chatId = 0; if (update.Type == UpdateType.Message) { chatId = update.Message.Chat.Id; var msg = update.Message; if (msg.Type == MessageType.Text) { var textMsg = msg.Text.Split("@")[0]; Console.WriteLine($"Received a '{textMsg}' message in chat {chatId}."); if (textMsg == "/start") { await botClient.SendTextMessageAsync( chatId: chatId, text: $"Привет, {msg.From.FirstName}!\r\nБот работает исправно!"); return; } if (textMsg == "/test") { string ip = "172.24.12.10"; string name = "ТК83"; txt = "‼ НЕИСПРАВНОСТЬ ‼\n" + $"----------------------------------------------\n" + $"Объект: SPB\n" + $"Устройство: TEST\n" + $"Имя: {name}\n" + $"Адрес: {ip}\n" + $"Состояние: 🔴 - не доступна\n" + $"----------------------------------------------"; InlineKeyboardMarkup inlineKeyboard = new(new[] { new [] { InlineKeyboardButton.WithCallbackData(text: "Перезагрузить", callbackData: $"reboot|{ip}") } }); var msgId = botClient.SendTextMessageAsync(chatId: 6882856105, parseMode: ParseMode.Html,replyMarkup:inlineKeyboard, text: txt).Result.MessageId; Console.WriteLine(msgId); return; } } return; } else if (update.Type == UpdateType.CallbackQuery) { chatId = update.CallbackQuery.Message.Chat.Id; var msgCB = update.CallbackQuery; txt = msgCB.Message.Text; Console.WriteLine($"Received a '{update.CallbackQuery.Data}' message in chat {chatId}."); if (msgCB.Data.StartsWith("reboot")) { var m = msgCB.Data.Split("|"); var reb = new Reboot(m[1]); if (reb.Start()) { txt.Replace("🔄 ПЕРЕЗАГРУЗКА 🔄\n", "🔄✅ ПЕРЕЗАГРУЖЕН ✅🔄\n"); botClient.EditMessageTextAsync(chatId,msgCB.Message.MessageId, txt, parseMode: ParseMode.Html); } else { txt.Replace("🔄 ПЕРЕЗАГРУЗКА 🔄\n", "‼️‼️ ОШИБКА БОТА ‼️‼️\n"); botClient.EditMessageTextAsync(chatId, msgCB.Message.MessageId, txt, parseMode: ParseMode.Html); } } } else return; } private static Task HandlePollingErrorAsync(ITelegramBotClient botClient, Exception exception, CancellationToken cancellationToken) { var ErrorMessage = exception switch { ApiRequestException apiRequestException => $"Telegram API Error:\n[{apiRequestException.ErrorCode}]\n{apiRequestException.Message}", _ => exception.ToString() }; //Console.WriteLine(ErrorMessage); return Task.CompletedTask; } }