Skip to content

tiltdepressed/UniQueue

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UniQueue

Очередь в Telegram. Один человек создаёт очередь — получает короткий код и ссылку-приглашение. Остальные жмут на ссылку и автоматически встают в очередь. Все управление — кнопками под сообщениями бота.

Что умеет

  • Создатель: закрыть набор / открыть, пропустить (текущий уходит в конец), удалить очередь.
  • Участник: посмотреть участников, выйти, предложить кому-то поменяться местами, пригласить друга.
  • Live-сообщение для каждого участника: бот редактирует одно сообщение в чате, обновляя номер в очереди после каждого изменения.
  • Уведомления 🔔 Ты следующий после <Имя> и ✅ Твоя очередь!.
  • Автопродвижение: когда current выходит, следующий waiting сразу становится current — без кнопки «Следующий».
  • Приглашение пересылаемо: на сообщении-инвайте URL-кнопка 👉 Войти в очередь, она работает у любого, кому это сообщение перешлют.

Стек

  • Go 1.25
  • PostgreSQL (через pgx/v5, без ORM)
  • Telegram-клиент: github.com/go-telegram/bot

Один бинарь, миграции embedded, никаких внешних брокеров/кэшей.

Запуск

  1. Поставь Postgres и создай БД:

    sudo -u postgres psql -c "CREATE USER uniqueue WITH PASSWORD 'uniqueue';"
    sudo -u postgres psql -c "CREATE DATABASE uniqueue OWNER uniqueue;"
  2. Возьми токен у @BotFather.

  3. Создай .env:

    DATABASE_URL=postgres://uniqueue:uniqueue@localhost:5432/uniqueue?sslmode=disable
    TELEGRAM_BOT_TOKEN=<твой токен>
    

    Если api.telegram.org недоступен напрямую (РФ) — добавь сюда же путь до прокси:

    ALL_PROXY=socks5h://127.0.0.1:1080
    
  4. Поднимай:

    make dev

    Бот применит миграции автоматически и начнёт получать апдейты.

Управление

Внутри бота — постоянная reply-клавиатура снизу: 📋 Новая очередь · 🔑 Войти по коду · 📂 Мои очереди · ✏️ Имя · ℹ️ Помощь. Команды /new, /join, /list, /me, /help тоже работают, но обычно не нужны.

Структура

cmd/bot/                — entrypoint
internal/bot/           — бот: команды, callback'и, FSM, рендер, broadcast
internal/queue/         — бизнес-логика очереди (create/join/leave/skip/swap/delete)
internal/db/            — pgxpool + embedded миграции
internal/db/sqlc/       — типы и SQL-запросы
internal/config/        — загрузчик .env

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors