1
0
Fork 0
forked from zovos/bot_tg
No description
Find a file
2026-07-05 15:16:30 +00:00
AI feat: multi-user awareness in chat, per-user /talk prompt, thinking tokens for /talk 2026-05-20 10:29:44 +00:00
games fix: syntax error in betting.py after merge conflict resolution 2026-05-20 10:24:38 +00:00
maket Add polychaetsi tracker and improve Docker setup 2026-03-10 13:08:04 +03:00
scripts feat: переход с SQLite на PostgreSQL + скрипт миграции 2026-05-01 23:25:22 +03:00
webapp wip: local changes before merging PR #36 2026-05-20 10:02:14 +00:00
.codex Сделал так чтобы не отвечал на фото без /watch 2026-04-23 13:01:38 +03:00
.dockerignore Add polychaetsi tracker and improve Docker setup 2026-03-10 13:08:04 +03:00
.gitignore fix: критические баги, FurTok картинки, image proxy, gitignore 2026-04-14 22:49:49 +03:00
config.py Restrict betting system to Dota 2 only 2026-05-19 22:36:52 +03:00
db.py feat: переход с SQLite на PostgreSQL + скрипт миграции 2026-05-01 23:25:22 +03:00
DEPLOYMENT.md сисиписи экономика сперма говно жопааааа сеееекс 2026-04-24 12:12:59 +03:00
docker-compose.webapp-test.yml СЕКСАПДЕЙТ 2026-04-23 14:47:52 +03:00
docker-compose.yaml wip: local changes before merging PR #36 2026-05-20 10:02:14 +00:00
Dockerfile wip: local changes before merging PR #36 2026-05-20 10:02:14 +00:00
Dockerfile.api feat: TG Mini App - FastAPI backend + frontend SPA + Docker setup 2026-04-04 23:03:17 +03:00
impact.ttf second commit 2026-02-20 11:17:16 +03:00
main.py wip: local changes before merging PR #36 2026-05-20 10:02:14 +00:00
README.md Merge pull request 'Add uwu command description to README.md' (#25) from Furrex/bot_tg:main into main 2026-07-05 15:16:30 +00:00
requirements.txt wip: local changes before merging PR #36 2026-05-20 10:02:14 +00: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. По умолчанию проект настроен на https://mirror.porno4free.ru/zovos-ai/. Если нужен лог reasoning/thinking модели, оставь LLAMA_LOG_THINKING=1; чтобы модель не резалась в режим без thinking, задай LLAMA_FORCE_DISABLE_THINKING=0. Для ставок нужен ODDS_API_KEY (бесплатно на https://the-odds-api.com).

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

  • penis_stats.sqlite3 — статистика игры /penis
  • chat_history.sqlite3 — история для ИИ-общения
  • polychaetsi_stats.json — статистика слова "получается"
  • bets.sqlite3 — ставки на спорт
  • economy.sqlite3 — экономическая система (балансы, вклады, кредиты)
  • nude_history.json — история запросов /nude

Команды

  • /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 — сводка СВО.
  • /uwu [теги] — поиск случайной пикчи/гифки на e621 (по умолчанию sfw, можно указать свои теги).

Экономика ZOV OS 💰

Основная валюта — сантиметры (см), получаемые из игры /penis.

Команды экономики:

  • /balance — показать баланс и статистику
  • /deposit <сумма> <дни> — открыть вклад по ставке ЦБ РФ
  • /loan <сумма> <дни> — взять кредит под 15% годовых
  • /transfer @username <сумма> — перевести деньги (лимит 20% от капитала)
  • /cb_stats — статистика Центрального Банка
  • /central_bank — детальная статистика ЦБ
  • /cb_rules — правила работы ЦБ
  • /vanomasa — полное обнуление всех балансов (админам)

Фичи экономики:

  • Вклады по ставке ЦБ РФ (7.5% годовых)
  • Кредиты под 15% годовых
  • Налог 13% с ежедневного дохода
  • Автоматическое регулирование инфляции
  • Фоновый сбор налогов каждый час
  • Заработок на сообщениях: 0.01 см за каждое сообщение
  • Ежедневные выплаты в 00:00 по МСК за активность

Центральный Банк ZOV OS 🏛️ (децентрализованный):

  • Учредительный капитал: 1000 см
  • Полностью автоматическая работа без вмешательства
  • Все налоги автоматически поступают в ЦБ
  • Алгоритмическое регулирование инфляции
  • Автоматическая эмиссия при дефляции
  • Автоматическая скупка денег при инфляции
  • Прозрачная статистика для всех пользователей
  • Никакого ручного управления - система работает по правилам

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

  • Шрифт 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.

HTTPS / Let's Encrypt

  • Фронтендовый nginx теперь слушает 80 и 443, отдает ACME challenge и сам запускает certbot внутри контейнера.
  • Для автоматической выдачи сертификата задай в .env:
    • APP_DOMAIN=bot.example.com
    • APP_WWW_DOMAIN=www.bot.example.com (опционально)
    • ACME_EMAIL=admin@example.com
  • Домен должен уже смотреть на сервер, а порты 80 и 443 должны быть доступны снаружи.
  • Для безопасной первой проверки можно временно включить CERTBOT_STAGING=1, потом вернуть 0.
  • Сертификаты и webroot challenge хранятся в docker volumes certbot_etc и certbot_www, обновление запускается по кругу с интервалом CERTBOT_RENEW_INTERVAL (по умолчанию 12h).
  • Если нужен старый локальный маппинг портов, можно переопределить WEBAPP_HTTP_PORT и WEBAPP_HTTPS_PORT, но для реального Let's Encrypt внешний 80 должен оставаться доступным.

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

  • /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