git.iko.soy/personality-traits
on master help sign in
git clone ssh://git.iko.soy/personality-traits

personality-traits-bot

Telegram-бот для практикума по снижению тревожности (Rust + teloxide + SQLite).

Что реализовано

Команды

Запуск

# 1. Скопируйте .env.example в .env и поставьте токен бота от @BotFather:
cp .env.example .env
# отредактируйте TELOXIDE_TOKEN

# 2. Запустите бота:
cargo run --release

При первом запуске:

Переменные окружения

ПеременнаяЗначение по умолчанию (см. .env.example)
TELOXIDE_TOKENтокен бота от @BotFather
DATABASE_URLsqlite://bot.db?mode=rwc
EVENTS_FILEquestionnaire/abfi-1/events.yaml
DATA_DIRquestionnaire/abfi-1/data
RUST_LOGinfo,personality_traits_bot=debug,teloxide=info

Структура хранения

Поток выполнения

  1. Пользователь пишет /start → бот просит email.
  2. После сохранения email бот отправляет первое сообщение из yaml (id: start) с кнопкой «Начать курс».
  3. Нажатие кнопки → создаётся сессия, в scheduled_messages ставится следующее событие.
  4. Шедулер каждые 10 секунд забирает «созревшие» сообщения, отправляет их, обновляет current_index.
  5. Если у отправленного события нет кнопок (например, day_1_end), шедулер сразу планирует следующее по порядку с его delay_minutes.
  6. Если кнопка ведёт на несуществующий event (например, опечатка message_1 вместо practice_1), используется fallback — следующее сообщение по порядку.

Известные нюансы yaml

Отладка

Поднять уровень логирования:

RUST_LOG=debug cargo run