forked from zovos/bot_tg
No description
Добавлена и доработана миниигра /penis Логика рандома +/- 0.1..7.0, ограничение минимума до 0.1, cooldown 24ч. Файлы/места: main.py (line 420), main.py (line 579). Добавлена команда /top_penis Динамический топ по текущим значениям см. Формат с медалями и лимитом топа. Файлы/места: main.py (line 505), main.py (line 590). Хранение данных /penis и /top_penis переведено с RAM на SQLite Убрана in-memory модель, добавлена БД penis_stats.sqlite3. Добавлена инициализация таблицы penis_stats. Файлы/места: main.py (line 27), main.py (line 47), main.py (line 761). Логика записи в БД исправлена под твое требование Для нового пользователя: INSERT. Для существующего: UPDATE (без новых строк). Файл/место: main.py (line 468). В топ добавлено нормальное имя пользователя Берётся @username, иначе full_name, иначе user_<id>. Файл/место: main.py (line 496). Команды добавлены в help и Telegram command menu В /help добавлены /penis и /top_penis. В set_my_commands есть обе команды. Файлы/места: main.py (line 152), main.py (line 778), main.py (line 783). Улучшено отображение команд через / Команды выставляются для scope: default all private chats all group chats Файл/место: main.py (line 790), main.py (line 796). Добавлены подробные комментарии в код По основным блокам main.py и talk_handler.py. Файлы: main.py, talk_handler.py. Проверки, которые прогонялись Компиляция: talk_handler.py. Локальные тесты: insert/update/cooldown /penis; сортировка /top_penis; запись полей в SQLite; smoke по генерации мемов и тайм-функциям. |
||
|---|---|---|
| AI | ||
| maket | ||
| .dockerignore | ||
| .env | ||
| .gitignore | ||
| docker-compose.yaml | ||
| Dockerfile | ||
| impact.ttf | ||
| main.py | ||
| README.md | ||
| requirements.txt | ||
Sex Bomba TG Bot
Телеграм‑бот, который:
- вписывает текст шрифтом Impact (белый с чёрной обводкой) в макеты (
/maket); - делает мемы из присланных фото (
/gen_mem Up:... Down:...); - подсказывает, сколько минут до перекура по заданному расписанию (
/break); - умеет базарить (
/talk).
Запуск
docker-compose up --build
Переменные окружения: задайте BOT_TOKEN в .env (уже добавлен шаблон);
LLAMA_API_URL — адрес llama.cpp сервера (для /talk)
Команды
/start— отвечает кратко./help— выводит подсказки и список макетов./maket <id> <текст>— вписать текст в макет. Доступные:1 — Владимир Владимирович Путин самый лучший президент(737x414, точка 104,240)./gen_mem Up:верх Down:низ— прислать с фото (подпись) или ответом на фото. Можно указывать только Up или только Down./break— показывает, сколько минут до ближайшего перекура/идёт ли перекур./talk <сообщение>— побазарить с ИИ. Работает через llama.cpp сервер.
Макеты и шрифт
- Шрифт
impact.ttfлежит в корне. - Макеты в
maket/, сейчас есть1.png. Добавляйте новые, прописав их в словареTEMPLATESвmain.py.
Технологии
- Python 3.11, aiogram 3, Pillow.
- llama.cpp для ИИ-фич.
- Dockerfile + docker-compose для развёртывания.
Кратко о логике
/maketподбирает размер текста, чтобы уместить его в область макета./gen_memцентрирует текст по ширине, масштабирует под изображение, рисует белый текст с чёрной обводкой./breakсчитает по расписанию вmain.py(словарьSCHEDULE)./talkшлёт запрос к llama.cpp серверу (LLAMA_API_URL), системный промпт задаёт стиль фени(Можно изменить).
ИИ-модуль (AI/talk_handler.py)
Отдельный модуль, не трогает основной код. Подключается к llama.cpp серверу через OpenAI-совместимый API (/v1/chat/completions).
Настройка сервера:
- Скачать модель:
wget https://huggingface.co/Qwen/Qwen2.5-1.5B-Instruct-GGUF/resolve/main/qwen2.5-1.5b-instruct-q4_k_m.gguf - Запустить:
./llama-server -m model.gguf --host 0.0.0.0 --port 8080 -c 2048 - Прописать URL в
.env:LLAMA_API_URL=http://адрес:8080