Добавлена миниигра /penis с хранением состояния по пользователю (в памяти процесса). main.py (line 28) main.py (line 29) main.py (line 32) main.py (line 400) Что делает: хранит length и last_used_at на user_id; даёт изменение длины случайно +/- в диапазоне 0.1..7.0; ограничивает минимум до 0.1; вводит кулдаун 24 часа от последнего вызова. Реализован динамический топ /top_penis. main.py (line 33) main.py (line 454) main.py (line 590) Что делает: собирает текущие значения из PENIS_STATE; сортирует по убыванию см; показывает медали 🥇🥈🥉 и далее нумерацию; лимит топа по умолчанию 10 участников; при пустом состоянии пишет, что топ пуст. Добавлена нормализация имени пользователя для топа. main.py (line 445) main.py (line 585) Как работает: приоритет @username; если нет username, берёт full_name; fallback: user_<id>. Обновлены подсказки и меню Telegram-команд. main.py (line 153) main.py (line 716) main.py (line 735) Что добавлено: строка в /help про /top_penis; BotCommand("top_penis") в меню; регистрация обработчика Command("top_penis"). Добавлены подробные комментарии по коду. main.py (line 21) main.py (line 146) main.py (line 400) talk_handler.py (line 10) talk_handler.py (line 45) Что покрыто: константы/секции; игровые функции; хендлеры; старт и регистрация роутов; пояснения к LLM-модулю /talk. Что протестировано локально. compileall для main.py и talk_handler.py — успешно. Смоук-тесты функций: parse_up_down, minutes_until_break, minutes_until_next_lesson; generate_maket, generate_meme; play_penis (включая cooldown); build_penis_top (сортировка/пустой топ). Итог: основные проверки прошли. Текущее ограничение реализации. Состояние /penis и /top_penis хранится только в RAM, после перезапуска бота сбрасывается. main.py (line 28) |
||
|---|---|---|
| .. | ||
| talk_handler.py | ||