Skip to content

Чат-бот Телеграм, управляющий псевдо-криптовалютой, альткоином САМАРАКОИН

License

Notifications You must be signed in to change notification settings

VityaSchel/samaracoin-bot

Repository files navigation

SAMARACOIN bot

Чат-бот Телеграм, управляющий псевдо-криптовалютой, альткоином САМАРАКОИН.

Banner

Опубликован в общий доступ на 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 (выход из программы), бот отключается от базы данных и выключает веб-сервер

ENV файл

Ключ Описание
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

Начало работы

  1. Заполните .env файл по шаблону .env.example
  2. Создайте бота в Телеграм, скопируйте его токен и получите ID его аккаунта
  3. Вставьте их в .env
  4. Установите npm, node (используйте nvm), mongod, зависимости проекта (npm i)
  5. Зарегистрируйтесь на FacePlusPlus и получите токены (необходимо подтверждение по номеру телефона)
  6. Отредактируйте команду start:db в файле package.json по вашим нуждам
  7. Запустите базу данных и бота командой npm run start

Попробуйте запустить бота в serverless функции!

Известные проблемы

  • Если пользователь сменил никнейм в Telegram, он не только потеряет все SAMARACOIN на своем балансе, но и не сможет получать новые. Чтобы избавиться от проблемы необходимо добавить синхронизацию профилей в базе данных по ID аккаунта
  • Возможно не заработает на Windows, но точно работает на Ubuntu и MacOS

Спонсирование

Бот был отключен в том числе потому что у меня не хватает денег на мощный сервер, а память существующего нужна под новые проекты. Вы можете помочь мне с оплатой сервера, прислав донат: hloth.dev/donate. О том, почему я прошу донаты, читайте здесь: hloth.dev/about

About

Чат-бот Телеграм, управляющий псевдо-криптовалютой, альткоином САМАРАКОИН

Topics

Resources

License

Stars

Watchers

Forks