43 lines
1.6 KiB
Python
43 lines
1.6 KiB
Python
from aiogram import types, Router
|
||
from database import get_player
|
||
from economy import (
|
||
calculate_effective_bandwidth,
|
||
calculate_rating,
|
||
calculate_daily_income # ← ВОТ ЭТОТ ИМПОРТ НУЖЕН!
|
||
)
|
||
|
||
router = Router()
|
||
|
||
@router.callback_query(lambda c: c.data == "stats")
|
||
async def stats(callback: types.CallbackQuery):
|
||
player = get_player(callback.from_user.id)
|
||
if not player:
|
||
await callback.answer("❌ Игрок не найден", show_alert=True)
|
||
return
|
||
|
||
bw = calculate_effective_bandwidth(player)
|
||
daily = calculate_daily_income(player)
|
||
|
||
text = (
|
||
f"📊 *Ваша статистика*\n\n"
|
||
f"🔹 Канал: {player['network_channel_level']} → {bw} Мбит/с\n"
|
||
f"🔹 Серверы: {player['servers']} шт. (ёмкость: {player['max_customers']})\n"
|
||
f"🔹 Клиенты: {player['coverage_customers']} / {player['max_customers']}\n"
|
||
f"🔹 Доход/день: {daily:,.0f} ₡\n"
|
||
f"🔹 Общий доход: {player['total_income']:,.0f} ₡\n"
|
||
f"🔹 Рейтинг: {calculate_rating(player)} 🌟"
|
||
)
|
||
|
||
await callback.message.edit_text(
|
||
text,
|
||
reply_markup=types.InlineKeyboardMarkup(inline_keyboard=[
|
||
[types.InlineKeyboardButton(text="⬅️ Назад", callback_data="back_menu")]
|
||
]),
|
||
parse_mode="Markdown"
|
||
)
|
||
|
||
@router.callback_query(lambda c: c.data == "back_menu")
|
||
async def back_to_menu(callback: types.CallbackQuery):
|
||
await callback.message.delete()
|
||
from handlers.start import cmd_start
|
||
await cmd_start(callback.message) |