From 62656cfffcc8a1246d8af8a46dce4d76d709f8bb Mon Sep 17 00:00:00 2001 From: MpakobecEx Date: Thu, 15 Oct 2026 16:29:21 +0500 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B2=D0=BE=D0=BD=D0=B0?= =?UTF-8?q?=D1=87=D0=B0=D0=BB=D1=8C=D0=BD=D0=B0=D1=8F=20=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D1=81=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .dockerignore | 31 ++++ .env.example | 31 ++++ .gitattributes | 6 + .gitea/workflows/ci.yml | 55 +++++++ .gitignore | 36 +++++ Dockerfile | 28 ++++ README.md | 112 +++++++++++++++ bot/__init__.py | 1 + bot/__main__.py | 46 ++++++ bot/bot_factory.py | 37 +++++ bot/handlers/__init__.py | 1 + bot/handlers/commands.py | 138 ++++++++++++++++++ bot/handlers/economy.py | 70 +++++++++ bot/handlers/errors.py | 23 +++ bot/handlers/member_events.py | 81 +++++++++++ bot/handlers/shop.py | 81 +++++++++++ bot/keyboards/__init__.py | 5 + bot/keyboards/shop.py | 51 +++++++ bot/services/__init__.py | 1 + bot/services/access.py | 80 +++++++++++ bot/services/economy.py | 43 ++++++ bot/services/heartbeat.py | 28 ++++ bot/services/notifications.py | 88 ++++++++++++ bot/services/shop.py | 35 +++++ bot/services/stats.py | 14 ++ bot/services/subscriptions.py | 13 ++ bot/services/users.py | 67 +++++++++ common/__init__.py | 5 + common/config.py | 91 ++++++++++++ common/db/__init__.py | 1 + common/db/pool.py | 64 +++++++++ common/logging_config.py | 22 +++ common/models/__init__.py | 16 +++ common/models/economy.py | 28 ++++ common/models/shop.py | 23 +++ common/models/stats.py | 14 ++ common/models/users.py | 41 ++++++ common/repositories/__init__.py | 1 + common/repositories/economy_repo.py | 48 +++++++ common/repositories/shop_repo.py | 41 ++++++ common/repositories/stats_repo.py | 15 ++ common/repositories/subscriptions_repo.py | 19 +++ common/repositories/users_repo.py | 55 +++++++ common/texts/__init__.py | 62 ++++++++ common/texts/economy.py | 20 +++ common/texts/info.py | 26 ++++ common/texts/notifications.py | 16 +++ common/texts/render.py | 123 ++++++++++++++++ common/texts/shop.py | 7 + common/texts/system.py | 31 ++++ common/texts/welcome.py | 38 +++++ common/version.py | 10 ++ deploy/Caddyfile | 13 ++ deploy/README.md | 87 +++++++++++ deploy/runner/.env.example | 4 + deploy/runner/docker-compose.yml | 35 +++++ docker-compose.prod.yml | 78 ++++++++++ docker-compose.yml | 66 +++++++++ env/prod.env.example | 26 ++++ env/test.env.example | 24 ++++ images/welcome_image.jpg | Bin 0 -> 405726 bytes pyproject.toml | 15 ++ requirements-dev.txt | 7 + requirements.txt | 13 ++ sql/R__functions_economy.sql | 168 ++++++++++++++++++++++ sql/R__functions_shop.sql | 74 ++++++++++ sql/R__functions_stats.sql | 17 +++ sql/R__functions_subscriptions.sql | 21 +++ sql/R__functions_users.sql | 139 ++++++++++++++++++ sql/V10__table_purifications.sql | 6 + sql/V11__table_unsubscribe.sql | 5 + sql/V12__constraints_indexes.sql | 36 +++++ sql/V13__seed_actions.sql | 8 ++ sql/V1__create_schema.sql | 2 + sql/V2__table_tg_users.sql | 8 ++ sql/V3__table_de_users.sql | 12 ++ sql/V4__table_titles.sql | 8 ++ sql/V5__table_donats.sql | 8 ++ sql/V6__table_user_donats.sql | 8 ++ sql/V7__table_actions_money.sql | 18 +++ sql/V8__table_eggs.sql | 11 ++ sql/V9__table_messages.sql | 6 + start.sh | 6 + tests/test_render.py | 53 +++++++ tests/test_version.py | 10 ++ 85 files changed, 3011 insertions(+) create mode 100644 .dockerignore create mode 100644 .env.example create mode 100644 .gitattributes create mode 100644 .gitea/workflows/ci.yml create mode 100644 .gitignore create mode 100644 Dockerfile create mode 100644 README.md create mode 100644 bot/__init__.py create mode 100644 bot/__main__.py create mode 100644 bot/bot_factory.py create mode 100644 bot/handlers/__init__.py create mode 100644 bot/handlers/commands.py create mode 100644 bot/handlers/economy.py create mode 100644 bot/handlers/errors.py create mode 100644 bot/handlers/member_events.py create mode 100644 bot/handlers/shop.py create mode 100644 bot/keyboards/__init__.py create mode 100644 bot/keyboards/shop.py create mode 100644 bot/services/__init__.py create mode 100644 bot/services/access.py create mode 100644 bot/services/economy.py create mode 100644 bot/services/heartbeat.py create mode 100644 bot/services/notifications.py create mode 100644 bot/services/shop.py create mode 100644 bot/services/stats.py create mode 100644 bot/services/subscriptions.py create mode 100644 bot/services/users.py create mode 100644 common/__init__.py create mode 100644 common/config.py create mode 100644 common/db/__init__.py create mode 100644 common/db/pool.py create mode 100644 common/logging_config.py create mode 100644 common/models/__init__.py create mode 100644 common/models/economy.py create mode 100644 common/models/shop.py create mode 100644 common/models/stats.py create mode 100644 common/models/users.py create mode 100644 common/repositories/__init__.py create mode 100644 common/repositories/economy_repo.py create mode 100644 common/repositories/shop_repo.py create mode 100644 common/repositories/stats_repo.py create mode 100644 common/repositories/subscriptions_repo.py create mode 100644 common/repositories/users_repo.py create mode 100644 common/texts/__init__.py create mode 100644 common/texts/economy.py create mode 100644 common/texts/info.py create mode 100644 common/texts/notifications.py create mode 100644 common/texts/render.py create mode 100644 common/texts/shop.py create mode 100644 common/texts/system.py create mode 100644 common/texts/welcome.py create mode 100644 common/version.py create mode 100644 deploy/Caddyfile create mode 100644 deploy/README.md create mode 100644 deploy/runner/.env.example create mode 100644 deploy/runner/docker-compose.yml create mode 100644 docker-compose.prod.yml create mode 100644 docker-compose.yml create mode 100644 env/prod.env.example create mode 100644 env/test.env.example create mode 100644 images/welcome_image.jpg create mode 100644 pyproject.toml create mode 100644 requirements-dev.txt create mode 100644 requirements.txt create mode 100644 sql/R__functions_economy.sql create mode 100644 sql/R__functions_shop.sql create mode 100644 sql/R__functions_stats.sql create mode 100644 sql/R__functions_subscriptions.sql create mode 100644 sql/R__functions_users.sql create mode 100644 sql/V10__table_purifications.sql create mode 100644 sql/V11__table_unsubscribe.sql create mode 100644 sql/V12__constraints_indexes.sql create mode 100644 sql/V13__seed_actions.sql create mode 100644 sql/V1__create_schema.sql create mode 100644 sql/V2__table_tg_users.sql create mode 100644 sql/V3__table_de_users.sql create mode 100644 sql/V4__table_titles.sql create mode 100644 sql/V5__table_donats.sql create mode 100644 sql/V6__table_user_donats.sql create mode 100644 sql/V7__table_actions_money.sql create mode 100644 sql/V8__table_eggs.sql create mode 100644 sql/V9__table_messages.sql create mode 100644 start.sh create mode 100644 tests/test_render.py create mode 100644 tests/test_version.py diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..546c45d --- /dev/null +++ b/.dockerignore @@ -0,0 +1,31 @@ +.git +.gitignore +.gitattributes + +# venv / кеши +.venv +.venv11 +venv +env +__pycache__ +*.py[cod] +*.egg-info +.pytest_cache +.ruff_cache +.mypy_cache + +# IDE / локальное +.idea +.vscode +AGENTS.md +checklist.md +*.log + +# инфраструктура и документация (в образ не нужны) +deploy +.gitea +tests +docs +*.md +Dockerfile +docker-compose*.yml diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..7240f8e --- /dev/null +++ b/.env.example @@ -0,0 +1,31 @@ +# Скопируйте в .env и заполните реальными значениями. .env в git не попадает. + +# Режим окружения: dev | prod +APP_ENV=dev + +# Токен бота (получается у @BotFather) +BOT_TOKEN= + +# Postgres +DB_HOST=localhost +DB_PORT=5432 +DB_NAME=dispel_evil +DB_USER=de_admin +DB_PASSWORD= +# Пул соединений и таймауты запросов +DB_POOL_MIN=1 +DB_POOL_MAX=10 +DB_STATEMENT_TIMEOUT_MS=15000 + +# Чаты +# Основной чат клана (prod) и тестовый чат +PROD_CHAT_ID= +TEST_CHAT_ID= +# Личный чат для алертов об ошибках +ALERT_CHAT_ID= + +# Telegram ID администраторов (через запятую) +ADMIN_IDS= + +# Часовой пояс для расписаний +TIMEZONE=Europe/Moscow diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..287c37b --- /dev/null +++ b/.gitattributes @@ -0,0 +1,6 @@ +# Normalize line endings: stored as LF in the repo, checked out per OS. +* text=auto eol=lf +*.png binary +*.jpg binary +*.jpeg binary +*.gif binary diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml new file mode 100644 index 0000000..4e640b7 --- /dev/null +++ b/.gitea/workflows/ci.yml @@ -0,0 +1,55 @@ +name: CI + +on: + push: + branches: [master] + tags: ["v*"] + workflow_dispatch: + +env: + REGISTRY: git.mpakosrv.ru + IMAGE_NAME: mpakobecx/dispelevilbot-bot + +jobs: + lint-test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: "3.12" + - name: Установка зависимостей + run: pip install -r requirements-dev.txt + # Линт/формат пока не блокируют пайплайн (см. TODO). После первого прогона + # выполните локально `ruff check --fix .` и `black .`, затем уберите + # continue-on-error, чтобы стиль стал обязательным. + - name: Ruff + continue-on-error: true + run: ruff check . + - name: Black + continue-on-error: true + run: black --check . + - name: Pytest + run: pytest -q + + build-push: + runs-on: ubuntu-latest + needs: lint-test + # Собираем и пушим образ. Автодеплой НЕ делаем — выкатка вручную (test -> prod). + steps: + - uses: actions/checkout@v4 + - name: Логин в Gitea Registry + run: echo "${{ secrets.REGISTRY_TOKEN }}" | docker login "$REGISTRY" -u "${{ secrets.REGISTRY_USER }}" --password-stdin + - name: Сборка и публикация образа + run: | + set -e + IMAGE="$REGISTRY/$IMAGE_NAME" + SHORT_SHA="${GITHUB_SHA:0:12}" + TAGS="$IMAGE:$SHORT_SHA $IMAGE:latest" + if [[ "${GITHUB_REF}" == refs/tags/* ]]; then + TAGS="$TAGS $IMAGE:${GITHUB_REF_NAME}" + fi + ARGS="" + for t in $TAGS; do ARGS="$ARGS -t $t"; done + docker build $ARGS . + for t in $TAGS; do docker push "$t"; done diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f498bc5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,36 @@ +# Python +__pycache__/ +*.py[cod] +*.egg-info/ +.pytest_cache/ +.ruff_cache/ +.mypy_cache/ + +# Virtualenv +.venv/ +.venv11/ +venv/ + +# Secrets / environment +.env +.env.* +!.env.example +env/*.env +!env/*.env.example + +# IDE +.idea/ +.vscode/ + +# Logs / runtime +*.log +*.pid + +# OS +.DS_Store +Thumbs.db + +# Локальные материалы (в репозиторий не попадают) +AGENTS.md +checklist.md +sql/README.md diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..dd19c88 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,28 @@ +# syntax=docker/dockerfile:1 +FROM python:3.12-slim + +ENV PYTHONUNBUFFERED=1 \ + PYTHONDONTWRITEBYTECODE=1 \ + PIP_NO_CACHE_DIR=1 \ + PIP_DISABLE_PIP_VERSION_CHECK=1 + +WORKDIR /app + +# Непривилегированный пользователь +RUN useradd --create-home --uid 1000 app + +COPY requirements.txt ./ +RUN pip install --no-cache-dir -r requirements.txt + +COPY common ./common +COPY bot ./bot +COPY images ./images + +USER app + +# Живость процесса: бот обновляет файл-heartbeat (см. bot/services/heartbeat.py). +# Путь должен совпадать с HEARTBEAT_PATH (по умолчанию /tmp/dispelevilbot.heartbeat). +HEALTHCHECK --interval=30s --timeout=5s --start-period=40s --retries=3 \ + CMD python -c "import os,sys,time; p='/tmp/dispelevilbot.heartbeat'; sys.exit(0 if os.path.exists(p) and time.time()-os.path.getmtime(p) < 120 else 1)" + +CMD ["python", "-m", "bot"] diff --git a/README.md b/README.md new file mode 100644 index 0000000..5e9ed1e --- /dev/null +++ b/README.md @@ -0,0 +1,112 @@ +# DispelEvilBot + +Telegram-бот клана Dispel Evil (aiogram 3 + Postgres). Монорепозиторий: +общий пакет `common` используется сервисом бота `bot` (и, в будущем, админкой `admin`). + +## Структура + +``` +common/ # общий пакет: config, logging, db, repositories, models, texts +bot/ # сервис бота: handlers, services, keyboards, notifications +sql/ # миграции Flyway (V__*.sql, R__*.sql) +images/ # статичные картинки (приветствие) +deploy/ # материалы деплоя (Caddyfile, инструкции) +tests/ # тесты +Dockerfile # образ бота +docker-compose.yml / docker-compose.prod.yml +.gitea/ # CI (Gitea Actions) +``` + +## Требования + +- Python 3.12 +- PostgreSQL 14+ + +## Настройка + +```bash +cp .env.example .env +# заполнить BOT_TOKEN, DB_*, чаты и ADMIN_IDS +pip install -r requirements.txt +``` + +## Запуск + +```bash +APP_ENV=dev python -m bot # dev +APP_ENV=prod python -m bot # prod +``` + +или через `./start.sh` (режим берётся из `APP_ENV`). + +## База данных + +Схема управляется миграциями **Flyway** в `sql/` (`V__*.sql` — versioned, `R__*.sql` — repeatable). +При Docker-развёртывании накат выполняется автоматически сервисом `migrate` перед ботом. + +## Docker + +Локальный запуск (postgres + migrate + bot): + +```bash +cp .env.example .env # заполнить +docker compose up --build +``` + +Прод/test-контуры — один `docker-compose.prod.yml`, разделяются Compose-проектом и env-файлом: + +```bash +docker compose -p prod --env-file env/prod.env -f docker-compose.prod.yml up -d +docker compose -p test --env-file env/test.env -f docker-compose.prod.yml up -d +``` + +Registry, перенос данных, TLS и firewall — см. [`deploy/README.md`](deploy/README.md). + +## Разработка + +```bash +pip install -r requirements-dev.txt +ruff check . +black --check . +pytest +``` + +## Версионирование + +- Единый источник версии — `common/version.py` (`__version__`), текущая — `0.1`. +- Схема — SemVer-подобная (`MAJOR.MINOR.PATCH`); git-тег = `v` + версия (`v0.1`). +- Docker-образы тегируются версией (Блок 2), события ClickHouse получают `bot_version` (Блок 3). +- Выпуск: изменить `common/version.py` → коммит → аннотированный тег `vX.Y` → `git push --tags`. + +## Процесс работы с git + +Проект ведётся в режиме **trunk-based** (один разработчик): основная работа — прямо в `master`. + +- `master` — интеграционная ветка, всегда в рабочем состоянии. +- Релизы — аннотированные теги `vX.Y` (см. «Версионирование»). +- Для крупных/рискованных изменений — короткая ветка `feature/...` и merge обратно в `master`. +- Push в `master` → CI (Gitea Actions) собирает образ; **авто-выката в прод нет**. +- Выкатка: сначала контур `test`, затем `prod` по подтверждению (см. Блок 2.5 плана). +- Переход на «ветки + PR» и защиту ветки — когда появится второй разработчик. + +```bash +# обычная работа +git add -A +git commit -m "feat: ..." +git push origin master + +# выпуск релиза +# 1) поднять __version__ в common/version.py +git commit -am "chore: bump version to X.Y" +git tag -a vX.Y -m "Release vX.Y" +git push origin master --tags +``` + +## Команды бота + +`/ник`, `/список`, `/кто`, `/инфо`, `/помощь`, `/очищение`, `/яички`, +`/магазин`, `/рейтинг`, `/отписка`, `/подписка`. + +## Переменные окружения + +См. `.env.example`. diff --git a/bot/__init__.py b/bot/__init__.py new file mode 100644 index 0000000..6091edd --- /dev/null +++ b/bot/__init__.py @@ -0,0 +1 @@ +"""Сервис Telegram-бота.""" diff --git a/bot/__main__.py b/bot/__main__.py new file mode 100644 index 0000000..136de45 --- /dev/null +++ b/bot/__main__.py @@ -0,0 +1,46 @@ +"""Точка входа бота: python -m bot""" + +from __future__ import annotations + +import asyncio +import logging + +from bot.bot_factory import create_bot, create_dispatcher +from bot.services.heartbeat import run_heartbeat +from bot.services.notifications import run_notifications +from common import __version__ +from common.config import get_settings +from common.db.pool import close_pool, init_pool +from common.logging_config import setup_logging + +logger = logging.getLogger(__name__) + + +async def main() -> None: + setup_logging(logging.INFO) + settings = get_settings() + logger.info("Запуск DispelEvilBot v%s (APP_ENV=%s)", __version__, settings.app_env) + + await init_pool() + + bot = create_bot() + dp = create_dispatcher() + + notifications_task = asyncio.create_task(run_notifications(bot)) + heartbeat_task = asyncio.create_task(run_heartbeat()) + try: + await bot.delete_webhook(drop_pending_updates=True) + await dp.start_polling(bot, allowed_updates=dp.resolve_used_update_types()) + finally: + notifications_task.cancel() + heartbeat_task.cancel() + await asyncio.gather(notifications_task, heartbeat_task, return_exceptions=True) + await close_pool() + await bot.session.close() + + +if __name__ == "__main__": + try: + asyncio.run(main()) + except (KeyboardInterrupt, SystemExit): + logger.info("Бот остановлен") diff --git a/bot/bot_factory.py b/bot/bot_factory.py new file mode 100644 index 0000000..01bdd0c --- /dev/null +++ b/bot/bot_factory.py @@ -0,0 +1,37 @@ +"""Создание объектов Bot и Dispatcher, регистрация роутеров.""" + +from __future__ import annotations + +from aiogram import Bot, Dispatcher +from aiogram.client.default import DefaultBotProperties +from aiogram.enums import ParseMode +from aiogram.fsm.storage.memory import MemoryStorage + +from common.config import get_settings + + +def create_bot() -> Bot: + """Создать объект бота с HTML-разметкой по умолчанию.""" + settings = get_settings() + return Bot( + token=settings.bot_token, + default=DefaultBotProperties(parse_mode=ParseMode.HTML), + ) + + +def create_dispatcher() -> Dispatcher: + """Собрать Dispatcher и подключить все роутеры. + + Порядок важен: сначала события участников и команды, затем магазин, + и в конце — экономика (в ней есть catch-all обработчик сообщений). + """ + from bot.handlers import commands, economy, member_events, shop + from bot.handlers.errors import register_errors + + dp = Dispatcher(storage=MemoryStorage()) + dp.include_router(member_events.router) + dp.include_router(commands.router) + dp.include_router(shop.router) + dp.include_router(economy.router) + register_errors(dp) + return dp diff --git a/bot/handlers/__init__.py b/bot/handlers/__init__.py new file mode 100644 index 0000000..260898b --- /dev/null +++ b/bot/handlers/__init__.py @@ -0,0 +1 @@ +"""Роутеры (хендлеры) бота.""" diff --git a/bot/handlers/commands.py b/bot/handlers/commands.py new file mode 100644 index 0000000..70c929b --- /dev/null +++ b/bot/handlers/commands.py @@ -0,0 +1,138 @@ +"""Основные команды бота.""" + +from __future__ import annotations + +import logging + +from aiogram import Router +from aiogram.enums import ChatMemberStatus +from aiogram.filters import Command +from aiogram.types import Message + +from bot.services import access, stats, subscriptions +from bot.services import users as users_service +from common.config import get_settings +from common.texts import economy, info, system +from common.texts.render import format_tops, format_user_list, render + +logger = logging.getLogger(__name__) +router = Router(name="commands") + + +@router.message(Command("ник", ignore_case=True)) +async def set_nick_handler(message: Message) -> None: + if not await access.check_user(message): + return + + parts = (message.text or "").split() + if len(parts) < 2: + await message.reply(system.MSG_NICK_ERROR) + return + + nick = parts[1] + try: + await users_service.set_nick(message.from_user.id, nick) + await message.answer( + render(system.MSG_NICK_SET, {"username": message.from_user.username, "nick": nick}) + ) + await message.delete() + except Exception: + logger.exception("Не удалось установить ник") + await message.reply(system.MSG_NICK_ERROR) + + +@router.message(Command("список", ignore_case=True)) +async def list_nicks_handler(message: Message) -> None: + if not await access.check_user(message): + return + + settings = get_settings() + if message.chat.type == "private": + allowed = True + else: + member = await message.bot.get_chat_member(settings.chat_id, message.from_user.id) + allowed = member.status in {ChatMemberStatus.ADMINISTRATOR, ChatMemberStatus.CREATOR} + + if not allowed: + await message.answer(system.MSG_LIST_PRIVATE_ONLY) + return + + await users_service.register_from_message(message) + nicks = await users_service.list_nicks() + context = { + "users_list": format_user_list([{"username": n.username, "nick": n.nick} for n in nicks]), + "users_list_count": len(nicks), + } + await message.answer(render(economy.MSG_NICK_LIST, context)) + + +@router.message(Command("кто", ignore_case=True)) +async def get_nick_handler(message: Message) -> None: + if not await access.check_user(message): + return + if message.reply_to_message is None or message.reply_to_message.from_user is None: + await message.reply(system.MSG_REPLY_REQUIRED) + return + + user_info = await users_service.get_user_info(message.reply_to_message.from_user.id) + if user_info is None or not user_info.nick: + await message.reply(system.MSG_NICK_EMPTY) + return + await message.reply(user_info.nick) + + +@router.message(Command("помощь", ignore_case=True)) +async def help_handler(message: Message) -> None: + if not await access.check_user(message): + return + await message.answer(info.MSG_HELP) + + +@router.message(Command("инфо", ignore_case=True)) +async def info_handler(message: Message) -> None: + if not await access.check_user(message): + return + + user_info = await users_service.get_user_info(message.from_user.id) + if user_info is None: + await message.reply(system.MSG_NICK_ERROR) + return + + context = { + "username": user_info.username, + "nick": user_info.nick_text, + "title": user_info.title_text, + "lvl": user_info.lvl, + "exp": user_info.exp, + "exp_max": user_info.exp_max, + "money": user_info.money, + "dt": user_info.dt, + "msg_count": user_info.msg_count, + "eggs": user_info.eggs, + } + await message.answer(render(info.MSG_INFO, context)) + + +@router.message(Command("рейтинг", ignore_case=True)) +async def top_handler(message: Message) -> None: + if not await access.check_user(message): + return + tops = await stats.top_users() + context = {"tops": format_tops([{"nick": t.nick, "count": t.count} for t in tops])} + await message.answer(render(economy.MSG_TOP, context)) + + +@router.message(Command("отписка", ignore_case=True)) +async def unsubscribe_handler(message: Message) -> None: + if not await access.check_user(message): + return + await subscriptions.unsubscribe(message.from_user.id) + await message.reply(system.MSG_UNSUBSCRIBED) + + +@router.message(Command("подписка", ignore_case=True)) +async def subscribe_handler(message: Message) -> None: + if not await access.check_user(message): + return + await subscriptions.subscribe(message.from_user.id) + await message.reply(system.MSG_SUBSCRIBED) diff --git a/bot/handlers/economy.py b/bot/handlers/economy.py new file mode 100644 index 0000000..1c1d394 --- /dev/null +++ b/bot/handlers/economy.py @@ -0,0 +1,70 @@ +"""Команды экономики: очищение, яички и реакция на сообщения.""" + +from __future__ import annotations + +import random +from datetime import date, datetime + +from aiogram import Router +from aiogram.filters import Command +from aiogram.types import Message + +from bot.services import access, economy as economy_service +from common.config import get_settings +from common.texts import economy, system +from common.texts.render import render + +router = Router(name="economy") + +#: Окно сезонного события «яички». +EGG_EVENT_START = date(2025, 4, 1) +EGG_EVENT_END = date(2025, 4, 20) + +#: Шанс выпадения монетки на сообщение. +COIN_CHANCE = 27 # из 100 + + +@router.message(Command("очищение", ignore_case=True)) +async def purification_handler(message: Message) -> None: + if not await access.check_user(message): + return + + result = await economy_service.purify(message.from_user.id) + if not result.success: + context = {"h": result.hours, "m": result.minutes, "s": result.seconds} + await message.answer(render(economy.MSG_NO_PURIFICATION, context)) + else: + context = {"money_add": result.money_add, "exp_add": result.exp_add} + await message.answer(render(economy.MSG_PURIFICATION, context)) + + +@router.message(Command("яички", ignore_case=True)) +async def eggs_handler(message: Message) -> None: + today = datetime.now(get_settings().tzinfo).date() + if not (EGG_EVENT_START <= today <= EGG_EVENT_END): + await message.answer(system.MSG_EGGS_TOO_EARLY) + return + + if not await access.check_user(message): + return + + result = await economy_service.collect_eggs(message.from_user.id) + if not result.success: + context = {"h": result.hours, "m": result.minutes, "s": result.seconds} + await message.answer(render(economy.MSG_NO_EGGS, context)) + else: + await message.answer(render(economy.MSG_EGGS, {"eggs": result.eggs})) + + +@router.message() +async def message_handler(message: Message) -> None: + """Случайная монетка за активность в основном чате.""" + if not await access.check_user(message): + return + + if message.chat.id != get_settings().chat_id: + return + + if random.randrange(1, 100) == COIN_CHANCE: + await message.reply(system.MSG_COIN) + await economy_service.add_coins(message.from_user.id, 1) diff --git a/bot/handlers/errors.py b/bot/handlers/errors.py new file mode 100644 index 0000000..a7c1995 --- /dev/null +++ b/bot/handlers/errors.py @@ -0,0 +1,23 @@ +"""Глобальный обработчик ошибок.""" + +from __future__ import annotations + +import logging + +from aiogram import Dispatcher +from aiogram.types import ErrorEvent + +logger = logging.getLogger(__name__) + + +def register_errors(dp: Dispatcher) -> None: + """Зарегистрировать обработчик, чтобы одна ошибка не роняла поллинг.""" + + @dp.errors() + async def on_error(event: ErrorEvent) -> bool: + exc = event.exception + logger.error( + "Необработанная ошибка при обработке апдейта", + exc_info=(type(exc), exc, exc.__traceback__), + ) + return True diff --git a/bot/handlers/member_events.py b/bot/handlers/member_events.py new file mode 100644 index 0000000..d198d84 --- /dev/null +++ b/bot/handlers/member_events.py @@ -0,0 +1,81 @@ +"""События участников: добавление бота, вход и выход пользователей.""" + +from __future__ import annotations + +import logging + +from aiogram import Router +from aiogram.filters import JOIN_TRANSITION, LEAVE_TRANSITION, ChatMemberUpdatedFilter +from aiogram.types import ChatMemberUpdated, FSInputFile +from aiogram.utils.keyboard import InlineKeyboardBuilder + +from bot.services import users as users_service +from common.config import get_settings +from common.texts import system, welcome +from common.texts.render import render + +logger = logging.getLogger(__name__) +router = Router(name="member_events") + + +@router.my_chat_member(ChatMemberUpdatedFilter(member_status_changed=JOIN_TRANSITION)) +async def bot_added_handler(event: ChatMemberUpdated) -> None: + """Бот добавлен в чат.""" + settings = get_settings() + if event.chat.id not in {settings.prod_chat_id, settings.test_chat_id}: + await event.bot.send_message(chat_id=event.chat.id, text=system.MSG_BOT_FOREIGN_CHAT) + await event.bot.leave_chat(event.chat.id) + else: + await event.bot.send_message(chat_id=event.chat.id, text=system.MSG_BOT_ADDED) + + +@router.chat_member(ChatMemberUpdatedFilter(member_status_changed=JOIN_TRANSITION)) +async def welcome_handler(event: ChatMemberUpdated) -> None: + """Пользователь вошёл в чат — приветствие.""" + user = event.new_chat_member.user + if user.is_bot: + return + + await users_service.register_from_event(event) + + builder = InlineKeyboardBuilder() + builder.button(text=welcome.MSG_WELCOME_BUTTON_CAPTION, url=welcome.MSG_WELCOME_BUTTON_URL) + + await event.bot.send_photo( + chat_id=event.chat.id, + photo=FSInputFile("images/welcome_image.jpg"), + caption=render(welcome.MSG_WELCOME_TEXT, {"username": user.username}), + ) + await event.bot.send_message( + chat_id=event.chat.id, + text=welcome.MSG_WELCOME_TEXT2, + reply_markup=builder.as_markup(), + ) + await event.bot.send_message(chat_id=event.chat.id, text=welcome.MSG_WELCOME_TEXT3) + + +@router.chat_member(ChatMemberUpdatedFilter(member_status_changed=LEAVE_TRANSITION)) +async def goodbye_handler(event: ChatMemberUpdated) -> None: + """Пользователь вышел из чата — удалить запись.""" + settings = get_settings() + user = event.from_user + if user is None or user.is_bot: + return + if event.chat.id == settings.test_chat_id: + return + + await users_service.delete_user(user.id) + logger.info("Удалён пользователь %s после выхода из чата", user.id) + + try: + await event.bot.send_message( + chat_id=settings.test_chat_id, + text=f"[goodbye_handler]\nУдалил {user.username or user.id}!", + ) + if settings.alert_chat_id: + await event.bot.send_message( + chat_id=settings.alert_chat_id, + text=f"Пользователь {user.username or user.id} покинул чат {event.chat.title}", + ) + except Exception: + logger.exception("Не удалось отправить уведомление о выходе пользователя") diff --git a/bot/handlers/shop.py b/bot/handlers/shop.py new file mode 100644 index 0000000..3de67de --- /dev/null +++ b/bot/handlers/shop.py @@ -0,0 +1,81 @@ +"""Магазин: команда и обработка callback-кнопок.""" + +from __future__ import annotations + +import logging + +from aiogram import Router +from aiogram.filters import Command +from aiogram.types import CallbackQuery, Message + +from bot.keyboards import get_keyboard_donat, get_keyboard_main, get_keyboard_title +from bot.services import access, shop as shop_service +from common.texts import shop as shop_texts, system +from common.texts.render import render + +logger = logging.getLogger(__name__) +router = Router(name="shop") + + +@router.message(Command("магазин", ignore_case=True)) +async def shop_handler(message: Message) -> None: + if not await access.check_user(message): + return + if message.chat.type != "private": + await message.answer(system.MSG_SHOP_PRIVATE_ONLY) + return + await message.answer(shop_texts.MSG_SHOP_MAIN, reply_markup=get_keyboard_main()) + + +async def _render_chapter(chapter: str) -> tuple[str, object] | None: + if chapter == "main": + return shop_texts.MSG_SHOP_MAIN, get_keyboard_main() + if chapter == "title": + return shop_texts.MSG_SHOP_TITLE, await get_keyboard_title() + if chapter == "donat": + return shop_texts.MSG_SHOP_DONAT, await get_keyboard_donat() + return None + + +@router.callback_query() +async def callbacks_handler(callback: CallbackQuery) -> None: + answer_text = "" + args = (callback.data or "").split("_") + action = args[0] if args else "" + + if action == "go" and len(args) > 1: + chapter = await _render_chapter(args[1]) + if chapter is not None and callback.message is not None: + text, markup = chapter + await callback.bot.edit_message_text( + chat_id=callback.message.chat.id, + message_id=callback.message.message_id, + text=text, + reply_markup=markup, + ) + + elif action == "buy" and len(args) > 2: + product, id_product = args[1], int(args[2]) + if product == "title": + ok = await shop_service.buy_title(callback.from_user.id, id_product) + if not ok: + answer_text = system.MSG_PURCHASE_FAIL + elif callback.message is not None: + await callback.bot.edit_message_text( + chat_id=callback.message.chat.id, + message_id=callback.message.message_id, + text=system.MSG_PURCHASE_OK, + ) + elif product == "donat": + promo = await shop_service.buy_donat(callback.from_user.id, id_product) + if promo is None: + answer_text = system.MSG_PURCHASE_FAIL + elif callback.message is not None: + await callback.bot.edit_message_text( + chat_id=callback.message.chat.id, + message_id=callback.message.message_id, + text=render(system.MSG_DONAT_PROMO, {"promo": promo}), + parse_mode="MARKDOWN", + ) + + await callback.answer(answer_text) diff --git a/bot/keyboards/__init__.py b/bot/keyboards/__init__.py new file mode 100644 index 0000000..98791e9 --- /dev/null +++ b/bot/keyboards/__init__.py @@ -0,0 +1,5 @@ +"""Клавиатуры бота.""" + +from bot.keyboards.shop import get_keyboard_donat, get_keyboard_main, get_keyboard_title + +__all__ = ["get_keyboard_donat", "get_keyboard_main", "get_keyboard_title"] diff --git a/bot/keyboards/shop.py b/bot/keyboards/shop.py new file mode 100644 index 0000000..1fc2422 --- /dev/null +++ b/bot/keyboards/shop.py @@ -0,0 +1,51 @@ +"""Клавиатуры магазина.""" + +from __future__ import annotations + +from aiogram.types import InlineKeyboardButton, InlineKeyboardMarkup + +from bot.services import shop as shop_service + +BACK_BUTTON = InlineKeyboardButton(text="<<<Назад<<<", callback_data="go_main") + + +def get_keyboard_main() -> InlineKeyboardMarkup: + """Главное меню магазина.""" + return InlineKeyboardMarkup( + inline_keyboard=[ + [InlineKeyboardButton(text="Звание", callback_data="go_title")], + [InlineKeyboardButton(text="Донат", callback_data="go_donat")], + ] + ) + + +async def get_keyboard_title() -> InlineKeyboardMarkup: + """Список доступных званий.""" + titles = await shop_service.list_titles() + buttons = [ + [ + InlineKeyboardButton( + text=f"{title.title} - {title.price} DE", + callback_data=f"buy_title_{title.id}", + ) + ] + for title in titles + ] + buttons.append([BACK_BUTTON]) + return InlineKeyboardMarkup(inline_keyboard=buttons) + + +async def get_keyboard_donat() -> InlineKeyboardMarkup: + """Список доступных донатов.""" + donats = await shop_service.list_donats() + buttons = [ + [ + InlineKeyboardButton( + text=f"{donat.title} - {donat.price} DE", + callback_data=f"buy_donat_{donat.id}", + ) + ] + for donat in donats + ] + buttons.append([BACK_BUTTON]) + return InlineKeyboardMarkup(inline_keyboard=buttons) diff --git a/bot/services/__init__.py b/bot/services/__init__.py new file mode 100644 index 0000000..4fb60c1 --- /dev/null +++ b/bot/services/__init__.py @@ -0,0 +1 @@ +"""Бизнес-логика бота.""" diff --git a/bot/services/access.py b/bot/services/access.py new file mode 100644 index 0000000..847ac17 --- /dev/null +++ b/bot/services/access.py @@ -0,0 +1,80 @@ +"""Проверка доступа пользователя к функциональности бота.""" + +from __future__ import annotations + +import logging +import time + +from aiogram import Bot +from aiogram.enums import ChatMemberStatus +from aiogram.types import Message + +from bot.services import users as users_service +from common.config import get_settings + +logger = logging.getLogger(__name__) + +_ALLOWED_STATUSES = { + ChatMemberStatus.MEMBER, + ChatMemberStatus.CREATOR, + ChatMemberStatus.ADMINISTRATOR, + ChatMemberStatus.RESTRICTED, +} + +#: TTL-кеш членства, чтобы не дёргать get_chat_member на каждое сообщение. +_MEMBERSHIP_TTL = 300.0 +_membership_cache: dict[int, tuple[float, bool]] = {} + + +async def _is_member(bot: Bot, user_id: int) -> bool: + now = time.monotonic() + cached = _membership_cache.get(user_id) + if cached is not None and now - cached[0] < _MEMBERSHIP_TTL: + return cached[1] + + member = await bot.get_chat_member(get_settings().chat_id, user_id) + allowed = member.status in _ALLOWED_STATUSES + _membership_cache[user_id] = (now, allowed) + return allowed + + +async def check_user(message: Message) -> bool: + """Пропустить пользователя: проверить членство и обновить его запись. + + В тестовом чате доступ разрешён всегда. + """ + settings = get_settings() + + if message.chat.id == settings.test_chat_id: + return True + + user = message.from_user + if user is None: + return False + + if user.id in settings.admin_ids or await _is_member(message.bot, user.id): + await users_service.register_from_message(message) + return True + + await users_service.delete_user(user.id) + logger.warning("Пользователь %s стучится в чат, доступ запрещён", user.id) + await _notify_denied(message) + return False + + +async def _notify_denied(message: Message) -> None: + settings = get_settings() + username = message.from_user.username if message.from_user else None + try: + await message.bot.send_message( + chat_id=settings.test_chat_id, + text=f"[check_user]\nСтучится в чат {username}!", + ) + if settings.alert_chat_id: + await message.bot.forward_message( + chat_id=settings.alert_chat_id, + from_chat_id=message.chat.id, + message_id=message.message_id, + ) + except Exception: # уведомление не должно ломать обработку + logger.exception("Не удалось отправить уведомление о запрете доступа") diff --git a/bot/services/economy.py b/bot/services/economy.py new file mode 100644 index 0000000..0140067 --- /dev/null +++ b/bot/services/economy.py @@ -0,0 +1,43 @@ +"""Сервис экономики: очищение, яички, монетки.""" + +from __future__ import annotations + +from common.models import EggsResult, PurificationResult +from common.repositories import economy_repo + +#: id действия для начисления монеток. +ACTION_COIN = 1 + + +async def purify(id_user: int) -> PurificationResult: + """Выполнить ежедневное очищение.""" + row = await economy_repo.purification(id_user) + if not row: + return PurificationResult(success=False) + return PurificationResult( + success=int(row.get("res") or 0) != 0, + exp_add=int(row.get("expr_add") or 0), + money_add=int(row.get("mny_add") or 0), + hours=int(row.get("h") or 0), + minutes=int(row.get("m") or 0), + seconds=int(row.get("s") or 0), + ) + + +async def collect_eggs(id_user: int) -> EggsResult: + """Получить ежедневные яички.""" + row = await economy_repo.add_eggs(id_user) + if not row: + return EggsResult(success=False) + return EggsResult( + success=int(row.get("res") or 0) != 0, + eggs=int(row.get("eggs_add") or 0), + hours=int(row.get("h") or 0), + minutes=int(row.get("m") or 0), + seconds=int(row.get("s") or 0), + ) + + +async def add_coins(id_user: int, amount: int) -> None: + """Начислить монеты.""" + await economy_repo.money_action(id_user, amount, ACTION_COIN) diff --git a/bot/services/heartbeat.py b/bot/services/heartbeat.py new file mode 100644 index 0000000..b198488 --- /dev/null +++ b/bot/services/heartbeat.py @@ -0,0 +1,28 @@ +"""Heartbeat для Docker healthcheck. + +Бот периодически обновляет mtime файла; healthcheck считает контейнер живым, +если файл свежий. Если event loop завис — heartbeat перестаёт обновляться. +""" + +from __future__ import annotations + +import asyncio +import logging +from pathlib import Path + +from common.config import get_settings + +logger = logging.getLogger(__name__) + +HEARTBEAT_INTERVAL = 30 + + +async def run_heartbeat() -> None: + """Обновлять файл-heartbeat каждые ``HEARTBEAT_INTERVAL`` секунд.""" + path = Path(get_settings().heartbeat_path) + while True: + try: + path.touch() + except OSError: + logger.exception("Не удалось обновить heartbeat-файл %s", path) + await asyncio.sleep(HEARTBEAT_INTERVAL) diff --git a/bot/services/notifications.py b/bot/services/notifications.py new file mode 100644 index 0000000..d303f10 --- /dev/null +++ b/bot/services/notifications.py @@ -0,0 +1,88 @@ +"""Планировщик рассылок. + +Исполняется внутри процесса бота. Расписание пока задано в коде (данные, а не +магические числа); в Блоке 4 переедет в таблицу ``schedules`` и будет +редактироваться через админку. +""" + +from __future__ import annotations + +import asyncio +import logging +from dataclasses import dataclass, field +from datetime import datetime + +from aiogram import Bot + +from bot.services import users as users_service +from common.config import get_settings +from common.texts import format_usernames, render +from common.texts import notifications as notify_texts + +logger = logging.getLogger(__name__) + +#: Размер порции упоминаний в одном сообщении. +BATCH_SIZE = 10 + + +@dataclass(frozen=True, slots=True) +class ScheduledMessage: + """Одна запланированная рассылка. + + :param weekdays: дни недели (0=Пн … 6=Вс). None — ежедневно. + """ + + hour: int + minute: int + template: str + weekdays: tuple[int, ...] | None = field(default=None) + + def matches(self, now: datetime) -> bool: + if self.hour != now.hour or self.minute != now.minute: + return False + return self.weekdays is None or now.weekday() in self.weekdays + + +SCHEDULES: tuple[ScheduledMessage, ...] = ( + ScheduledMessage(16, 30, notify_texts.MSG_BLAGO_30), + ScheduledMessage(16, 45, notify_texts.MSG_BLAGO_45), + ScheduledMessage(16, 55, notify_texts.MSG_BLAGO_55), + ScheduledMessage(17, 0, notify_texts.MSG_BLAGO), + ScheduledMessage(15, 0, notify_texts.MSG_VKLAD, weekdays=(4,)), # пятница + ScheduledMessage(14, 0, notify_texts.MSG_VKLAD, weekdays=(6,)), # воскресенье +) + + +async def _send_broadcast(bot: Bot, template: str, subscribers: list[dict]) -> None: + chunks = [ + subscribers[i : i + BATCH_SIZE] for i in range(0, len(subscribers), BATCH_SIZE) + ] or [[]] + for chunk in chunks: + text = render(template, {"usernames": format_usernames(chunk)}) + await bot.send_message(chat_id=get_settings().chat_id, text=text) + + +async def _tick(bot: Bot, now: datetime) -> None: + settings = get_settings() + if now.minute == 0: + await bot.send_message(chat_id=settings.test_chat_id, text="Я ЖЫФ!") + + for schedule in SCHEDULES: + if schedule.matches(now): + subscribers = await users_service.list_subscribers() + await _send_broadcast(bot, schedule.template, subscribers) + + +async def run_notifications(bot: Bot) -> None: + """Бесконечно проверять расписание раз в минуту.""" + tz = get_settings().tzinfo + while True: + now = datetime.now(tz).replace(second=0, microsecond=0) + try: + await _tick(bot, now) + except asyncio.CancelledError: + raise + except Exception: + logger.exception("Ошибка планировщика рассылок") + # Спать до начала следующей минуты, чтобы обрабатывать каждую минуту один раз. + await asyncio.sleep(60 - datetime.now(tz).second) diff --git a/bot/services/shop.py b/bot/services/shop.py new file mode 100644 index 0000000..f61ba27 --- /dev/null +++ b/bot/services/shop.py @@ -0,0 +1,35 @@ +"""Сервис магазина.""" + +from __future__ import annotations + +from common.models import Donat, Title +from common.repositories import shop_repo + + +async def list_titles() -> list[Title]: + rows = await shop_repo.get_titles_list() + return [ + Title(id=int(row["i"]), title=row["n"] or "", price=int(row["p"] or 0)) + for row in rows + ] + + +async def list_donats() -> list[Donat]: + rows = await shop_repo.get_donats_list() + return [ + Donat(id=int(row["i"]), title=row["n"] or "", price=int(row["p"] or 0)) + for row in rows + ] + + +async def buy_title(id_user: int, id_title: int) -> bool: + """Купить звание. Возвращает True при успехе.""" + return await shop_repo.buy_title(id_user, id_title) == 1 + + +async def buy_donat(id_user: int, id_donat: int) -> str | None: + """Купить донат. Возвращает промокод или None при неуспехе.""" + result = await shop_repo.buy_donat(id_user, id_donat) + if result == "-1": + return None + return result diff --git a/bot/services/stats.py b/bot/services/stats.py new file mode 100644 index 0000000..d4731ca --- /dev/null +++ b/bot/services/stats.py @@ -0,0 +1,14 @@ +"""Сервис статистики.""" + +from __future__ import annotations + +from common.models import TopEntry +from common.repositories import stats_repo + + +async def top_users() -> list[TopEntry]: + rows = await stats_repo.get_top_list() + return [ + TopEntry(username=row.get("username"), nick=row.get("nick"), count=int(row.get("count") or 0)) + for row in rows + ] diff --git a/bot/services/subscriptions.py b/bot/services/subscriptions.py new file mode 100644 index 0000000..01da525 --- /dev/null +++ b/bot/services/subscriptions.py @@ -0,0 +1,13 @@ +"""Сервис подписок на рассылки.""" + +from __future__ import annotations + +from common.repositories import subscriptions_repo + + +async def subscribe(id_user: int) -> None: + await subscriptions_repo.subscribe(id_user) + + +async def unsubscribe(id_user: int) -> None: + await subscriptions_repo.unsubscribe(id_user) diff --git a/bot/services/users.py b/bot/services/users.py new file mode 100644 index 0000000..d62b630 --- /dev/null +++ b/bot/services/users.py @@ -0,0 +1,67 @@ +"""Сервис пользователей.""" + +from __future__ import annotations + +from aiogram.types import ChatMemberUpdated, Message, User + +from common.models import NickEntry, UserInfo +from common.repositories import users_repo + + +def _user_fields(user: User) -> tuple[int, str, str, str]: + return ( + int(user.id), + user.username or "", + user.first_name or "", + user.last_name or "", + ) + + +async def register_from_message(message: Message) -> None: + """Зарегистрировать/обновить автора сообщения.""" + user = message.from_user + if user is None or user.is_bot: + return + await users_repo.add_user(*_user_fields(user)) + + +async def register_from_event(event: ChatMemberUpdated) -> None: + """Зарегистрировать/обновить участника, вошедшего в чат.""" + user = event.new_chat_member.user + if user.is_bot: + return + await users_repo.add_user(*_user_fields(user)) + + +async def set_nick(id_user: int, nick: str) -> None: + await users_repo.add_nick(id_user, nick) + + +async def delete_user(id_user: int) -> None: + await users_repo.del_user_by_id(id_user) + + +async def list_nicks() -> list[NickEntry]: + rows = await users_repo.get_nick_list() + return [NickEntry(username=row.get("username"), nick=row.get("nick")) for row in rows] + + +async def list_subscribers() -> list[dict]: + return await users_repo.get_nick_list_subscribe() + + +async def get_user_info(id_user: int) -> UserInfo | None: + row = await users_repo.get_info_by_id(id_user) + if not row: + return None + return UserInfo( + username=row.get("username"), + nick=row.get("nick"), + title=row.get("title"), + lvl=int(row.get("lvl") or 0), + exp=int(row.get("expr") or 0), + money=int(row.get("mny") or 0), + dt=row.get("dt") or "", + msg_count=int(row.get("msg_count") or 0), + eggs=int(row.get("eggs_count") or 0), + ) diff --git a/common/__init__.py b/common/__init__.py new file mode 100644 index 0000000..72ea174 --- /dev/null +++ b/common/__init__.py @@ -0,0 +1,5 @@ +"""Общий пакет, используемый сервисами bot и admin.""" + +from common.version import __version__ + +__all__ = ["__version__"] diff --git a/common/config.py b/common/config.py new file mode 100644 index 0000000..6f3514b --- /dev/null +++ b/common/config.py @@ -0,0 +1,91 @@ +"""Конфигурация приложения. + +Значения читаются из переменных окружения / файла .env (см. .env.example). +Реальных секретов в коде быть не должно. +""" + +from __future__ import annotations + +from functools import lru_cache +from urllib.parse import quote_plus +from zoneinfo import ZoneInfo + +from pydantic import Field, field_validator +from pydantic_settings import BaseSettings, SettingsConfigDict + + +class Settings(BaseSettings): + """Настройки, общие для бота и админки.""" + + model_config = SettingsConfigDict( + env_file=".env", + env_file_encoding="utf-8", + extra="ignore", + case_sensitive=False, + ) + + app_env: str = "dev" + + bot_token: str = Field(..., description="Токен бота от @BotFather") + + db_host: str = "localhost" + db_port: int = 5432 + db_name: str = "dispel_evil" + db_user: str = "de_admin" + db_password: str = "" + db_pool_min: int = 1 + db_pool_max: int = 10 + db_statement_timeout_ms: int = 15000 + + prod_chat_id: int = 0 + test_chat_id: int = 0 + alert_chat_id: int = 0 + + admin_ids: list[int] = Field(default_factory=list) + + timezone: str = "Europe/Moscow" + + #: Файл-heartbeat для Docker healthcheck (обновляется ботом периодически). + heartbeat_path: str = "/tmp/dispelevilbot.heartbeat" + + @field_validator("admin_ids", mode="before") + @classmethod + def _parse_admin_ids(cls, value: object) -> object: + """Поддержать формат 'ADMIN_IDS=1,2,3' в дополнение к JSON-списку.""" + if value is None or value == "": + return [] + if isinstance(value, str): + cleaned = value.strip().strip("[]") + if not cleaned: + return [] + return [int(item.strip()) for item in cleaned.split(",") if item.strip()] + return value + + @property + def is_prod(self) -> bool: + return self.app_env.strip().lower() in {"prod", "production"} + + @property + def chat_id(self) -> int: + """Основной чат клана для текущего окружения.""" + return self.prod_chat_id if self.is_prod else self.test_chat_id + + @property + def tzinfo(self) -> ZoneInfo: + return ZoneInfo(self.timezone) + + @property + def dsn(self) -> str: + """Строка подключения psycopg для async-пула (креды URL-экранируются).""" + user = quote_plus(self.db_user) + password = quote_plus(self.db_password) + return ( + f"postgresql://{user}:{password}" + f"@{self.db_host}:{self.db_port}/{self.db_name}" + ) + + +@lru_cache +def get_settings() -> Settings: + """Вернуть singleton настроек.""" + return Settings() # type: ignore[call-arg] diff --git a/common/db/__init__.py b/common/db/__init__.py new file mode 100644 index 0000000..4f7653d --- /dev/null +++ b/common/db/__init__.py @@ -0,0 +1 @@ +"""Слой подключения к базе данных.""" diff --git a/common/db/pool.py b/common/db/pool.py new file mode 100644 index 0000000..b015463 --- /dev/null +++ b/common/db/pool.py @@ -0,0 +1,64 @@ +"""Async-пул соединений Postgres (psycopg v3). + +Все репозитории берут соединение отсюда. Соединения возвращаются в пул и +коммитятся при успешном выходе из контекстного менеджера. +""" + +from __future__ import annotations + +import logging + +from psycopg.rows import dict_row +from psycopg_pool import AsyncConnectionPool + +from common.config import get_settings + +logger = logging.getLogger(__name__) + +_pool: AsyncConnectionPool | None = None + + +async def init_pool() -> AsyncConnectionPool: + """Создать и открыть пул. Идемпотентно.""" + global _pool + if _pool is not None: + return _pool + + settings = get_settings() + _pool = AsyncConnectionPool( + conninfo=settings.dsn, + min_size=settings.db_pool_min, + max_size=settings.db_pool_max, + open=False, + kwargs={ + "row_factory": dict_row, + "options": f"-c statement_timeout={settings.db_statement_timeout_ms}", + }, + ) + await _pool.open(wait=True) + logger.info( + "Postgres pool opened: %s@%s:%s/%s (min=%s, max=%s)", + settings.db_user, + settings.db_host, + settings.db_port, + settings.db_name, + settings.db_pool_min, + settings.db_pool_max, + ) + return _pool + + +async def close_pool() -> None: + """Закрыть пул при остановке приложения.""" + global _pool + if _pool is not None: + await _pool.close() + _pool = None + logger.info("Postgres pool closed") + + +def get_pool() -> AsyncConnectionPool: + """Вернуть открытый пул или упасть с понятной ошибкой.""" + if _pool is None: + raise RuntimeError("Postgres pool не инициализирован: вызовите init_pool() при старте") + return _pool diff --git a/common/logging_config.py b/common/logging_config.py new file mode 100644 index 0000000..063b4a5 --- /dev/null +++ b/common/logging_config.py @@ -0,0 +1,22 @@ +"""Единая настройка логирования для сервисов.""" + +from __future__ import annotations + +import logging +import sys + +_LOG_FORMAT = "%(asctime)s | %(levelname)-8s | %(name)s | %(message)s" + + +def setup_logging(level: int = logging.INFO) -> None: + """Настроить корневой логгер на вывод в stdout.""" + handler = logging.StreamHandler(sys.stdout) + handler.setFormatter(logging.Formatter(_LOG_FORMAT)) + + root = logging.getLogger() + root.handlers.clear() + root.addHandler(handler) + root.setLevel(level) + + # aiogram довольно шумный на INFO для сетевых событий + logging.getLogger("aiogram.event").setLevel(logging.WARNING) diff --git a/common/models/__init__.py b/common/models/__init__.py new file mode 100644 index 0000000..ff82e90 --- /dev/null +++ b/common/models/__init__.py @@ -0,0 +1,16 @@ +"""Доменные модели (dataclasses).""" + +from common.models.economy import EggsResult, PurificationResult +from common.models.shop import Donat, Title +from common.models.stats import TopEntry +from common.models.users import NickEntry, UserInfo + +__all__ = [ + "Donat", + "EggsResult", + "NickEntry", + "PurificationResult", + "Title", + "TopEntry", + "UserInfo", +] diff --git a/common/models/economy.py b/common/models/economy.py new file mode 100644 index 0000000..fa5a633 --- /dev/null +++ b/common/models/economy.py @@ -0,0 +1,28 @@ +"""Модели экономики (очищение, яички).""" + +from __future__ import annotations + +from dataclasses import dataclass + + +@dataclass(slots=True) +class PurificationResult: + """Результат ежедневного очищения.""" + + success: bool + exp_add: int = 0 + money_add: int = 0 + hours: int = 0 + minutes: int = 0 + seconds: int = 0 + + +@dataclass(slots=True) +class EggsResult: + """Результат получения яичек.""" + + success: bool + eggs: int = 0 + hours: int = 0 + minutes: int = 0 + seconds: int = 0 diff --git a/common/models/shop.py b/common/models/shop.py new file mode 100644 index 0000000..280dfd3 --- /dev/null +++ b/common/models/shop.py @@ -0,0 +1,23 @@ +"""Модели магазина.""" + +from __future__ import annotations + +from dataclasses import dataclass + + +@dataclass(slots=True) +class Title: + """Покупаемое звание.""" + + id: int + title: str + price: int + + +@dataclass(slots=True) +class Donat: + """Покупаемый донат.""" + + id: int + title: str + price: int diff --git a/common/models/stats.py b/common/models/stats.py new file mode 100644 index 0000000..31e942f --- /dev/null +++ b/common/models/stats.py @@ -0,0 +1,14 @@ +"""Модели статистики.""" + +from __future__ import annotations + +from dataclasses import dataclass + + +@dataclass(slots=True) +class TopEntry: + """Строка рейтинга по количеству сообщений.""" + + username: str | None + nick: str | None + count: int diff --git a/common/models/users.py b/common/models/users.py new file mode 100644 index 0000000..ba2702b --- /dev/null +++ b/common/models/users.py @@ -0,0 +1,41 @@ +"""Модели пользователя.""" + +from __future__ import annotations + +from dataclasses import dataclass + + +@dataclass(slots=True) +class UserInfo: + """Сводная информация о пользователе (для /инфо).""" + + username: str | None + nick: str | None + title: str | None + lvl: int + exp: int + money: int + dt: str + msg_count: int + eggs: int + + @property + def exp_max(self) -> int: + """Порог опыта для текущего уровня.""" + return self.lvl * 10 + + @property + def title_text(self) -> str: + return self.title or "" + + @property + def nick_text(self) -> str: + return self.nick or "" + + +@dataclass(slots=True) +class NickEntry: + """Пара username/nick из списка участников.""" + + username: str | None + nick: str | None diff --git a/common/repositories/__init__.py b/common/repositories/__init__.py new file mode 100644 index 0000000..1c2f072 --- /dev/null +++ b/common/repositories/__init__.py @@ -0,0 +1 @@ +"""Репозитории — доступ к данным. Возвращают сырые dict/скаляры.""" diff --git a/common/repositories/economy_repo.py b/common/repositories/economy_repo.py new file mode 100644 index 0000000..d9a7457 --- /dev/null +++ b/common/repositories/economy_repo.py @@ -0,0 +1,48 @@ +"""Доступ к данным экономики (деньги, опыт, очищение, яички).""" + +from __future__ import annotations + +from typing import Any + +from common.db.pool import get_pool + + +async def money_action(id_user: int, amount: int, id_action: int = 1) -> None: + """Начислить/списать деньги (запись в журнал money).""" + async with get_pool().connection() as conn: + async with conn.cursor() as cur: + await cur.execute("CALL bot.money_action(%s, %s, %s)", (id_user, amount, id_action)) + + +async def get_money(id_user: int) -> int: + """Текущий баланс пользователя (SUM по журналу).""" + async with get_pool().connection() as conn: + async with conn.cursor() as cur: + await cur.execute("SELECT bot.get_money(%s) AS money", (id_user,)) + row = await cur.fetchone() + return int(row["money"] or 0) if row else 0 + + +async def get_eggs(id_user: int) -> int: + """Количество яичек пользователя.""" + async with get_pool().connection() as conn: + async with conn.cursor() as cur: + await cur.execute("SELECT bot.get_eggs(%s) AS eggs", (id_user,)) + row = await cur.fetchone() + return int(row["eggs"] or 0) if row else 0 + + +async def purification(id_user: int) -> dict[str, Any] | None: + """Выполнить ежедневное очищение.""" + async with get_pool().connection() as conn: + async with conn.cursor() as cur: + await cur.execute("SELECT * FROM bot.purification(%s)", (id_user,)) + return await cur.fetchone() + + +async def add_eggs(id_user: int) -> dict[str, Any] | None: + """Получить яички (раз в сутки).""" + async with get_pool().connection() as conn: + async with conn.cursor() as cur: + await cur.execute("SELECT * FROM bot.add_eggs(%s)", (id_user,)) + return await cur.fetchone() diff --git a/common/repositories/shop_repo.py b/common/repositories/shop_repo.py new file mode 100644 index 0000000..7348409 --- /dev/null +++ b/common/repositories/shop_repo.py @@ -0,0 +1,41 @@ +"""Доступ к данным магазина (звания, донаты).""" + +from __future__ import annotations + +from typing import Any + +from common.db.pool import get_pool + + +async def get_titles_list() -> list[dict[str, Any]]: + """Доступные к покупке звания (id_title, title, price).""" + async with get_pool().connection() as conn: + async with conn.cursor() as cur: + await cur.execute("SELECT * FROM bot.get_titles_list()") + return await cur.fetchall() + + +async def get_donats_list() -> list[dict[str, Any]]: + """Доступные к покупке донаты (id_donat, title, price).""" + async with get_pool().connection() as conn: + async with conn.cursor() as cur: + await cur.execute("SELECT * FROM bot.get_donats_list()") + return await cur.fetchall() + + +async def buy_title(id_user: int, id_title: int) -> int: + """Купить звание. Возвращает 1 при успехе, -1 если не хватает денег.""" + async with get_pool().connection() as conn: + async with conn.cursor() as cur: + await cur.execute("SELECT bot.buy_title(%s, %s) AS res", (id_user, id_title)) + row = await cur.fetchone() + return int(row["res"]) if row else -1 + + +async def buy_donat(id_user: int, id_donat: int) -> str: + """Купить донат. Возвращает промокод или '-1' при неуспехе.""" + async with get_pool().connection() as conn: + async with conn.cursor() as cur: + await cur.execute("SELECT bot.buy_donat(%s, %s) AS res", (id_user, id_donat)) + row = await cur.fetchone() + return str(row["res"]) if row else "-1" diff --git a/common/repositories/stats_repo.py b/common/repositories/stats_repo.py new file mode 100644 index 0000000..e736c97 --- /dev/null +++ b/common/repositories/stats_repo.py @@ -0,0 +1,15 @@ +"""Доступ к статистике (рейтинг).""" + +from __future__ import annotations + +from typing import Any + +from common.db.pool import get_pool + + +async def get_top_list() -> list[dict[str, Any]]: + """Топ-10 пользователей по количеству сообщений (username, nick, count).""" + async with get_pool().connection() as conn: + async with conn.cursor() as cur: + await cur.execute("SELECT u AS username, n AS nick, c AS count FROM bot.get_top_list()") + return await cur.fetchall() diff --git a/common/repositories/subscriptions_repo.py b/common/repositories/subscriptions_repo.py new file mode 100644 index 0000000..2ba29b2 --- /dev/null +++ b/common/repositories/subscriptions_repo.py @@ -0,0 +1,19 @@ +"""Доступ к подпискам на рассылки.""" + +from __future__ import annotations + +from common.db.pool import get_pool + + +async def subscribe(id_user: int) -> None: + """Подписать пользователя на рассылки.""" + async with get_pool().connection() as conn: + async with conn.cursor() as cur: + await cur.execute("CALL bot.subscribe(%s)", (id_user,)) + + +async def unsubscribe(id_user: int) -> None: + """Отписать пользователя от рассылок.""" + async with get_pool().connection() as conn: + async with conn.cursor() as cur: + await cur.execute("CALL bot.unsubscribe(%s)", (id_user,)) diff --git a/common/repositories/users_repo.py b/common/repositories/users_repo.py new file mode 100644 index 0000000..e33ec50 --- /dev/null +++ b/common/repositories/users_repo.py @@ -0,0 +1,55 @@ +"""Доступ к данным пользователей.""" + +from __future__ import annotations + +from typing import Any + +from common.db.pool import get_pool + + +async def add_user(id_user: int, username: str, first_name: str, last_name: str) -> None: + """Создать/обновить пользователя и добавить запись о сообщении.""" + async with get_pool().connection() as conn: + async with conn.cursor() as cur: + await cur.execute( + "CALL bot.add_user(%s, %s, %s, %s)", + (id_user, username, first_name, last_name), + ) + + +async def add_nick(id_user: int, nick: str) -> None: + """Установить ник пользователя.""" + async with get_pool().connection() as conn: + async with conn.cursor() as cur: + await cur.execute("CALL bot.add_nick(%s, %s)", (id_user, nick)) + + +async def get_nick_list() -> list[dict[str, Any]]: + """Список всех игроков (username, nick), отсортированный по нику.""" + async with get_pool().connection() as conn: + async with conn.cursor() as cur: + await cur.execute("SELECT username, nick FROM bot.get_nick_list()") + return await cur.fetchall() + + +async def get_nick_list_subscribe() -> list[dict[str, Any]]: + """Список подписанных на рассылки (username, nick).""" + async with get_pool().connection() as conn: + async with conn.cursor() as cur: + await cur.execute("SELECT username, nick FROM bot.get_nick_list_subscribe()") + return await cur.fetchall() + + +async def get_info_by_id(id_user: int) -> dict[str, Any] | None: + """Сводная информация о пользователе.""" + async with get_pool().connection() as conn: + async with conn.cursor() as cur: + await cur.execute("SELECT * FROM bot.get_info_by_id(%s)", (id_user,)) + return await cur.fetchone() + + +async def del_user_by_id(id_user: int) -> None: + """Удалить пользователя (при выходе из чата).""" + async with get_pool().connection() as conn: + async with conn.cursor() as cur: + await cur.execute("CALL bot.del_user_by_id(%s)", (id_user,)) diff --git a/common/texts/__init__.py b/common/texts/__init__.py new file mode 100644 index 0000000..ce05405 --- /dev/null +++ b/common/texts/__init__.py @@ -0,0 +1,62 @@ +"""Тексты сообщений и рендер тегов. + +Тексты сгруппированы по темам. ``TEMPLATES`` — реестр «ключ -> текст по +умолчанию» для засева таблицы ``message_templates`` (см. Блок 4). +""" + +from common.texts import economy, info, notifications, shop, system, welcome +from common.texts.render import ( + MAX_MESSAGE_LENGTH, + RAW_TAGS, + SUPPORTED_TAGS, + TAG_REGISTRY, + TemplateError, + format_tops, + format_user_list, + format_usernames, + render, + validate, +) + +#: Реестр шаблонов по умолчанию. +TEMPLATES: dict[str, str] = { + "welcome.text": welcome.MSG_WELCOME_TEXT, + "welcome.text2": welcome.MSG_WELCOME_TEXT2, + "welcome.text3": welcome.MSG_WELCOME_TEXT3, + "info.profile": info.MSG_INFO, + "info.help": info.MSG_HELP, + "shop.main": shop.MSG_SHOP_MAIN, + "shop.title": shop.MSG_SHOP_TITLE, + "shop.donat": shop.MSG_SHOP_DONAT, + "economy.nick_list": economy.MSG_NICK_LIST, + "economy.top": economy.MSG_TOP, + "economy.purification": economy.MSG_PURIFICATION, + "economy.no_purification": economy.MSG_NO_PURIFICATION, + "economy.eggs": economy.MSG_EGGS, + "economy.no_eggs": economy.MSG_NO_EGGS, + "notify.blago_30": notifications.MSG_BLAGO_30, + "notify.blago_45": notifications.MSG_BLAGO_45, + "notify.blago_55": notifications.MSG_BLAGO_55, + "notify.blago": notifications.MSG_BLAGO, + "notify.vklad": notifications.MSG_VKLAD, +} + +__all__ = [ + "MAX_MESSAGE_LENGTH", + "RAW_TAGS", + "SUPPORTED_TAGS", + "TAG_REGISTRY", + "TEMPLATES", + "TemplateError", + "economy", + "format_tops", + "format_user_list", + "format_usernames", + "info", + "notifications", + "render", + "shop", + "system", + "validate", + "welcome", +] diff --git a/common/texts/economy.py b/common/texts/economy.py new file mode 100644 index 0000000..60559c3 --- /dev/null +++ b/common/texts/economy.py @@ -0,0 +1,20 @@ +"""Тексты экономики: списки, рейтинг, очищение, яички.""" + +MSG_NICK_LIST = """📑 Список игроков[{users_list_count}] 📑 + +{users_list}""" + +MSG_TOP = """⭐️ТОП10 общительных участников⭐️: +{tops}""" + +MSG_PURIFICATION = """💠Успешное очищение!💠 +Получено: 💰{money_add} DE и 🥪{exp_add} exp!""" + +MSG_NO_PURIFICATION = """Очищение возможно не чаще раза в сутки! +Возвращайся через {h}ч {m}м {s}с""" + +MSG_EGGS = """💠Держи свои яички!💠 +Получено {eggs}🥚!""" + +MSG_NO_EGGS = """Получать яички возможно не чаще раза в сутки! +Возвращайся через {h}ч {m}м {s}с""" diff --git a/common/texts/info.py b/common/texts/info.py new file mode 100644 index 0000000..7c82653 --- /dev/null +++ b/common/texts/info.py @@ -0,0 +1,26 @@ +"""Информационные тексты (профиль, помощь).""" + +MSG_INFO = """👤Информация о пользователе {username} + +✅ Ник в игре: {nick} +🏆 Звание: {title} +🧩 Уровень: {lvl} +🥪 Опыт: {exp}/{exp_max} +💰 Деньги: {money} +📈 Начало активности в боте: {dt} +📊 Количество сообщений в чате: {msg_count} +🥚 Количество яичек: {eggs} +""" + +MSG_HELP = """Список команд бота + +/ник НИК - указать свой ник в игре [чат, бот] +/список - вывести список ников [бот] +/кто - вывод ника человека в ответ на сообщение [чат] +/инфо - вывод информации о себе [чат, бот] +/очищение - получение бонусов раз в сутки [чат, бот] +/магазин - магазин бота [бот] +/рейтинг - топ-10 игроков по сообщениям [чат, бот] +/отписка - отписаться от рассылок [чат, бот] +/подписка - подписаться на рассылки [чат, бот] +""" diff --git a/common/texts/notifications.py b/common/texts/notifications.py new file mode 100644 index 0000000..788e84b --- /dev/null +++ b/common/texts/notifications.py @@ -0,0 +1,16 @@ +"""Тексты рассылок (благо, вклад).""" + +MSG_BLAGO_30 = """ ⏰ Просыпаемся, 30 минут до блага! ⏰ +{usernames}""" + +MSG_BLAGO_45 = """ 🔔 15 минут до блага, ждём всех на базе! 🔔 +{usernames}""" + +MSG_BLAGO_55 = """ ☀️ 5 МИНУТ ДО БЛАГА! НАРЯЖАЕМ ПОПКИ! ☀️ +{usernames}""" + +MSG_BLAGO = """💃 АКТИВНО ТРЯСЁМ ПОПКАМИ НА БАЗЕ!🕺 +{usernames}""" + +MSG_VKLAD = """💰 НЕ ЗАБЫВАЕМ ПРОВЕРИТЬ ВКЛАД 💰 +{usernames}""" diff --git a/common/texts/render.py b/common/texts/render.py new file mode 100644 index 0000000..f580473 --- /dev/null +++ b/common/texts/render.py @@ -0,0 +1,123 @@ +"""Рендер шаблонов сообщений по тегам вида ``{tag}``. + +Единый источник правды для бота и админки. Не используется ``str.format``: +любая посторонняя фигурная скобка в тексте сломала бы его. Подстановка идёт +только по известным тегам из реестра, неизвестный тег — ошибка валидации. + +Пользовательские значения экранируются под Telegram HTML (ParseMode.HTML), +кроме тегов, помеченных как RAW (списки, которые формируются уже безопасно). +""" + +from __future__ import annotations + +import html +import re +from collections.abc import Iterable, Mapping +from typing import Any + +_TAG_RE = re.compile(r"\{([a-z_][a-z0-9_]*)\}") + +#: Теги, чьи значения подставляются «как есть» (формируются helpers-функциями ниже). +RAW_TAGS: frozenset[str] = frozenset( + {"usernames", "users_list", "users_list_count", "tops"} +) + +#: Полный реестр поддерживаемых тегов: имя -> короткое описание. +TAG_REGISTRY: dict[str, str] = { + "username": "Имя пользователя (@username или имя)", + "nick": "Игровой ник", + "title": "Звание", + "lvl": "Уровень", + "exp": "Текущий опыт", + "exp_max": "Опыт до следующего уровня", + "money": "Баланс DE", + "dt": "Дата начала активности", + "msg_count": "Количество сообщений", + "eggs": "Количество яичек", + "h": "Часы до следующего действия", + "m": "Минуты до следующего действия", + "s": "Секунды до следующего действия", + "exp_add": "Начислено опыта", + "money_add": "Начислено DE", + "usernames": "Список @упоминаний для рассылки", + "users_list": "Нумерованный список игроков", + "users_list_count": "Количество игроков в списке", + "tops": "Топ игроков по сообщениям", + "promo": "Промокод доната", +} + +SUPPORTED_TAGS: frozenset[str] = frozenset(TAG_REGISTRY) + +#: Лимит длины сообщения Telegram. +MAX_MESSAGE_LENGTH = 4096 + + +class TemplateError(ValueError): + """Ошибка в шаблоне: неизвестный тег или превышена длина.""" + + +def escape(value: Any) -> str: + """Экранировать значение под HTML-разметку Telegram.""" + return html.escape(str(value), quote=False) + + +def render(template: str, context: Mapping[str, Any] | None = None) -> str: + """Подставить теги в шаблон. + + :raises TemplateError: если в шаблоне есть неизвестный тег. + """ + context = context or {} + + def _replace(match: re.Match[str]) -> str: + name = match.group(1) + if name not in SUPPORTED_TAGS: + raise TemplateError(f"Неизвестный тег {{{name}}}") + value = context.get(name) + if value is None: + return "" + if name in RAW_TAGS: + return str(value) + return escape(value) + + return _TAG_RE.sub(_replace, template) + + +def validate(template: str) -> list[str]: + """Вернуть список неизвестных тегов в шаблоне (для валидации в админке).""" + unknown = {m.group(1) for m in _TAG_RE.finditer(template)} + return sorted(tag for tag in unknown if tag not in SUPPORTED_TAGS) + + +# --- Хелперы формирования RAW-значений ------------------------------------- + + +def format_usernames(rows: Iterable[Mapping[str, Any]]) -> str: + """Строка вида ``@user1 @user2`` для рассылок.""" + parts = [] + for row in rows: + username = row.get("username") + if username: + parts.append("@" + escape(username)) + return " ".join(parts) + + +def format_user_list(rows: Iterable[Mapping[str, Any]]) -> str: + """Нумерованный список игроков: ``1: @user - nick``.""" + lines = [] + for index, row in enumerate(rows, start=1): + username = row.get("username") + nick = row.get("nick") + user_text = "@" + escape(username) if username else "—" + nick_text = escape(nick) if nick else "" + lines.append(f"{index}: {user_text} - {nick_text}") + return "\n".join(lines) + + +def format_tops(rows: Iterable[Mapping[str, Any]]) -> str: + """Список рейтинга: ``1) nick - N``.""" + lines = [] + for index, row in enumerate(rows, start=1): + nick = row.get("nick") or "—" + count = row.get("count", 0) + lines.append(f"{index}) {escape(nick)} - {count}") + return "\n".join(lines) diff --git a/common/texts/shop.py b/common/texts/shop.py new file mode 100644 index 0000000..0328881 --- /dev/null +++ b/common/texts/shop.py @@ -0,0 +1,7 @@ +"""Тексты магазина.""" + +MSG_SHOP_MAIN = "Разделы магазина" + +MSG_SHOP_TITLE = "Доступные звания для покупки" + +MSG_SHOP_DONAT = "Доступные донаты для покупки" diff --git a/common/texts/system.py b/common/texts/system.py new file mode 100644 index 0000000..35c5633 --- /dev/null +++ b/common/texts/system.py @@ -0,0 +1,31 @@ +"""Служебные тексты и ответы бота.""" + +MSG_COIN = "Держи монетку! 🪙" + +MSG_NICK_SET = "У @{username} теперь ник {nick}" + +MSG_NICK_ERROR = "Что-то пошло не так..." + +MSG_LIST_PRIVATE_ONLY = "Команда доступна в личных сообщениях бота." + +MSG_SHOP_PRIVATE_ONLY = "Команда доступна в личных сообщениях бота" + +MSG_REPLY_REQUIRED = "Нужно ответить на сообщение" + +MSG_NICK_EMPTY = "Ник не указан :с" + +MSG_SUBSCRIBED = "Подписал тебя на рассылки ❤️" + +MSG_UNSUBSCRIBED = "Отписал тебя от рассылок 💔" + +MSG_PURCHASE_OK = "Успешная покупка!" + +MSG_PURCHASE_FAIL = "Не получилось купить :с" + +MSG_DONAT_PROMO = "Назови этот код админам!\n`{promo}`" + +MSG_EGGS_TOO_EARLY = "Слишком рано..." + +MSG_BOT_ADDED = "Я пришёл! Требую админские права!" + +MSG_BOT_FOREIGN_CHAT = "Создатель запретил ходить в другие чатики :с" diff --git a/common/texts/welcome.py b/common/texts/welcome.py new file mode 100644 index 0000000..eb4ef1e --- /dev/null +++ b/common/texts/welcome.py @@ -0,0 +1,38 @@ +"""Тексты приветствия.""" + +MSG_WELCOME_TEXT = """💠{username}, добро пожаловать в Dispel Evil! +❗️Правила клана + +Незнание не освобождает от ответственности. + +1. Конфликты/разборки: сами решаете между собой в лс. Админ имеет право дать мут участникам конфликта до его решения, потом пишите в лс, что решили вопрос и мут снимут. Если замечены одни и те же люди в конфликте три раза - вас исключат из клана. + +2. Слушать администрацию: если кто-то из админов просит закрыть тему - вы её закрываете, если вам делают замечание - не агрессировать и отвечать спокойно. Со стороны админов не будет претензий на пустом месте. + +3. Маты в меру. Если используйте маты в игре - на вашей совести, по правилам игры они запрещены, за последствия отвечать будете сами. """ + +MSG_WELCOME_TEXT2 = """4. Сомнительные темы: не рекомендуем заводить разговоры про политику/национальность/религию и другие спорные темы создающие конфликты. В противном случае вам могут выдать мут. + +5. Места на благо - становитесь на любое свободное место, не выделяйте «своё личное место». В съёмочный день оставьте 3е место для админа. + +Уважительная просьба: если вам не приятен человек, решайте вопросы в лс. Пожалуйста, не выливайте это в общие чаты, чтобы сохранить приятную атмосферу для остальных. + +💠Ниже кнопка на наш основной канал со всеми новостями, конкурсами и темы для блага.""" + +MSG_WELCOME_TEXT3 = """❗️По игре: + +💠Очки командного боя 20000+; +💠Вклад 1000+; +💠АФК 3 дня без предупреждения = Кик; +💠Чистка от бездельников по воскресеньям; + +🕹Если появляются вопросы, Вы всегда можете написать админам: @Sad_Ju, @yaki_ra, @irinka87364 + +💡Также мы всегда ждём людей с новыми идеями и предложениями по развитию клана! + +💠https://t.me/c/1800439573/397 +В комментариях под постом, мы ждём твоего сообщения! Там же ты можешь посмотреть анкеты других участников и найти новых друзей!""" + +MSG_WELCOME_BUTTON_CAPTION = "Канал" + +MSG_WELCOME_BUTTON_URL = "https://t.me/+DQk8MyN2y6QzNTM6" diff --git a/common/version.py b/common/version.py new file mode 100644 index 0000000..ef2b931 --- /dev/null +++ b/common/version.py @@ -0,0 +1,10 @@ +"""Версия проекта. + +Единый источник правды. Git-тег совпадает с версией с префиксом ``v`` +(например, версия ``0.1`` -> тег ``v0.1``). Docker-образы в Блоке 2 будут +тегироваться этой версией, а события в ClickHouse получат поле ``bot_version``. +""" + +from __future__ import annotations + +__version__ = "0.1" diff --git a/deploy/Caddyfile b/deploy/Caddyfile new file mode 100644 index 0000000..cc0b666 --- /dev/null +++ b/deploy/Caddyfile @@ -0,0 +1,13 @@ +# Пример Caddyfile для reverse proxy + автоматического TLS. +# Нужен, когда появится админка/Mini App (Блоки 4–5). +# Caddy сам получит сертификаты Let's Encrypt (нужны открытые 80/443 и DNS на этот сервер). + +# Админка +admin.git.mpakosrv.ru { + reverse_proxy admin:8000 +} + +# Telegram Mini App +app.git.mpakosrv.ru { + reverse_proxy admin:8000 +} diff --git a/deploy/README.md b/deploy/README.md new file mode 100644 index 0000000..60b2c82 --- /dev/null +++ b/deploy/README.md @@ -0,0 +1,87 @@ +# Деплой (Блок 2) + +## Образы и registry + +Целевой registry — **Gitea/Forgejo Container Registry** (домашний сервер). Имя образа: + +``` +/mpakobecx/dispelevilbot-bot: +``` + +Сборка и публикация вручную: + +```bash +docker login git.mpakosrv.ru -u mpakobecx # пароль — access token +docker build -t git.mpakosrv.ru/mpakobecx/dispelevilbot-bot:0.1 . +docker push git.mpakosrv.ru/mpakobecx/dispelevilbot-bot:0.1 +``` + +В CI (`.gitea/workflows/ci.yml`) это делается автоматически по пушу в `master` +(и по тегам `v*`). Нужно завести секреты репозитория `REGISTRY_USER`, `REGISTRY_TOKEN`. + +> При доступе из локальной сети registry может быть на `192.168.31.158:3000` +> (тогда добавьте его в `insecure-registries` Docker-демона либо поставьте TLS-proxy). +> С сервера, где крутится runner, удобнее доменное имя. + +## Контуры test и prod + +Один compose-файл, разные проекты и env-файлы (файл задаётся и для интерполяции, +и как `env_file` сервисов): + +```bash +# прод +REGISTRY=git.mpakosrv.ru IMAGE_TAG=0.1 \ + docker compose -p prod --env-file env/prod.env -f docker-compose.prod.yml up -d + +# тест +REGISTRY=git.mpakosrv.ru IMAGE_TAG=0.1 \ + docker compose -p test --env-file env/test.env -f docker-compose.prod.yml up -d +``` + +Имя проекта (`-p`) даёт отдельные volume'ы (свои БД у `prod` и `test`). +Перед первым запуском: `cp env/prod.env.example env/prod.env` и заполнить. + +Порядок выкатки: сначала `-p test`, проверить, затем `-p prod`. + +Откат на предыдущую версию: поднять предыдущий `IMAGE_TAG` (например, commit-sha). + +## Миграции БД + +Накатываются сервисом `migrate` (Flyway) перед ботом, автоматически. + +- Чистая БД — применяются все `V__*`/`R__*`. +- **Существующая** (непустая) БД — включён `FLYWAY_BASELINE_ON_MIGRATE=true`, Flyway + сделает baseline и применит только новые миграции. Проверьте версию baseline. + +## Перенос данных со старого Postgres (короткое окно простоя) + +1. Остановить старого бота. +2. `pg_dump -Fc -f dump.pgc old_db` +3. Развернуть новый контур, применить миграции (получится чистая целевая схема). +4. Загрузить данные: + - либо `pg_restore --data-only --disable-triggers -d new_db dump.pgc`; + - либо `pg_dump --data-only` и загрузка по таблицам. +5. Если в исходных данных есть дубли (`tg_users`/`de_users`/`unsubscribe`) — V12 убирает их + перед созданием PK; при загрузке **после** миграций дедуп нужно сделать вручную до вставки. +6. Сверить: число пользователей, `SUM(money.amount)`, число сообщений. +7. Переключить бота на новый Postgres, проверить команды, удалить старый контур. + +Бэкап старой БД — обязательно. Проверить восстановление (dry-run) до окна. + +Автобэкапы нового Postgres: `pg_dump` по cron + ротация, с выгрузкой на домашний сервер/в облако. + +## Reverse proxy и TLS (Блок 2.4) + +Пока нечего проксировать (админка/Mini App — Блоки 4–5). Когда появятся: + +- положить `deploy/Caddyfile` и раскомментировать сервис `caddy` в `docker-compose.prod.yml`; +- направить DNS `admin.*`/`app.*` на сервер, открыть 80/443; +- Caddy сам выпустит сертификаты. + +Порт, не забыть закрыть наружу всё, кроме 80/443 (Postgres и ClickHouse — только внутри). + +## Firewall (заметка по SSH-доступу) + +- SSH git у Forgejo — контейнерный порт 22 → на хосте **2222**. +- Из локальной сети: `ssh://git@192.168.31.158:2222/...`. +- Снаружи нужен проброс/открытие 2222 (и в Forgejo `[server] SSH_DOMAIN/SSH_PORT`). diff --git a/deploy/runner/.env.example b/deploy/runner/.env.example new file mode 100644 index 0000000..80e06de --- /dev/null +++ b/deploy/runner/.env.example @@ -0,0 +1,4 @@ +# Скопируйте в deploy/runner/.env и заполните. +FORGEJO_URL=https://git.mpakosrv.ru +RUNNER_TOKEN= +RUNNER_NAME=home-runner diff --git a/deploy/runner/docker-compose.yml b/deploy/runner/docker-compose.yml new file mode 100644 index 0000000..5642c62 --- /dev/null +++ b/deploy/runner/docker-compose.yml @@ -0,0 +1,35 @@ +# Act runner для Forgejo Actions. +# Запускать на том же хосте, где Docker с Forgejo (нужен доступ к docker.sock). +# +# 1) Получить регистрационный токен: +# Forgejo -> Site Administration -> Actions -> Runners -> Create new Runner +# (или Repo -> Settings -> Actions -> Runners, если раннер только для репозитория). +# 2) Заполнить .env рядом (FORGEJO_URL, RUNNER_TOKEN) и запустить: +# docker compose up -d +# +# Метка ubuntu-latest указывает на образ job-контейнера с docker CLI и утилитами, +# иначе `docker build` внутри джобы не сработает. +services: + runner: + image: codeberg.org/forgejo/runner:6 + # Если версия не подходит к Forgejo 1.21 — возьмите совместимый тег из релизов раннера. + restart: unless-stopped + environment: + # Публичный адрес Forgejo. Если раннер в одной docker-сети с Forgejo, + # можно указать http://forgejo:3000 и подключить ту сеть ниже. + GITEA_INSTANCE_URL: ${FORGEJO_URL:-https://git.mpakosrv.ru} + GITEA_RUNNER_REGISTRATION_TOKEN: ${RUNNER_TOKEN:?задайте RUNNER_TOKEN} + GITEA_RUNNER_NAME: ${RUNNER_NAME:-home-runner} + GITEA_RUNNER_LABELS: ubuntu-latest:docker://catthehacker/ubuntu:act-latest + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - runner_data:/data + # networks: + # - forgejo_default # если используете внутреннее имя сервиса Forgejo + +volumes: + runner_data: + +# networks: +# forgejo_default: +# external: true diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml new file mode 100644 index 0000000..b005880 --- /dev/null +++ b/docker-compose.prod.yml @@ -0,0 +1,78 @@ +# Прод/test-контур: образы тянутся из Gitea Registry. +# +# Контуры разделяются именем compose-проекта (-p) и файлом окружения (ENV_FILE): +# ENV_FILE=env/prod.env docker compose -p prod -f docker-compose.prod.yml up -d +# ENV_FILE=env/test.env docker compose -p test -f docker-compose.prod.yml up -d +# +# Имя проекта задаёт отдельные volume'ы (pgdata) — у prod и test свои БД. +services: + postgres: + image: postgres:16-alpine + restart: unless-stopped + environment: + POSTGRES_DB: ${DB_NAME:-dispel_evil} + POSTGRES_USER: ${DB_USER:-de_admin} + POSTGRES_PASSWORD: ${DB_PASSWORD:?задайте DB_PASSWORD} + volumes: + - pgdata:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U ${DB_USER:-de_admin} -d ${DB_NAME:-dispel_evil}"] + interval: 10s + timeout: 5s + retries: 10 + + migrate: + image: flyway/flyway:10 + command: ["migrate"] + environment: + FLYWAY_URL: jdbc:postgresql://postgres:5432/${DB_NAME:-dispel_evil} + FLYWAY_USER: ${DB_USER:-de_admin} + FLYWAY_PASSWORD: ${DB_PASSWORD:?задайте DB_PASSWORD} + FLYWAY_LOCATIONS: filesystem:/flyway/sql + FLYWAY_BASELINE_ON_MIGRATE: "true" + FLYWAY_CONNECT_RETRIES: "10" + volumes: + - ./sql:/flyway/sql:ro + depends_on: + postgres: + condition: service_healthy + restart: "no" + + bot: + image: ${REGISTRY:-git.mpakosrv.ru}/mpakobecx/dispelevilbot-bot:${IMAGE_TAG:-latest} + restart: unless-stopped + env_file: + - ${ENV_FILE:-env/prod.env} + environment: + DB_HOST: postgres + DB_PORT: "5432" + depends_on: + postgres: + condition: service_healthy + migrate: + condition: service_completed_successfully + logging: + driver: json-file + options: + max-size: "10m" + max-file: "3" + + # --- Reverse proxy и TLS (Блок 2.4) --- + # Включается, когда появится админка/Mini App (Блоки 4–5). + # Раскомментировать и положить deploy/Caddyfile: + # + # caddy: + # image: caddy:2 + # restart: unless-stopped + # ports: + # - "80:80" + # - "443:443" + # volumes: + # - ./deploy/Caddyfile:/etc/caddy/Caddyfile:ro + # - caddy_data:/data + # - caddy_config:/config + +volumes: + pgdata: + # caddy_data: + # caddy_config: diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..ece4353 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,66 @@ +# Базовый compose для локального запуска и разработки. +# Секреты берутся из .env (см. .env.example). +# +# docker compose up --build +# +name: dispelevilbot + +services: + postgres: + image: postgres:16-alpine + restart: unless-stopped + environment: + POSTGRES_DB: ${DB_NAME:-dispel_evil} + POSTGRES_USER: ${DB_USER:-de_admin} + POSTGRES_PASSWORD: ${DB_PASSWORD:?задайте DB_PASSWORD в .env} + volumes: + - pgdata:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U ${DB_USER:-de_admin} -d ${DB_NAME:-dispel_evil}"] + interval: 10s + timeout: 5s + retries: 10 + # ports: + # - "5432:5432" # раскомментировать для доступа к БД с хоста + + # Накат миграций Flyway перед стартом бота (идемпотентно). + migrate: + image: flyway/flyway:10 + command: ["migrate"] + environment: + FLYWAY_URL: jdbc:postgresql://postgres:5432/${DB_NAME:-dispel_evil} + FLYWAY_USER: ${DB_USER:-de_admin} + FLYWAY_PASSWORD: ${DB_PASSWORD:?задайте DB_PASSWORD в .env} + FLYWAY_LOCATIONS: filesystem:/flyway/sql + FLYWAY_BASELINE_ON_MIGRATE: "true" + FLYWAY_CONNECT_RETRIES: "10" + volumes: + - ./sql:/flyway/sql:ro + depends_on: + postgres: + condition: service_healthy + restart: "no" + + bot: + build: . + image: dispelevilbot-bot:local + restart: unless-stopped + env_file: + - .env + environment: + # Внутри сети compose БД доступна по имени сервиса. + DB_HOST: postgres + DB_PORT: "5432" + depends_on: + postgres: + condition: service_healthy + migrate: + condition: service_completed_successfully + logging: + driver: json-file + options: + max-size: "10m" + max-file: "3" + +volumes: + pgdata: diff --git a/env/prod.env.example b/env/prod.env.example new file mode 100644 index 0000000..251aed1 --- /dev/null +++ b/env/prod.env.example @@ -0,0 +1,26 @@ +# Прод-контур. Скопируйте в env/prod.env и заполните реальными значениями. +# env/*.env в git не попадают. +# +# Используется и для интерполяции, и как env_file сервиса: +# docker compose -p prod --env-file env/prod.env -f docker-compose.prod.yml up -d +ENV_FILE=env/prod.env + +APP_ENV=prod + +BOT_TOKEN= + +# Postgres (для контейнера бота host = имя сервиса compose) +DB_HOST=postgres +DB_PORT=5432 +DB_NAME=dispel_evil +DB_USER=de_admin +DB_PASSWORD= +DB_POOL_MIN=1 +DB_POOL_MAX=10 +DB_STATEMENT_TIMEOUT_MS=15000 + +PROD_CHAT_ID= +TEST_CHAT_ID= +ALERT_CHAT_ID= +ADMIN_IDS= +TIMEZONE=Europe/Moscow diff --git a/env/test.env.example b/env/test.env.example new file mode 100644 index 0000000..9866008 --- /dev/null +++ b/env/test.env.example @@ -0,0 +1,24 @@ +# Тестовый контур. Скопируйте в env/test.env и заполните. +# Отдельные токен бота, чаты и БД от прода. +# +# docker compose -p test --env-file env/test.env -f docker-compose.prod.yml up -d +ENV_FILE=env/test.env + +APP_ENV=dev + +BOT_TOKEN= + +DB_HOST=postgres +DB_PORT=5432 +DB_NAME=dispel_evil_test +DB_USER=de_admin +DB_PASSWORD= +DB_POOL_MIN=1 +DB_POOL_MAX=10 +DB_STATEMENT_TIMEOUT_MS=15000 + +PROD_CHAT_ID= +TEST_CHAT_ID= +ALERT_CHAT_ID= +ADMIN_IDS= +TIMEZONE=Europe/Moscow diff --git a/images/welcome_image.jpg b/images/welcome_image.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f005479ddba0056d6327c0ae25205f2f88d94888 GIT binary patch literal 405726 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�j)9S``F=Z;Q9A~F@mOkhVPHjM)xGNsE7 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�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

fATMO*e7#QI|ff*ur6F-0wNrePnpOf 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 literal 0 HcmV?d00001 diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..7d8d683 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,15 @@ +[tool.ruff] +line-length = 120 +target-version = "py312" + +[tool.ruff.lint] +select = ["E", "F", "I", "UP", "B", "W"] +ignore = ["E501"] + +[tool.black] +line-length = 120 +target-version = ["py312"] + +[tool.pytest.ini_options] +asyncio_mode = "auto" +testpaths = ["tests"] diff --git a/requirements-dev.txt b/requirements-dev.txt new file mode 100644 index 0000000..90cb7fa --- /dev/null +++ b/requirements-dev.txt @@ -0,0 +1,7 @@ +-r requirements.txt + +ruff>=0.6,<1.0 +black>=24.4,<25.0 +pytest>=8.2,<9.0 +pytest-asyncio>=0.23,<1.0 +pytest-cov>=5.0,<6.0 diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..8948810 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,13 @@ +# Runtime dependencies (source of truth: этот файл). +# Python 3.12 + +aiogram>=3.7,<4.0 +pydantic>=2.7,<3.0 +pydantic-settings>=2.3,<3.0 +python-dotenv>=1.0,<2.0 +psycopg[binary,pool]>=3.2,<4.0 + +# Блок 3 (ClickHouse) — подключим позже: +# clickhouse-connect>=0.7,<1.0 +# Блок 4 (расписания из БД) — при необходимости: +# APScheduler>=3.10,<4.0 diff --git a/sql/R__functions_economy.sql b/sql/R__functions_economy.sql new file mode 100644 index 0000000..df4cc1b --- /dev/null +++ b/sql/R__functions_economy.sql @@ -0,0 +1,168 @@ +-- Экономика: баланс, опыт, очищение, яички. +-- Repeatable-миграция: перезапускается при изменении (CREATE OR REPLACE). + +CREATE OR REPLACE FUNCTION bot.get_money(p_id_user bigint) RETURNS bigint + LANGUAGE plpgsql +AS $$ +DECLARE + v_money bigint; +BEGIN + SELECT sum(amount) INTO v_money FROM bot.money WHERE id_user = p_id_user; + RETURN v_money; +END; +$$; + +CREATE OR REPLACE FUNCTION bot.get_eggs(p_id_user bigint) RETURNS bigint + LANGUAGE plpgsql +AS $$ +DECLARE + v_result bigint; +BEGIN + SELECT sum(amount) INTO v_result FROM bot.eggs WHERE id_user = p_id_user; + RETURN v_result; +END; +$$; + +CREATE OR REPLACE PROCEDURE bot.money_action( + IN p_id_user bigint, + IN p_money bigint, + IN p_id_action bigint DEFAULT 1 +) LANGUAGE plpgsql +AS $$ +BEGIN + INSERT INTO bot.money (id_user, amount, id_action) + VALUES (p_id_user, p_money, p_id_action); +END; +$$; + +CREATE OR REPLACE FUNCTION bot.purification(p_id_user bigint) + RETURNS TABLE(res integer, expr_add bigint, mny_add bigint, h integer, m integer, s integer) + LANGUAGE plpgsql +AS $$ +DECLARE + v_lvl bigint; + v_expr bigint; + v_expr_add bigint; + v_streak bigint; + v_mny_add bigint; + v_dt_pur timestamp; + v_days bigint; + v_result integer; + v_h integer; + v_m integer; + v_s integer; +BEGIN + SELECT lvl, expr, expr_streak + INTO v_lvl, v_expr, v_streak + FROM bot.de_users + WHERE id_user = p_id_user; + + BEGIN + SELECT dt INTO v_dt_pur + FROM ( + SELECT dt, row_number() OVER (ORDER BY dt DESC) rn + FROM bot.purifications + WHERE id_user = p_id_user + ) t + WHERE rn = 1; + EXCEPTION + WHEN others THEN + v_dt_pur := null; + END; + + IF v_dt_pur IS NULL THEN + v_days := -1; + ELSE + v_days = extract(day FROM now() - v_dt_pur); + END IF; + + IF v_days = 0 THEN + v_result := 0; + v_h := 23 - extract(hour FROM now() - v_dt_pur); + v_m := 59 - extract(minute FROM now() - v_dt_pur); + v_s := 59 - extract(sec FROM now() - v_dt_pur); + ELSE + v_mny_add := floor(random() * 21) + 30; + v_expr_add := 1; + + IF v_days = 1 THEN + IF v_streak < 30 THEN + v_streak := v_streak + 1; + END IF; + v_expr_add := v_expr_add + v_streak; + ELSE + v_streak := 0; + END IF; + + v_expr := v_expr + v_expr_add; + + WHILE v_expr >= v_lvl * 10 LOOP + v_expr := v_expr - v_lvl * 10; + v_lvl := v_lvl + 1; + END LOOP; + + UPDATE bot.de_users + SET lvl = v_lvl, expr = v_expr, expr_streak = v_streak + WHERE id_user = p_id_user; + + INSERT INTO bot.money (id_user, amount, id_action) + VALUES (p_id_user, v_mny_add, 4); + + INSERT INTO bot.purifications (id_user) VALUES (p_id_user); + + v_result := 1; + END IF; + + RETURN QUERY SELECT v_result, v_expr_add, v_mny_add, v_h, v_m, v_s; +END; +$$; + +CREATE OR REPLACE FUNCTION bot.add_eggs(p_id_user bigint) + RETURNS TABLE(res integer, eggs_add bigint, h integer, m integer, s integer) + LANGUAGE plpgsql +AS $$ +DECLARE + v_dt timestamp; + v_egg_add bigint; + v_days bigint; + v_h integer; + v_m integer; + v_s integer; + v_result integer; +BEGIN + BEGIN + SELECT dt_action INTO v_dt + FROM ( + SELECT dt_action, row_number() OVER (ORDER BY dt_action DESC) rn + FROM bot.eggs + WHERE id_user = p_id_user AND id_action = 1 + ) t + WHERE rn = 1; + EXCEPTION + WHEN others THEN + v_dt := null; + END; + + IF v_dt IS NULL THEN + v_days := -1; + ELSE + v_days = extract(day FROM now() - v_dt); + END IF; + + IF v_days = 0 THEN + v_result := 0; + v_h := 23 - extract(hour FROM now() - v_dt); + v_m := 59 - extract(minute FROM now() - v_dt); + v_s := 59 - extract(sec FROM now() - v_dt); + ELSE + v_egg_add := floor(random() * 31) + 10; + + INSERT INTO bot.eggs (id_user, id_action, amount) + VALUES (p_id_user, 1, v_egg_add); + + v_result := 1; + END IF; + + RETURN QUERY SELECT v_result, v_egg_add, v_h, v_m, v_s; +END; +$$; diff --git a/sql/R__functions_shop.sql b/sql/R__functions_shop.sql new file mode 100644 index 0000000..bc2d6e1 --- /dev/null +++ b/sql/R__functions_shop.sql @@ -0,0 +1,74 @@ +-- Магазин: списки и покупки. + +CREATE OR REPLACE FUNCTION bot.get_titles_list() + RETURNS TABLE(i integer, n character varying, p bigint) + LANGUAGE plpgsql +AS $$ +BEGIN + RETURN QUERY + SELECT id_title, title, price + FROM bot.titles + WHERE visible = true + ORDER BY price DESC; +END; +$$; + +CREATE OR REPLACE FUNCTION bot.get_donats_list() + RETURNS TABLE(i integer, n character varying, p bigint) + LANGUAGE plpgsql +AS $$ +BEGIN + RETURN QUERY + SELECT id_donat, title, price + FROM bot.donats + WHERE visible = true + ORDER BY price DESC; +END; +$$; + +CREATE OR REPLACE FUNCTION bot.buy_title(p_id_user bigint, p_id_title integer) + RETURNS integer + LANGUAGE plpgsql +AS $$ +DECLARE + v_money bigint; + v_price bigint; +BEGIN + SELECT sum(amount) INTO v_money FROM bot.money WHERE id_user = p_id_user; + SELECT price INTO v_price FROM bot.titles WHERE id_title = p_id_title; + + IF v_money IS NULL OR v_money < v_price THEN + RETURN -1; + END IF; + + CALL bot.money_action(p_id_user, -1 * v_price, 2); + UPDATE bot.de_users SET id_title = p_id_title WHERE id_user = p_id_user; + RETURN 1; +END; +$$; + +CREATE OR REPLACE FUNCTION bot.buy_donat(p_id_user bigint, p_id_donat integer) + RETURNS character varying + LANGUAGE plpgsql +AS $$ +DECLARE + v_money bigint; + v_price bigint; + v_promo varchar; +BEGIN + SELECT sum(amount) INTO v_money FROM bot.money WHERE id_user = p_id_user; + SELECT price INTO v_price FROM bot.donats WHERE id_donat = p_id_donat; + + IF v_money IS NULL OR v_money < v_price THEN + RETURN '-1'; + END IF; + + CALL bot.money_action(p_id_user, -1 * v_price, 2); + v_promo := md5(random()::text); + + INSERT INTO bot.user_donats (id_user, id_donat, promo, stat) + VALUES (p_id_user, p_id_donat, v_promo, false); + + RETURN v_promo; +END; +$$; diff --git a/sql/R__functions_stats.sql b/sql/R__functions_stats.sql new file mode 100644 index 0000000..7246c5f --- /dev/null +++ b/sql/R__functions_stats.sql @@ -0,0 +1,17 @@ +-- Статистика: топ по количеству сообщений. + +CREATE OR REPLACE FUNCTION bot.get_top_list() + RETURNS TABLE(u character varying, n character varying, c bigint) + LANGUAGE plpgsql +AS $$ +BEGIN + RETURN QUERY + SELECT tu.username, du.nick, count(*) AS cnt + FROM bot.messages m + INNER JOIN bot.tg_users tu ON m.id_user = tu.id_user + INNER JOIN bot.de_users du ON m.id_user = du.id_user + GROUP BY tu.username, du.nick + ORDER BY 3 DESC + LIMIT 10; +END; +$$; diff --git a/sql/R__functions_subscriptions.sql b/sql/R__functions_subscriptions.sql new file mode 100644 index 0000000..b3af747 --- /dev/null +++ b/sql/R__functions_subscriptions.sql @@ -0,0 +1,21 @@ +-- Подписки на рассылки. + +-- Подписать: убрать из списка отписавшихся. +CREATE OR REPLACE PROCEDURE bot.subscribe(IN p_id_user bigint) + LANGUAGE plpgsql +AS $$ +BEGIN + DELETE FROM bot.unsubscribe WHERE id_user = p_id_user; +END; +$$; + +-- Отписать: добавить в список отписавшихся (без дублей). +CREATE OR REPLACE PROCEDURE bot.unsubscribe(IN p_id_user bigint) + LANGUAGE plpgsql +AS $$ +BEGIN + INSERT INTO bot.unsubscribe (id_user) + VALUES (p_id_user) + ON CONFLICT (id_user) DO NOTHING; +END; +$$; diff --git a/sql/R__functions_users.sql b/sql/R__functions_users.sql new file mode 100644 index 0000000..13d309f --- /dev/null +++ b/sql/R__functions_users.sql @@ -0,0 +1,139 @@ +-- Пользователи: регистрация, ник, выборки, удаление. + +-- Список всех игроков. +CREATE OR REPLACE FUNCTION bot.get_nick_list() + RETURNS TABLE(username character varying, nick character varying) + LANGUAGE plpgsql +AS $$ +BEGIN + RETURN QUERY + SELECT tg.username, de.nick + FROM bot.tg_users tg + LEFT JOIN bot.de_users de ON tg.id_user = de.id_user + ORDER BY de.nick; +END; +$$; + +-- Список подписанных на рассылки. +CREATE OR REPLACE FUNCTION bot.get_nick_list_subscribe() + RETURNS TABLE(username character varying, nick character varying) + LANGUAGE plpgsql +AS $$ +BEGIN + RETURN QUERY + SELECT tg.username, de.nick + FROM bot.tg_users tg + LEFT JOIN bot.de_users de ON tg.id_user = de.id_user + WHERE NOT EXISTS (SELECT 1 FROM bot.unsubscribe u WHERE u.id_user = tg.id_user) + ORDER BY de.nick; +END; +$$; + +-- Ник по id. +CREATE OR REPLACE FUNCTION bot.get_nick_by_id(p_id_user bigint) + RETURNS TABLE(nick character varying) + LANGUAGE plpgsql +AS $$ +BEGIN + RETURN QUERY SELECT de.nick FROM bot.de_users de WHERE de.id_user = p_id_user; +END; +$$; + +-- Сводная информация о пользователе. +CREATE OR REPLACE FUNCTION bot.get_info_by_id(p_id_user bigint) + RETURNS TABLE( + username character varying, + nick character varying, + title character varying, + lvl bigint, + expr bigint, + mny bigint, + dt text, + msg_count bigint, + eggs_count bigint + ) + LANGUAGE plpgsql +AS $$ +DECLARE + v_money bigint; + v_eggs bigint; +BEGIN + v_money := coalesce(bot.get_money(p_id_user), 0); + v_eggs := coalesce(bot.get_eggs(p_id_user), 0); + + RETURN QUERY + SELECT tg.username, + coalesce(de.nick, ''), + coalesce(t.title, ''), + de.lvl, + de.expr, + v_money AS mny, + to_char(de.dt_create, 'dd.mm.yyyy'), + coalesce(m.msg_count, 0), + v_eggs AS eggs_count + FROM bot.tg_users tg + LEFT JOIN bot.de_users de ON tg.id_user = de.id_user + LEFT JOIN bot.titles t ON de.id_title = t.id_title + LEFT JOIN ( + SELECT id_user, count(*) AS msg_count + FROM bot.messages + GROUP BY id_user + ) m ON tg.id_user = m.id_user + WHERE tg.id_user = p_id_user; +END; +$$; + +-- Создать/обновить пользователя и записать сообщение. +CREATE OR REPLACE PROCEDURE bot.add_user( + IN p_id_user bigint, + IN p_username character varying, + IN p_first_name character varying, + IN p_last_name character varying +) LANGUAGE plpgsql +AS $$ +BEGIN + INSERT INTO bot.tg_users (id_user, username, first_name, last_name) + VALUES (p_id_user, p_username, p_first_name, p_last_name) + ON CONFLICT (id_user) DO UPDATE + SET username = EXCLUDED.username, + first_name = EXCLUDED.first_name, + last_name = EXCLUDED.last_name; + + INSERT INTO bot.de_users (id_user, nick) + VALUES (p_id_user, NULL) + ON CONFLICT (id_user) DO NOTHING; + + INSERT INTO bot.messages (id_user) VALUES (p_id_user); +END; +$$; + +-- Установить ник. +CREATE OR REPLACE PROCEDURE bot.add_nick(IN p_id_user bigint, IN p_nick character varying) + LANGUAGE plpgsql +AS $$ +BEGIN + INSERT INTO bot.de_users (id_user, nick) + VALUES (p_id_user, p_nick) + ON CONFLICT (id_user) DO UPDATE SET nick = EXCLUDED.nick; +END; +$$; + +-- Удалить пользователя и обнулить его баланс. +CREATE OR REPLACE PROCEDURE bot.del_user_by_id(IN p_id_user bigint) + LANGUAGE plpgsql +AS $$ +DECLARE + v_money bigint; +BEGIN + DELETE FROM bot.tg_users WHERE id_user = p_id_user; + DELETE FROM bot.de_users WHERE id_user = p_id_user; + DELETE FROM bot.messages WHERE id_user = p_id_user; + DELETE FROM bot.purifications WHERE id_user = p_id_user; + + v_money := bot.get_money(p_id_user); + IF v_money IS NOT NULL AND v_money <> 0 THEN + INSERT INTO bot.money (id_user, amount, id_action) + VALUES (p_id_user, -1 * v_money, 5); + END IF; +END; +$$; diff --git a/sql/V10__table_purifications.sql b/sql/V10__table_purifications.sql new file mode 100644 index 0000000..b40c7d6 --- /dev/null +++ b/sql/V10__table_purifications.sql @@ -0,0 +1,6 @@ +-- Журнал ежедневных очищений. +CREATE TABLE IF NOT EXISTS bot.purifications +( + id_user bigint, + dt timestamp DEFAULT now() +); diff --git a/sql/V11__table_unsubscribe.sql b/sql/V11__table_unsubscribe.sql new file mode 100644 index 0000000..aa4732c --- /dev/null +++ b/sql/V11__table_unsubscribe.sql @@ -0,0 +1,5 @@ +-- Отписавшиеся от рассылок. +CREATE TABLE IF NOT EXISTS bot.unsubscribe +( + id_user bigint +); diff --git a/sql/V12__constraints_indexes.sql b/sql/V12__constraints_indexes.sql new file mode 100644 index 0000000..a646d08 --- /dev/null +++ b/sql/V12__constraints_indexes.sql @@ -0,0 +1,36 @@ +-- Ключи и индексы. +-- Схема исторически велась без ключей, поэтому перед добавлением PK убираем +-- возможные дубли (важно при загрузке данных из старой БД). + +-- tg_users +DELETE FROM bot.tg_users a USING bot.tg_users b +WHERE a.ctid < b.ctid AND a.id_user = b.id_user; +ALTER TABLE bot.tg_users ALTER COLUMN id_user SET NOT NULL; +ALTER TABLE bot.tg_users ADD CONSTRAINT tg_users_pkey PRIMARY KEY (id_user); + +-- de_users +DELETE FROM bot.de_users a USING bot.de_users b +WHERE a.ctid < b.ctid AND a.id_user = b.id_user; +ALTER TABLE bot.de_users ALTER COLUMN id_user SET NOT NULL; +ALTER TABLE bot.de_users ADD CONSTRAINT de_users_pkey PRIMARY KEY (id_user); + +-- unsubscribe +DELETE FROM bot.unsubscribe a USING bot.unsubscribe b +WHERE a.ctid < b.ctid AND a.id_user = b.id_user; +ALTER TABLE bot.unsubscribe ALTER COLUMN id_user SET NOT NULL; +ALTER TABLE bot.unsubscribe ADD CONSTRAINT unsubscribe_pkey PRIMARY KEY (id_user); + +-- Суррогатные ключи +ALTER TABLE bot.actions ADD CONSTRAINT actions_pkey PRIMARY KEY (id_action); +ALTER TABLE bot.titles ADD CONSTRAINT titles_pkey PRIMARY KEY (id_title); +ALTER TABLE bot.donats ADD CONSTRAINT donats_pkey PRIMARY KEY (id_donat); +ALTER TABLE bot.money ADD CONSTRAINT money_pkey PRIMARY KEY (id_money); +ALTER TABLE bot.eggs ADD CONSTRAINT eggs_pkey PRIMARY KEY (id_egg); + +-- Индексы +CREATE INDEX IF NOT EXISTS idx_money_user ON bot.money (id_user); +CREATE INDEX IF NOT EXISTS idx_eggs_user_action ON bot.eggs (id_user, id_action); +CREATE INDEX IF NOT EXISTS idx_messages_user ON bot.messages (id_user); +CREATE INDEX IF NOT EXISTS idx_messages_dt ON bot.messages (dt); +CREATE INDEX IF NOT EXISTS idx_purifications_user ON bot.purifications (id_user); +CREATE INDEX IF NOT EXISTS idx_de_users_nick ON bot.de_users (nick); diff --git a/sql/V13__seed_actions.sql b/sql/V13__seed_actions.sql new file mode 100644 index 0000000..cb08b17 --- /dev/null +++ b/sql/V13__seed_actions.sql @@ -0,0 +1,8 @@ +-- Справочник действий (id используется в money.id_action и eggs.id_action). +INSERT INTO bot.actions (id_action, title) +VALUES (1, 'Бонус'), + (2, 'Покупка'), + (3, 'Резерв'), + (4, 'Очищение'), + (5, 'Удаление пользователя') +ON CONFLICT (id_action) DO NOTHING; diff --git a/sql/V1__create_schema.sql b/sql/V1__create_schema.sql new file mode 100644 index 0000000..7690809 --- /dev/null +++ b/sql/V1__create_schema.sql @@ -0,0 +1,2 @@ +-- Схема bot: все объекты приложения. +CREATE SCHEMA IF NOT EXISTS bot; diff --git a/sql/V2__table_tg_users.sql b/sql/V2__table_tg_users.sql new file mode 100644 index 0000000..58501f6 --- /dev/null +++ b/sql/V2__table_tg_users.sql @@ -0,0 +1,8 @@ +-- Telegram-профили пользователей. +CREATE TABLE IF NOT EXISTS bot.tg_users +( + id_user bigint, + username varchar, + first_name varchar, + last_name varchar +); diff --git a/sql/V3__table_de_users.sql b/sql/V3__table_de_users.sql new file mode 100644 index 0000000..a4fc7e3 --- /dev/null +++ b/sql/V3__table_de_users.sql @@ -0,0 +1,12 @@ +-- Игровые профили (ник, опыт, уровень, звание). +CREATE TABLE IF NOT EXISTS bot.de_users +( + id_user bigint, + nick varchar, + expr bigint DEFAULT 0, + expr_streak bigint DEFAULT 0, + mny bigint DEFAULT 0, + id_title bigint DEFAULT 12, + dt_create timestamp DEFAULT now(), + lvl bigint DEFAULT 1 +); diff --git a/sql/V4__table_titles.sql b/sql/V4__table_titles.sql new file mode 100644 index 0000000..3e211d0 --- /dev/null +++ b/sql/V4__table_titles.sql @@ -0,0 +1,8 @@ +-- Справочник званий магазина. +CREATE TABLE IF NOT EXISTS bot.titles +( + id_title serial, + title varchar, + price bigint, + visible boolean +); diff --git a/sql/V5__table_donats.sql b/sql/V5__table_donats.sql new file mode 100644 index 0000000..a39020c --- /dev/null +++ b/sql/V5__table_donats.sql @@ -0,0 +1,8 @@ +-- Справочник донатов магазина. +CREATE TABLE IF NOT EXISTS bot.donats +( + id_donat serial, + title varchar, + price bigint, + visible boolean +); diff --git a/sql/V6__table_user_donats.sql b/sql/V6__table_user_donats.sql new file mode 100644 index 0000000..b5ad361 --- /dev/null +++ b/sql/V6__table_user_donats.sql @@ -0,0 +1,8 @@ +-- Купленные донаты (с промокодом выдачи). +CREATE TABLE IF NOT EXISTS bot.user_donats +( + id_user bigint, + id_donat bigint, + promo varchar, + stat boolean +); diff --git a/sql/V7__table_actions_money.sql b/sql/V7__table_actions_money.sql new file mode 100644 index 0000000..bf6ffd9 --- /dev/null +++ b/sql/V7__table_actions_money.sql @@ -0,0 +1,18 @@ +-- Справочник действий и журнал движения денег (баланс = SUM(amount)). +CREATE SEQUENCE IF NOT EXISTS bot.actions_id_action MAXVALUE 2147483647; +CREATE SEQUENCE IF NOT EXISTS bot.money_id_money MAXVALUE 2147483647; + +CREATE TABLE IF NOT EXISTS bot.actions +( + id_action integer DEFAULT nextval('bot.actions_id_action') NOT NULL, + title varchar +); + +CREATE TABLE IF NOT EXISTS bot.money +( + id_money integer DEFAULT nextval('bot.money_id_money') NOT NULL, + id_user bigint, + amount integer, + id_action integer, + dt_action timestamp DEFAULT CURRENT_TIMESTAMP +); diff --git a/sql/V8__table_eggs.sql b/sql/V8__table_eggs.sql new file mode 100644 index 0000000..e266210 --- /dev/null +++ b/sql/V8__table_eggs.sql @@ -0,0 +1,11 @@ +-- Журнал выдачи яичек (сезонное событие). +CREATE SEQUENCE IF NOT EXISTS bot.eggs_id_egg MAXVALUE 2147483647; + +CREATE TABLE IF NOT EXISTS bot.eggs +( + id_egg integer DEFAULT nextval('bot.eggs_id_egg') NOT NULL, + id_user bigint, + amount integer, + id_action integer, + dt_action timestamp DEFAULT CURRENT_TIMESTAMP +); diff --git a/sql/V9__table_messages.sql b/sql/V9__table_messages.sql new file mode 100644 index 0000000..ce1ed8a --- /dev/null +++ b/sql/V9__table_messages.sql @@ -0,0 +1,6 @@ +-- Журнал сообщений: количество строк = msg_count пользователя. +CREATE TABLE IF NOT EXISTS bot.messages +( + id_user bigint, + dt timestamp DEFAULT now() +); diff --git a/start.sh b/start.sh new file mode 100644 index 0000000..7983631 --- /dev/null +++ b/start.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +# Запуск бота. Все параметры — из переменных окружения / .env (APP_ENV=dev|prod). +set -euo pipefail + +cd "$(dirname "$0")" +exec python -m bot diff --git a/tests/test_render.py b/tests/test_render.py new file mode 100644 index 0000000..d39721a --- /dev/null +++ b/tests/test_render.py @@ -0,0 +1,53 @@ +"""Тесты рендера шаблонов (без БД и сети).""" + +from __future__ import annotations + +import pytest + +from common.texts.render import ( + TemplateError, + format_tops, + format_user_list, + format_usernames, + render, + validate, +) + + +def test_render_substitutes_and_escapes(): + template = "Привет, {username}!" + result = render(template, {"username": "bad"}) + assert result == "Привет, <b>bad</b>!" + + +def test_render_empty_value(): + assert render("Ник: {nick}", {"nick": None}) == "Ник: " + + +def test_render_unknown_tag_raises(): + with pytest.raises(TemplateError): + render("Значение {unknown}", {}) + + +def test_render_keeps_literal_braces_untouched(): + # Одиночная фигурная скобка не считается тегом. + assert render("текст { не тег", {}) == "текст { не тег" + + +def test_validate_reports_unknown_tags(): + assert validate("Норм {username}, плохо {nope} {bad2}") == ["bad2", "nope"] + + +def test_format_usernames_escapes_and_joins(): + rows = [{"username": "a"}, {"username": None}, {"username": "b&c"}] + assert format_usernames(rows) == "@a @b&c" + + +def test_format_user_list_numbering(): + rows = [{"username": "u1", "nick": "Nick1"}, {"username": None, "nick": None}] + assert format_user_list(rows) == "1: @u1 - Nick1\n2: — - " + + +def test_format_tops(): + rows = [{"nick": "N1", "count": 3}, {"nick": None, "count": 1}] + assert format_tops(rows) == "1) N1 - 3\n2) — - 1" diff --git a/tests/test_version.py b/tests/test_version.py new file mode 100644 index 0000000..ba48e5d --- /dev/null +++ b/tests/test_version.py @@ -0,0 +1,10 @@ +"""Проверка версии проекта.""" + +from __future__ import annotations + +from common import __version__ + + +def test_version_is_set(): + assert __version__ + assert __version__ == "0.1"