karta-soup/README.md

3.4 KiB
Raw Permalink Blame History

Карта Суп Telegram Bot

Telegram бот для проверки баланса и истории транзакций карты Карта Суп.

Возможности

  • 💳 Сохранение кода карты для каждого пользователя
  • ✍️ Ввод кода карты (13 цифр, начинается с 2001)
  • 💰 Проверка баланса карты
  • 📊 Просмотр последних транзакций
  • 🔄 Изменение кода карты
  • 📱 Удобное меню с кнопками
  • 🛡️ Защита от спама (rate limiting)
  • Валидация кода карты

Технологии

  • NestJS
  • TypeScript
  • Telegraf (Telegram Bot API)
  • TypeORM
  • PostgreSQL
  • Docker

Установка и запуск

Локальная разработка

  1. Установите зависимости:
npm install
  1. Создайте файл .env на основе .env.example:
cp .env.example .env
  1. Заполните переменные окружения в .env:
TELEGRAM_BOT_TOKEN=your_bot_token_here
DATABASE_HOST=localhost
DATABASE_PORT=5432
DATABASE_USER=postgres
DATABASE_PASSWORD=postgres
DATABASE_NAME=karta_soup
NODE_ENV=development
  1. Запустите PostgreSQL (или используйте Docker):
docker run -d \
  --name postgres \
  -e POSTGRES_PASSWORD=postgres \
  -e POSTGRES_DB=karta_soup \
  -p 5432:5432 \
  postgres:15-alpine
  1. Запустите приложение:
npm run start:dev

Запуск с Docker

  1. Создайте файл .env:
cp .env.example .env
  1. Укажите токен бота в .env:
TELEGRAM_BOT_TOKEN=your_bot_token_here
  1. Запустите контейнеры:
docker-compose up -d
  1. Проверьте логи:
docker-compose logs -f app

Деплой на сервер

  1. Скопируйте проект на сервер:
scp -r . user@your-server:/path/to/app
  1. На сервере создайте .env файл с вашими настройками

  2. Запустите:

docker-compose up -d

Команды бота

  • /start - Начать работу с ботом
  • /balance - Проверить баланс
  • /changecode - Изменить код карты
  • /help - Показать справку

Структура проекта

src/
├── bot/
│   ├── bot.module.ts       # Модуль бота
│   └── bot.update.ts       # Обработчики команд и сообщений
├── entities/
│   └── user.entity.ts      # Сущность пользователя
├── interfaces/
│   └── balance.interface.ts # Интерфейсы для API
├── services/
│   ├── karta-soup.service.ts # Сервис для работы с API Карта Суп
│   └── user.service.ts      # Сервис для работы с пользователями
├── app.module.ts           # Главный модуль приложения
└── main.ts                 # Точка входа

API Карта Суп

Бот использует публичный API для получения информации о балансе:

GET https://meal.gift-cards.ru/api/1/cards/{code}?limit=100

Лицензия

MIT