Archived
style: reformat handlers and UI for readability
This commit is contained in:
+12
-4
@@ -39,7 +39,9 @@ async def bots_handler(callback: CallbackQuery) -> None:
|
|||||||
await callback.message.edit_text(f"Ошибка: {error}") # type: ignore[union-attr]
|
await callback.message.edit_text(f"Ошибка: {error}") # type: ignore[union-attr]
|
||||||
|
|
||||||
|
|
||||||
@router.callback_query(lambda c: c.data and c.data.startswith("bot_"), AdminCallbackFilter())
|
@router.callback_query(
|
||||||
|
lambda c: c.data and c.data.startswith("bot_"), AdminCallbackFilter()
|
||||||
|
)
|
||||||
async def bot_selected(callback: CallbackQuery) -> None:
|
async def bot_selected(callback: CallbackQuery) -> None:
|
||||||
await stop_twofa_task(callback.message.message_id) # type: ignore[union-attr]
|
await stop_twofa_task(callback.message.message_id) # type: ignore[union-attr]
|
||||||
await callback.answer()
|
await callback.answer()
|
||||||
@@ -59,13 +61,17 @@ async def bot_selected(callback: CallbackQuery) -> None:
|
|||||||
await callback.message.edit_text( # type: ignore[union-attr]
|
await callback.message.edit_text( # type: ignore[union-attr]
|
||||||
format_bot_ui(bot),
|
format_bot_ui(bot),
|
||||||
disable_web_page_preview=True,
|
disable_web_page_preview=True,
|
||||||
reply_markup=bot_details_keyboard(bot_name, bool(bot.get("HasMobileAuthenticator"))),
|
reply_markup=bot_details_keyboard(
|
||||||
|
bot_name, bool(bot.get("HasMobileAuthenticator"))
|
||||||
|
),
|
||||||
)
|
)
|
||||||
except Exception as error:
|
except Exception as error:
|
||||||
await callback.message.edit_text(f"Ошибка: {error}") # type: ignore[union-attr]
|
await callback.message.edit_text(f"Ошибка: {error}") # type: ignore[union-attr]
|
||||||
|
|
||||||
|
|
||||||
@router.callback_query(lambda c: c.data and c.data.startswith("games_"), AdminCallbackFilter())
|
@router.callback_query(
|
||||||
|
lambda c: c.data and c.data.startswith("games_"), AdminCallbackFilter()
|
||||||
|
)
|
||||||
async def games(callback: CallbackQuery) -> None:
|
async def games(callback: CallbackQuery) -> None:
|
||||||
await callback.answer()
|
await callback.answer()
|
||||||
if not callback.data:
|
if not callback.data:
|
||||||
@@ -78,7 +84,9 @@ async def games(callback: CallbackQuery) -> None:
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@router.callback_query(lambda c: c.data and c.data.startswith("farm|"), AdminCallbackFilter())
|
@router.callback_query(
|
||||||
|
lambda c: c.data and c.data.startswith("farm|"), AdminCallbackFilter()
|
||||||
|
)
|
||||||
async def farm_game(callback: CallbackQuery) -> None:
|
async def farm_game(callback: CallbackQuery) -> None:
|
||||||
await callback.answer()
|
await callback.answer()
|
||||||
if not callback.data:
|
if not callback.data:
|
||||||
|
|||||||
@@ -8,7 +8,9 @@ from bot.ui.keyboards import back_keyboard
|
|||||||
router = Router()
|
router = Router()
|
||||||
|
|
||||||
|
|
||||||
@router.callback_query(lambda c: c.data and c.data.startswith("inventory_"), AdminCallbackFilter())
|
@router.callback_query(
|
||||||
|
lambda c: c.data and c.data.startswith("inventory_"), AdminCallbackFilter()
|
||||||
|
)
|
||||||
async def inventory_menu(callback: CallbackQuery) -> None:
|
async def inventory_menu(callback: CallbackQuery) -> None:
|
||||||
await callback.answer()
|
await callback.answer()
|
||||||
bot_name = callback.data.replace("inventory_", "") # type: ignore[union-attr]
|
bot_name = callback.data.replace("inventory_", "") # type: ignore[union-attr]
|
||||||
@@ -19,7 +21,9 @@ async def inventory_menu(callback: CallbackQuery) -> None:
|
|||||||
await callback.message.edit_text(text, reply_markup=keyboard) # type: ignore[union-attr]
|
await callback.message.edit_text(text, reply_markup=keyboard) # type: ignore[union-attr]
|
||||||
|
|
||||||
|
|
||||||
@router.callback_query(lambda c: c.data and c.data.startswith("inv_cs2_"), AdminCallbackFilter())
|
@router.callback_query(
|
||||||
|
lambda c: c.data and c.data.startswith("inv_cs2_"), AdminCallbackFilter()
|
||||||
|
)
|
||||||
async def cs2_inventory(callback: CallbackQuery) -> None:
|
async def cs2_inventory(callback: CallbackQuery) -> None:
|
||||||
await callback.answer()
|
await callback.answer()
|
||||||
bot_name = callback.data.replace("inv_cs2_", "") # type: ignore[union-attr]
|
bot_name = callback.data.replace("inv_cs2_", "") # type: ignore[union-attr]
|
||||||
@@ -31,7 +35,9 @@ async def cs2_inventory(callback: CallbackQuery) -> None:
|
|||||||
await callback.message.edit_text(text, reply_markup=keyboard) # type: ignore[union-attr]
|
await callback.message.edit_text(text, reply_markup=keyboard) # type: ignore[union-attr]
|
||||||
|
|
||||||
|
|
||||||
@router.callback_query(lambda c: c.data and c.data.startswith("inv_steam_"), AdminCallbackFilter())
|
@router.callback_query(
|
||||||
|
lambda c: c.data and c.data.startswith("inv_steam_"), AdminCallbackFilter()
|
||||||
|
)
|
||||||
async def steam_inventory(callback: CallbackQuery) -> None:
|
async def steam_inventory(callback: CallbackQuery) -> None:
|
||||||
await callback.answer()
|
await callback.answer()
|
||||||
bot_name = callback.data.replace("inv_steam_", "") # type: ignore[union-attr]
|
bot_name = callback.data.replace("inv_steam_", "") # type: ignore[union-attr]
|
||||||
@@ -43,12 +49,16 @@ async def steam_inventory(callback: CallbackQuery) -> None:
|
|||||||
await callback.message.edit_text(text, reply_markup=keyboard) # type: ignore[union-attr]
|
await callback.message.edit_text(text, reply_markup=keyboard) # type: ignore[union-attr]
|
||||||
|
|
||||||
|
|
||||||
@router.callback_query(lambda c: c.data and c.data.startswith("invpage|"), AdminCallbackFilter())
|
@router.callback_query(
|
||||||
|
lambda c: c.data and c.data.startswith("invpage|"), AdminCallbackFilter()
|
||||||
|
)
|
||||||
async def inventory_page(callback: CallbackQuery) -> None:
|
async def inventory_page(callback: CallbackQuery) -> None:
|
||||||
await callback.answer()
|
await callback.answer()
|
||||||
_, inv_type, bot_name, page_value = callback.data.split("|") # type: ignore[union-attr]
|
_, inv_type, bot_name, page_value = callback.data.split("|") # type: ignore[union-attr]
|
||||||
app_id, context_id = (730, 2) if inv_type == "cs2" else (753, 6)
|
app_id, context_id = (730, 2) if inv_type == "cs2" else (753, 6)
|
||||||
text, keyboard = await render_inventory_page(bot_name, inv_type, app_id, context_id, int(page_value))
|
text, keyboard = await render_inventory_page(
|
||||||
|
bot_name, inv_type, app_id, context_id, int(page_value)
|
||||||
|
)
|
||||||
if text is None:
|
if text is None:
|
||||||
await callback.message.edit_text("Не удалось загрузить inventory") # type: ignore[union-attr]
|
await callback.message.edit_text("Не удалось загрузить inventory") # type: ignore[union-attr]
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -5,7 +5,11 @@ from aiogram.types import Message
|
|||||||
|
|
||||||
from bot.api.asf import get_all_bots, send_command
|
from bot.api.asf import get_all_bots, send_command
|
||||||
from bot.filters import AdminFilter
|
from bot.filters import AdminFilter
|
||||||
from bot.services.redeem import extract_keys, redeem_all_bots_keys, redeem_single_bot_keys
|
from bot.services.redeem import (
|
||||||
|
extract_keys,
|
||||||
|
redeem_all_bots_keys,
|
||||||
|
redeem_single_bot_keys,
|
||||||
|
)
|
||||||
from bot.state import (
|
from bot.state import (
|
||||||
bot_redeem_messages,
|
bot_redeem_messages,
|
||||||
bot_redeem_users,
|
bot_redeem_users,
|
||||||
@@ -14,7 +18,11 @@ from bot.state import (
|
|||||||
redeem_users,
|
redeem_users,
|
||||||
)
|
)
|
||||||
from bot.ui.formatters import format_bot_ui, get_asf_status_text
|
from bot.ui.formatters import format_bot_ui, get_asf_status_text
|
||||||
from bot.ui.keyboards import bot_details_keyboard, delete_message_keyboard, main_keyboard
|
from bot.ui.keyboards import (
|
||||||
|
bot_details_keyboard,
|
||||||
|
delete_message_keyboard,
|
||||||
|
main_keyboard,
|
||||||
|
)
|
||||||
|
|
||||||
router = Router()
|
router = Router()
|
||||||
|
|
||||||
@@ -64,7 +72,9 @@ async def handle_single_bot_redeem(message: Message) -> bool:
|
|||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
try:
|
try:
|
||||||
await message.bot.delete_message(chat_id=message.chat.id, message_id=message.message_id)
|
await message.bot.delete_message(
|
||||||
|
chat_id=message.chat.id, message_id=message.message_id
|
||||||
|
)
|
||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
keys = extract_keys(message.text or "")
|
keys = extract_keys(message.text or "")
|
||||||
@@ -85,18 +95,24 @@ async def handle_all_bots_redeem(message: Message) -> bool:
|
|||||||
menu_message = redeem_messages.pop(message.from_user.id, None) # type: ignore[union-attr]
|
menu_message = redeem_messages.pop(message.from_user.id, None) # type: ignore[union-attr]
|
||||||
if menu_message:
|
if menu_message:
|
||||||
try:
|
try:
|
||||||
await menu_message.edit_text(get_asf_status_text(), reply_markup=main_keyboard())
|
await menu_message.edit_text(
|
||||||
|
get_asf_status_text(), reply_markup=main_keyboard()
|
||||||
|
)
|
||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
try:
|
try:
|
||||||
await message.bot.delete_message(chat_id=message.chat.id, message_id=message.message_id)
|
await message.bot.delete_message(
|
||||||
|
chat_id=message.chat.id, message_id=message.message_id
|
||||||
|
)
|
||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
keys = extract_keys(message.text or "")
|
keys = extract_keys(message.text or "")
|
||||||
if not keys:
|
if not keys:
|
||||||
await message.answer("Ключи не найдены")
|
await message.answer("Ключи не найдены")
|
||||||
return True
|
return True
|
||||||
checking = await message.answer(f"Найдено ключей: {len(keys)}\nНачинаю активацию...")
|
checking = await message.answer(
|
||||||
|
f"Найдено ключей: {len(keys)}\nНачинаю активацию..."
|
||||||
|
)
|
||||||
try:
|
try:
|
||||||
await checking.edit_text(await redeem_all_bots_keys(keys))
|
await checking.edit_text(await redeem_all_bots_keys(keys))
|
||||||
except Exception as error:
|
except Exception as error:
|
||||||
|
|||||||
@@ -108,7 +108,9 @@ async def plugins_handler(callback: CallbackQuery) -> None:
|
|||||||
else:
|
else:
|
||||||
text = "<b>📁 Плагины ASF:</b>\n\n"
|
text = "<b>📁 Плагины ASF:</b>\n\n"
|
||||||
for plugin in plugins:
|
for plugin in plugins:
|
||||||
text += f"{plugin.get('Name', '???')} ({plugin.get('Version', '???')})\n"
|
text += (
|
||||||
|
f"{plugin.get('Name', '???')} ({plugin.get('Version', '???')})\n"
|
||||||
|
)
|
||||||
await callback.message.edit_text(text.strip(), reply_markup=back_keyboard()) # type: ignore[union-attr]
|
await callback.message.edit_text(text.strip(), reply_markup=back_keyboard()) # type: ignore[union-attr]
|
||||||
except Exception as error:
|
except Exception as error:
|
||||||
await callback.message.edit_text(f"Ошибка: {error}") # type: ignore[union-attr]
|
await callback.message.edit_text(f"Ошибка: {error}") # type: ignore[union-attr]
|
||||||
|
|||||||
@@ -27,7 +27,9 @@ async def redeem_keys_menu(callback: CallbackQuery) -> None:
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@router.callback_query(lambda c: c.data and c.data.startswith("redeem_bot_"), AdminCallbackFilter())
|
@router.callback_query(
|
||||||
|
lambda c: c.data and c.data.startswith("redeem_bot_"), AdminCallbackFilter()
|
||||||
|
)
|
||||||
async def redeem_bot_menu(callback: CallbackQuery) -> None:
|
async def redeem_bot_menu(callback: CallbackQuery) -> None:
|
||||||
await callback.answer()
|
await callback.answer()
|
||||||
bot_name = callback.data.replace("redeem_bot_", "") # type: ignore[union-attr]
|
bot_name = callback.data.replace("redeem_bot_", "") # type: ignore[union-attr]
|
||||||
|
|||||||
@@ -13,7 +13,9 @@ router = Router()
|
|||||||
|
|
||||||
|
|
||||||
@router.callback_query(
|
@router.callback_query(
|
||||||
lambda c: c.data and c.data.startswith("2fa_") and not c.data.startswith("2fa_refresh_"),
|
lambda c: c.data
|
||||||
|
and c.data.startswith("2fa_")
|
||||||
|
and not c.data.startswith("2fa_refresh_"),
|
||||||
AdminCallbackFilter(),
|
AdminCallbackFilter(),
|
||||||
)
|
)
|
||||||
async def twofa_handler(callback: CallbackQuery) -> None:
|
async def twofa_handler(callback: CallbackQuery) -> None:
|
||||||
@@ -52,7 +54,9 @@ async def confirm_trades(callback: CallbackQuery) -> None:
|
|||||||
await callback.message.edit_text(f"Ошибка: {error}") # type: ignore[union-attr]
|
await callback.message.edit_text(f"Ошибка: {error}") # type: ignore[union-attr]
|
||||||
|
|
||||||
|
|
||||||
@router.callback_query(lambda c: c.data and c.data.startswith("confirm_list_"), AdminCallbackFilter())
|
@router.callback_query(
|
||||||
|
lambda c: c.data and c.data.startswith("confirm_list_"), AdminCallbackFilter()
|
||||||
|
)
|
||||||
async def confirm_list(callback: CallbackQuery) -> None:
|
async def confirm_list(callback: CallbackQuery) -> None:
|
||||||
await stop_twofa_task(callback.message.message_id) # type: ignore[union-attr]
|
await stop_twofa_task(callback.message.message_id) # type: ignore[union-attr]
|
||||||
await callback.answer()
|
await callback.answer()
|
||||||
@@ -72,7 +76,9 @@ async def confirm_list(callback: CallbackQuery) -> None:
|
|||||||
await callback.message.edit_text(f"Ошибка: {error}") # type: ignore[union-attr]
|
await callback.message.edit_text(f"Ошибка: {error}") # type: ignore[union-attr]
|
||||||
|
|
||||||
|
|
||||||
@router.callback_query(lambda c: c.data and c.data.startswith("confirm_all_"), AdminCallbackFilter())
|
@router.callback_query(
|
||||||
|
lambda c: c.data and c.data.startswith("confirm_all_"), AdminCallbackFilter()
|
||||||
|
)
|
||||||
async def confirm_all(callback: CallbackQuery) -> None:
|
async def confirm_all(callback: CallbackQuery) -> None:
|
||||||
await stop_twofa_task(callback.message.message_id) # type: ignore[union-attr]
|
await stop_twofa_task(callback.message.message_id) # type: ignore[union-attr]
|
||||||
await callback.answer()
|
await callback.answer()
|
||||||
|
|||||||
@@ -9,7 +9,9 @@ def is_bot_playing(bot_name: str) -> bool:
|
|||||||
return False
|
return False
|
||||||
data = response.json()
|
data = response.json()
|
||||||
bot = data.get("Result", {}).get(bot_name, {})
|
bot = data.get("Result", {}).get(bot_name, {})
|
||||||
return bool(bot.get("PlayingBlocked", False)) or bool(bot.get("CurrentGamesPlayed", []))
|
return bool(bot.get("PlayingBlocked", False)) or bool(
|
||||||
|
bot.get("CurrentGamesPlayed", [])
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def is_idle_enabled(bot_name: str, app_id: int) -> bool:
|
def is_idle_enabled(bot_name: str, app_id: int) -> bool:
|
||||||
|
|||||||
@@ -92,7 +92,8 @@ async def render_inventory_page(
|
|||||||
text = (
|
text = (
|
||||||
f"📦 {inv_name} Inventory {bot_name}\n"
|
f"📦 {inv_name} Inventory {bot_name}\n"
|
||||||
f"📄 Страница {page + 1}/{total_pages}\n\n"
|
f"📄 Страница {page + 1}/{total_pages}\n\n"
|
||||||
f"{stats}\n\n"
|
f"{stats}\n\n" + "\n".join(lines)
|
||||||
+ "\n".join(lines)
|
)
|
||||||
|
return text[:4000], inventory_page_keyboard(
|
||||||
|
inventory_type, bot_name, page, total_pages
|
||||||
)
|
)
|
||||||
return text[:4000], inventory_page_keyboard(inventory_type, bot_name, page, total_pages)
|
|
||||||
|
|||||||
@@ -69,8 +69,7 @@ async def redeem_single_bot_keys(bot_name: str, keys: list[str]) -> str:
|
|||||||
text = (
|
text = (
|
||||||
f"Результат активации для <code>{bot_name}</code>\n\n"
|
f"Результат активации для <code>{bot_name}</code>\n\n"
|
||||||
f"✅ Успешно: {success_count}\n"
|
f"✅ Успешно: {success_count}\n"
|
||||||
f"❌ Ошибок: {failed_count}\n\n"
|
f"❌ Ошибок: {failed_count}\n\n" + "\n".join(results[:50])
|
||||||
+ "\n".join(results[:50])
|
|
||||||
)
|
)
|
||||||
return text[:4000] + ("\n\n...обрезано" if len(text) > 4000 else "")
|
return text[:4000] + ("\n\n...обрезано" if len(text) > 4000 else "")
|
||||||
|
|
||||||
@@ -119,7 +118,6 @@ async def redeem_all_bots_keys(keys: list[str]) -> str:
|
|||||||
text = (
|
text = (
|
||||||
"Результат активации\n\n"
|
"Результат активации\n\n"
|
||||||
f"✅ Успешно: {success_count}\n"
|
f"✅ Успешно: {success_count}\n"
|
||||||
f"❌ Ошибок: {failed_count}\n\n"
|
f"❌ Ошибок: {failed_count}\n\n" + "\n".join(results[:50])
|
||||||
+ "\n".join(results[:50])
|
|
||||||
)
|
)
|
||||||
return text[:4000] + ("\n\n...обрезано" if len(text) > 4000 else "")
|
return text[:4000] + ("\n\n...обрезано" if len(text) > 4000 else "")
|
||||||
|
|||||||
+16
-4
@@ -66,7 +66,11 @@ def bot_details_keyboard(
|
|||||||
[InlineKeyboardButton(text="🔐 2FA", callback_data=f"2fa_{bot_name}")]
|
[InlineKeyboardButton(text="🔐 2FA", callback_data=f"2fa_{bot_name}")]
|
||||||
)
|
)
|
||||||
keyboard.append(
|
keyboard.append(
|
||||||
[InlineKeyboardButton(text="⌚ Накрутка часов", callback_data=f"games_{bot_name}")]
|
[
|
||||||
|
InlineKeyboardButton(
|
||||||
|
text="⌚ Накрутка часов", callback_data=f"games_{bot_name}"
|
||||||
|
)
|
||||||
|
]
|
||||||
)
|
)
|
||||||
keyboard.append(
|
keyboard.append(
|
||||||
[
|
[
|
||||||
@@ -77,7 +81,11 @@ def bot_details_keyboard(
|
|||||||
]
|
]
|
||||||
)
|
)
|
||||||
keyboard.append(
|
keyboard.append(
|
||||||
[InlineKeyboardButton(text="📦 Инвентарь", callback_data=f"inventory_{bot_name}")]
|
[
|
||||||
|
InlineKeyboardButton(
|
||||||
|
text="📦 Инвентарь", callback_data=f"inventory_{bot_name}"
|
||||||
|
)
|
||||||
|
]
|
||||||
)
|
)
|
||||||
keyboard.append([InlineKeyboardButton(text="🔙 Назад", callback_data="bots")])
|
keyboard.append([InlineKeyboardButton(text="🔙 Назад", callback_data="bots")])
|
||||||
return InlineKeyboardMarkup(inline_keyboard=keyboard)
|
return InlineKeyboardMarkup(inline_keyboard=keyboard)
|
||||||
@@ -114,7 +122,9 @@ def confirmations_keyboard(bot_name: str) -> InlineKeyboardMarkup:
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def confirm_action_keyboard(confirm_data: str, cancel_data: str) -> InlineKeyboardMarkup:
|
def confirm_action_keyboard(
|
||||||
|
confirm_data: str, cancel_data: str
|
||||||
|
) -> InlineKeyboardMarkup:
|
||||||
return InlineKeyboardMarkup(
|
return InlineKeyboardMarkup(
|
||||||
inline_keyboard=[
|
inline_keyboard=[
|
||||||
[InlineKeyboardButton(text="Да", callback_data=confirm_data)],
|
[InlineKeyboardButton(text="Да", callback_data=confirm_data)],
|
||||||
@@ -188,5 +198,7 @@ def console_keyboard() -> InlineKeyboardMarkup:
|
|||||||
|
|
||||||
def delete_message_keyboard() -> InlineKeyboardMarkup:
|
def delete_message_keyboard() -> InlineKeyboardMarkup:
|
||||||
return InlineKeyboardMarkup(
|
return InlineKeyboardMarkup(
|
||||||
inline_keyboard=[[InlineKeyboardButton(text="Удалить", callback_data="delete_msg")]]
|
inline_keyboard=[
|
||||||
|
[InlineKeyboardButton(text="Удалить", callback_data="delete_msg")]
|
||||||
|
]
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user