This commit is contained in:
@@ -0,0 +1,121 @@
|
||||
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<UpdateType>() // 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 = "<b>‼ НЕИСПРАВНОСТЬ ‼</b>\n" +
|
||||
$"----------------------------------------------\n" +
|
||||
$"<b>Объект:</b> SPB\n" +
|
||||
$"<b>Устройство:</b> TEST\n" +
|
||||
$"<b>Имя:</b> {name}\n" +
|
||||
$"<b>Адрес:</b> {ip}\n" +
|
||||
$"<b>Состояние:</b> 🔴 - не доступна\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("<b>🔄 ПЕРЕЗАГРУЗКА 🔄</b>\n", "<b>🔄✅ ПЕРЕЗАГРУЖЕН ✅🔄</b>\n");
|
||||
botClient.EditMessageTextAsync(chatId,msgCB.Message.MessageId, txt, parseMode: ParseMode.Html);
|
||||
}
|
||||
else
|
||||
{
|
||||
txt.Replace("<b>🔄 ПЕРЕЗАГРУЗКА 🔄</b>\n", "<b>‼️‼️ ОШИБКА БОТА ‼️‼️</b>\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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user