Skip to content

Commit

Permalink
Перенёс часть функций на сетевого бота
Browse files Browse the repository at this point in the history
  • Loading branch information
hoplik committed Sep 30, 2024
1 parent ee363e2 commit f3b268c
Showing 1 changed file with 6 additions and 68 deletions.
74 changes: 6 additions & 68 deletions Bot_Funcs.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
using FirehoseFinder.Properties;
using System;
using System.Collections.Generic;
using System.Resources;
using System.Threading;
using System.Threading.Tasks;
Expand All @@ -10,13 +9,13 @@
using Telegram.Bot.Polling;
using Telegram.Bot.Types;
using Telegram.Bot.Types.Enums;
using Telegram.Bot.Types.ReplyMarkups;

namespace FirehoseFinder
{
class Bot_Funcs
{
internal readonly long channel = -1001227261414; // канал Firehose-Finder issues
internal static ChatId admin_mess = 1008578121; //Сообщение администратору
internal static ITelegramBotClient _botClient = new TelegramBotClient(Resources.bot);
private static ReceiverOptions _receiverOptions;
//Подтянули перевод на другие языки
Expand Down Expand Up @@ -83,10 +82,9 @@ await botClient.SendTextMessageAsync(
if (string.IsNullOrEmpty(user.Username)) Settings.Default.userN = string.Empty; else Settings.Default.userN = user.Username;
//Сообщаем администратору о новом участнике рейтинга
await botClient.SendTextMessageAsync(
1008578121,
admin_mess,
$"Новый участник рейтинга: {user.FirstName} {user.LastName} ({user.Username}) - {user.Id}",
replyToMessageId: message.MessageId
);
replyToMessageId: message.MessageId);
//Авторизация прошла удачно. Перегружаемся.
Application.Restart();
}
Expand All @@ -95,30 +93,10 @@ await botClient.SendTextMessageAsync(
await botClient.SendTextMessageAsync(
chat.Id,
"Авторизация прошла неудачно. Попробуйте ещё раз, используя приложение FhF.",
replyToMessageId: message.MessageId
);
replyToMessageId: message.MessageId);
}
}
}
else //Команда /start без параметров. Поднимаем клавиатуру, просим ввести код авторизации и пр.
{
// Создаём клавиатуру
var inlineKeyboard = new InlineKeyboardMarkup(
new List<InlineKeyboardButton[]>() // Создаём лист (массив), который содрежит в себе массив из класса кнопок
{
// Каждый новый массив - это дополнительные строки, а каждая дополнительная кнопка в массиве - это добавление ряда
new InlineKeyboardButton[] // Создаём массив кнопок
{
InlineKeyboardButton.WithCallbackData("Авторизация", "button_auth"),
InlineKeyboardButton.WithCallbackData("Рейтинг", "button_rate"),
},
});
await botClient.SendTextMessageAsync(
chat.Id,
"Пожалуйста, выберите \"Авторизация\", если готовы ввести код из программы FhF или \"Рейтинг\", если хотите посмотреть текущий \"Рейтинг неравнодушных пользователей\"",
replyMarkup: inlineKeyboard); // Все клавиатуры передаются в параметр replyMarkup
return;
}
}
else
{
Expand All @@ -134,7 +112,7 @@ await botClient.SendTextMessageAsync(
"Авторизация прошла успешно. Приложение FhF перезапущено.");
//Сообщаем администратору о новом участнике рейтинга
await botClient.SendTextMessageAsync(
1008578121,
admin_mess,
$"Новый участник рейтинга: {user.FirstName} {user.LastName} ({user.Username}) - {user.Id}",
replyToMessageId: message.MessageId
);
Expand All @@ -152,46 +130,6 @@ await botClient.SendTextMessageAsync(
}
return;
}
case UpdateType.CallbackQuery:
{
var callbackQuery = update.CallbackQuery;
//var user = callbackQuery.From; //Пока заремарим, т.к. не используется. Думаю о дубликатах!
var chat = callbackQuery.Message.Chat;
switch (callbackQuery.Data)
{
case "button_auth":
{
await botClient.AnswerCallbackQueryAsync( // Всплывающее сообщение
callbackQuery.Id,
"При успешной авторизации FhF перезагрузится автоматически!");
await botClient.SendTextMessageAsync(
chat.Id,
"Отправьте 4 цифры кода авторизации из приложения FhF в формате ХХ-ХХ");
return;
}
case "button_rate":
{
await botClient.AnswerCallbackQueryAsync( // Всплывающее сообщение
callbackQuery.Id,
"Готовлю рейтинг...");
string rate_str = string.Empty;
int count_str = 1;
Guide guide = new Guide();
Func funcs = new Func();
foreach (Users_Rating users_Rating in funcs.SortingRate(guide.users_rate))
{
rate_str += $"{count_str}. {users_Rating.User_fullname} - {users_Rating.User_mess + users_Rating.User_reactions}" + Environment.NewLine;
count_str++;
}
await botClient.SendTextMessageAsync(
chat.Id,
rate_str);
return;
}
default:
return;
}
}
default:
return;
}
Expand All @@ -207,7 +145,7 @@ private static Task ErrorHandler(ITelegramBotClient botClient, Exception error,
// Тут создадим переменную, в которую поместим код ошибки и её сообщение
ApiRequestException apiRequestException = new ApiRequestException("Telegram API Error:", error);
string ErrorMessage = $"Telegram API Error:\n[{apiRequestException.ErrorCode}]\n{apiRequestException.Message}";
MessageBox.Show(ErrorMessage);
//MessageBox.Show(ErrorMessage);
return Task.CompletedTask;
}
}
Expand Down

0 comments on commit f3b268c

Please sign in to comment.