1
0
Fork 0
forked from zovos/bot_tg
No description
Find a file
2026-03-20 12:24:05 +03:00
AI fix 2026-03-05 12:33:19 +03:00
games fix 2026-03-20 12:24:05 +03:00
maket Add polychaetsi tracker and improve Docker setup 2026-03-10 13:08:04 +03:00
.dockerignore Add polychaetsi tracker and improve Docker setup 2026-03-10 13:08:04 +03:00
.env Добавлены ставки на матчи 2026-03-19 23:49:25 +03:00
.gitignore ПОЛНЫЙ РЕФАКТОРИНГ КОДА. Константы вынесены в config.py, упрощены импорты, вроде бы все работает, а там хуй знает)))) 2026-02-23 10:21:14 +03:00
config.py fix 2026-03-20 12:24:05 +03:00
docker-compose.yaml Add polychaetsi tracker and improve Docker setup 2026-03-10 13:08:04 +03:00
Dockerfile Add polychaetsi tracker and improve Docker setup 2026-03-10 13:08:04 +03:00
impact.ttf second commit 2026-02-20 11:17:16 +03:00
main.py fix 2026-03-20 12:24:05 +03:00
README.md fix 2026-03-20 12:24:05 +03:00
requirements.txt Add polychaetsi tracker and improve Docker setup 2026-03-10 13:08:04 +03:00
zparser.py СВО ЕБАТЬ 2026-02-22 20:40:51 +03:00

Sex Bomba TG Bot

Телеграм‑бот, который:

  • вписывает текст шрифтом Impact (белый с чёрной обводкой) в макеты (/maket);
  • делает мемы из присланных фото (/gen_mem Up:... Down:...);
  • подсказывает, сколько минут до перекура по заданному расписанию (/break);
  • показывает расписание, текущую и следующую пару (/schedule, можно с днём недели);
  • умеет базарить (/talk) с контекстом 100 сообщений;
  • авто-ответы в чате (10% шанс + триггер-слова);
  • миниигра /penis + /top_penis;
  • казино на размер (/penis_casino);
  • гадание на фене с мемом (/gadanie);
  • ставки на матчи CS2, Dota 2, футбол с реальными коэффициентами (/matches, /bet).

Запуск

docker compose up --build -d

Логи:

docker compose logs -f bot

Остановка:

docker compose down

Переменные окружения: задайте BOT_TOKEN в .env. Для ИИ-фич нужен LLAMA_API_URL. Для ставок нужен ODDS_API_KEY (бесплатно на https://the-odds-api.com).

Контейнер хранит состояние в ./db:

  • penis_stats.sqlite3
  • chat_history.sqlite3
  • polychaetsi_stats.json
  • bets.sqlite3

Команды

  • /start — отвечает кратко.
  • /help — выводит подсказки и список макетов.
  • /maket <id> <текст> — вписать текст в макет. Доступные: 1 — Владимир Владимирович Путин самый лучший президент (737x414, точка 104,240).
  • /gen_mem Up:верх Down:низ — прислать с фото (подпись) или ответом на фото. Можно указывать только Up или только Down.
  • /break — показывает, сколько минут до ближайшего перекура/идёт ли перекур.
  • /schedule [пн|mon] — показывает расписание на ближайший указанный день недели; без аргумента показывает сегодня, текущую и следующую пару.
  • /talk <сообщение> — побазарить с ИИ (контекст 100 сообщений).
  • /penis — миниигра, 1 раз в 24 часа.
  • /top_penis — топ по длине.
  • /polychaetsi — топ по слову «получается».
  • /penis_casino <ставка> — казино на размер (макс 1 см, казино всегда в выигрыше).
  • /gadanie <тема> — ИИ-гадание на фене + авто-мем.
  • /ebalnik — вкл/выкл авто-ответы бота в чате.
  • /matches [cs|dota|football] — ближайшие матчи с коэффициентами.
  • /bet [спорт] <номер> <исход> <ставка> — поставить см на матч.
  • /mybets — мои активные ставки.
  • /svodka — сводка СВО.

Макеты и шрифт

  • Шрифт impact.ttf лежит в корне.
  • Макеты в maket/, сейчас есть 1.png. Добавляйте новые, прописав их в словаре TEMPLATES в main.py.

Технологии

  • Python 3.11, aiogram 3, Pillow.
  • llama.cpp для ИИ-фич.
  • Dockerfile + docker-compose для развёртывания.

Docker Notes

  • Образ ставит tzdata, поэтому ZoneInfo("Europe/Moscow") нормально работает в контейнере.
  • В образ копируется весь проект, а runtime-данные исключены через .dockerignore.
  • Если меняешь код или картинки, достаточно пересобрать: docker compose up --build -d.

Кратко о логике

  • /maket подбирает размер текста, чтобы уместить его в область макета.
  • /gen_mem центрирует текст по ширине, масштабирует под изображение, рисует белый текст с чёрной обводкой.
  • /break считает по расписанию в config.py и показывает следующую пару.
  • Названия пар и верхняя/нижняя неделя лежат в config.py в LESSON_SCHEDULE.
  • /talk шлёт запрос к llama.cpp серверу с контекстом 100 сообщений (хранятся в SQLite).
  • /penis_casino — слоты с множителем x1.2x3 (games/casino.py).
  • /gadanie — ИИ-гадание + авто-мем через generate_meme (games/fortune.py).
  • /matches + /bet — ставки на реальные матчи, коэффициенты через The-Odds-API (games/betting.py). После /matches cs|dota|football можно короче: /bet <номер> <исход> <ставка>.

ИИ-модуль (AI/talk_handler.py)

Подключается к llama.cpp серверу через OpenAI-совместимый API (/v1/chat/completions). Хранит контекст 100 сообщений в SQLite.

Настройка сервера:

  1. Скачать модель: wget https://huggingface.co/Qwen/Qwen2.5-1.5B-Instruct-GGUF/resolve/main/qwen2.5-1.5b-instruct-q4_k_m.gguf
  2. Запустить: ./llama-server -m model.gguf --host 0.0.0.0 --port 8080 -c 2048
  3. Прописать URL в .env: LLAMA_API_URL=http://адрес:8080