откат

This commit is contained in:
Professional 2025-03-19 22:47:04 +07:00
parent 7ec5f86557
commit 483e8bb622

View File

@ -158,6 +158,19 @@ class Program
await SendMainMenu(botClient, chatId); await SendMainMenu(botClient, chatId);
} }
} }
else if (data == "view_admins")
{
if (admins.Contains(chatId))
{
await ShowAdminsList(botClient, chatId);
}
else
{
await botClient.SendMessage(chatId, "⛔ У вас нет прав для просмотра администраторов!");
await Task.Delay(2000);
await SendMainMenu(botClient, chatId);
}
}
else if (data != null && data.StartsWith("removeadmin_")) else if (data != null && data.StartsWith("removeadmin_"))
{ {
long adminIdToRemove = long.Parse(data.Substring(11).Replace("_", "")); long adminIdToRemove = long.Parse(data.Substring(11).Replace("_", ""));
@ -854,73 +867,20 @@ class Program
return; return;
} }
// Получаем список всех администраторов из базы данных var keyboard = new InlineKeyboardMarkup(new[]
var adminsList = new List<(long chatId, string username)>();
using (var connection = new SqliteConnection("Data Source=bot.db"))
{ {
await connection.OpenAsync(); new[] {
var command = connection.CreateCommand(); InlineKeyboardButton.WithCallbackData("👥 Список администраторов", "view_admins")
command.CommandText = "SELECT ChatId FROM Admins"; },
new[] {
using (var reader = await command.ExecuteReaderAsync()) InlineKeyboardButton.WithCallbackData("🔙 Назад к панели администратора", "admin_panel"),
{ InlineKeyboardButton.WithCallbackData("🏠 Главное меню", "main_menu")
while (await reader.ReadAsync())
{
long adminId = reader.GetInt64(0);
string username = "Неизвестно";
// Пытаемся получить имя пользователя
try
{
var user = await botClient.GetChat(adminId);
username = user.Username ?? user.FirstName ?? "Неизвестно";
}
catch
{
// Если возникает ошибка при получении информации о пользователе,
// просто используем "Неизвестно"
}
adminsList.Add((adminId, username));
}
}
} }
// Формируем сообщение
if (adminsList.Count == 0)
{
await botClient.SendMessage(
chatId: chatId,
text: "⚠️ В системе нет зарегистрированных администраторов."
);
return;
}
var buttons = new List<InlineKeyboardButton[]>();
var messageText = new System.Text.StringBuilder();
messageText.AppendLine("📋 <b>Список администраторов:</b>\n");
for (int i = 0; i < adminsList.Count; i++)
{
var (adminId, username) = adminsList[i];
messageText.AppendLine($"{i + 1}. {username} (ID: {adminId})");
buttons.Add(new[] {
InlineKeyboardButton.WithCallbackData($"❌ Удалить {username}", $"removeadmin_{adminId}")
});
}
buttons.Add(new[] {
InlineKeyboardButton.WithCallbackData("🔙 Назад", "admin_panel"),
InlineKeyboardButton.WithCallbackData("🏠 Главное меню", "main_menu")
}); });
var keyboard = new InlineKeyboardMarkup(buttons);
await botClient.SendMessage( await botClient.SendMessage(
chatId: chatId, chatId: chatId,
text: messageText.ToString(), text: "⚙️ <b>Управление администраторами</b>",
parseMode: ParseMode.Html, parseMode: ParseMode.Html,
replyMarkup: keyboard replyMarkup: keyboard
); );
@ -928,10 +888,6 @@ class Program
catch (Exception ex) catch (Exception ex)
{ {
Log.Error($"Ошибка при отображении настроек администраторов: {ex.Message}"); Log.Error($"Ошибка при отображении настроек администраторов: {ex.Message}");
await botClient.SendMessage(
chatId: chatId,
text: "❌ Произошла ошибка при отображении настроек администраторов."
);
} }
} }