✅ Регистрация и верификация жильцов ✅ Рейтинг активности (уровни) ✅ Детект шпионов (Score 0-100) ✅ Анти-мат система (3 предупреждения → бан) ✅ Админ-панель с рассылкой ✅ Учёт квартир (несколько жильцов) ✅ Телефоны экстренных служб и мастеров ✅ Еженедельный экспорт JSON ✅ Прокси (socks5) для обхода РКН Бекап: backups/versions/v1.0_mvp_2026-02-26/ Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
40 lines
1.2 KiB
Python
40 lines
1.2 KiB
Python
"""
|
|
Reply-клавиатуры (кнопки под строкой ввода)
|
|
"""
|
|
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton
|
|
from aiogram.utils.keyboard import ReplyKeyboardBuilder
|
|
|
|
|
|
def get_reply_menu() -> ReplyKeyboardMarkup:
|
|
"""
|
|
Reply-меню для жильцов
|
|
Используется редко, в основном для важных действий
|
|
"""
|
|
builder = ReplyKeyboardBuilder()
|
|
|
|
builder.row(
|
|
KeyboardButton(text='📞 Телефоны'),
|
|
KeyboardButton(text='👷 Мастера'),
|
|
)
|
|
builder.row(
|
|
KeyboardButton(text='❓ Помощь'),
|
|
)
|
|
|
|
# Resize keyboard чтобы не занимал много места
|
|
return builder.as_markup(resize_keyboard=True, one_time_keyboard=False)
|
|
|
|
|
|
def get_admin_reply_menu() -> ReplyKeyboardMarkup:
|
|
"""Reply-меню для админа"""
|
|
builder = ReplyKeyboardBuilder()
|
|
|
|
builder.row(
|
|
KeyboardButton(text='/admin'),
|
|
KeyboardButton(text='/stats'),
|
|
)
|
|
builder.row(
|
|
KeyboardButton(text='/spies'),
|
|
KeyboardButton(text='/export'),
|
|
)
|
|
|
|
return builder.as_markup(resize_keyboard=True)
|