Чат-бот Телеграм, управляющий псевдо-криптовалютой, альткоином САМАРАКОИН.
Опубликован в общий доступ на GitHub 1 августа 2022 года после официального окончания поддержки в Телеграм. Код написан в 2021 году, в основном в октябре. Самая первая версия появилась в мае 2021 года.
- Поддерживает разные формы команд (/command, /command@samaracoinbot) и аргументы к ним (есть собственный парсер)
- Выдает валюту за слово "самарский" и его склонения и формы (не выдает за "самара")
- Позволяет передавать валюту другим пользователям, обмениваться по @нику и text mention
- Имеет функционал казино
- Смена ставки
- Бросок кубиков 🎲
- Слоты 🎰
- Подробнее читайте в команде /casinoSamara
- Позволяет покупать "фотолупы" (обработанное изображение, на котором имеются элементы лица с аватарки стримера Глада Валакаса) за валюту
- Со случайным изображением с сайта thispersondoesnotexist.com
- С изображением, которое прислал пользователь и в подписи указал команду (в 3 раза дороже)
- Для распознавания лиц используется сервис FacePlusPlus и его API (среднее время обработки: 3,1 с.)
- База данных работает на MongoDB
- По умолчанию порт сервера MongoDB: 60999
- По умолчанию база данных называется users
- Код написан таким образом, чтобы база данных была с аутентификацией (см. ENV файл)
- Всё это настраивается в файле src/dbdriver.js
- TypeScript не используется, компиляция не требуется
- Используется линтер Eslint
- Для Telegram Bot API используются вебхуки, а не поллинг
- Веб-сервер на Fastify, используется порт 60766
- По сигналу SIGINT (выход из программы), бот отключается от базы данных и выключает веб-сервер
Ключ | Описание |
---|---|
TELEGRAM_BOT_TOKEN | Токен бота из BotFather |
TELEGRAM_BOT_ID | ID бота из BotFather |
WEBHOOK_URL | URL вебхука для Telegram Bot API (IP не принимаются, должен быть настроен https) |
MONGODB_USER | Имя пользователя MongoDB |
MONGODB_PASSWORD | Пароль этого же пользователя |
MONGODB_IP | IP адрес сервера MongoDB |
MONGODB_PORT | Порт сервера MongoDB |
FACEPLUSPLUS_API_KEY | Ключ API FacePlusPlus |
FACEPLUSPLUS_API_SECRET | Секрет API FacePlusPlus |
- Заполните .env файл по шаблону .env.example
- Создайте бота в Телеграм, скопируйте его токен и получите ID его аккаунта
- Вставьте их в .env
- Установите npm, node (используйте nvm), mongod, зависимости проекта (
npm i
) - Зарегистрируйтесь на FacePlusPlus и получите токены (необходимо подтверждение по номеру телефона)
- Отредактируйте команду start:db в файле package.json по вашим нуждам
- Запустите базу данных и бота командой
npm run start
Попробуйте запустить бота в serverless функции!
- Если пользователь сменил никнейм в Telegram, он не только потеряет все SAMARACOIN на своем балансе, но и не сможет получать новые. Чтобы избавиться от проблемы необходимо добавить синхронизацию профилей в базе данных по ID аккаунта
- Возможно не заработает на Windows, но точно работает на Ubuntu и MacOS
Бот был отключен в том числе потому что у меня не хватает денег на мощный сервер, а память существующего нужна под новые проекты. Вы можете помочь мне с оплатой сервера, прислав донат: hloth.dev/donate. О том, почему я прошу донаты, читайте здесь: hloth.dev/about