Secretship Live – Telegram
Secretship Live
286 subscribers
11 photos
1 video
5 files
14 links
В этом канале Олег (@highfeed) из @secretship делится деталями разработки и опытом создания проектов.

Чат канала: @SecretshipLiveChat
Download Telegram
Channel created
Channel photo updated
В этом канале @highfeed из @secretship делится деталями разработки и опытом создания проектов.

Чаще всего проекты – это Telegram боты, но возможно, в будущем это будут не только боты, но и самостоятельные сервисы.

Подписчики канала будут в реальном времени наблюдать за разработкой, узнавать почему какие-то детали делаются именно так, а не иначе и первыми получать проекты для тестирования.
👍2
Решил развлечься и сделать бот, в котором можно будет кидать кубик и выигрывать монеты.

В первой итерации будет возможность кидать только 🎲, пополнять баланс с помощью Coinbase Commerce и выводить средства с помощью Stable Coins USD T/C (привет ETH fees).

Текущая задача: сделать систему транзакций в боте, на которой будет строиться экономика (начисление и списание монет), реализована она будет по принципу добавления новых данных о движениях по счету пользователя с кодом операции и credentials, если это необходимо. Выводиться баланс будет с помощью агрегации этих данных.
Secretship Live
Решил развлечься и сделать бот, в котором можно будет кидать кубик и выигрывать монеты. В первой итерации будет возможность кидать только 🎲, пополнять баланс с помощью Coinbase Commerce и выводить средства с помощью Stable Coins USD T/C (привет ETH fees).…
Бот будет написан на telegraf.js.org. База данных MongoDB. Сессии будут храниться в MongoDB, а не в Redis. Как показывает практика, хранение таких данных в Redis в какой-то момент роста бота становится проблемой, а не преимуществом из-за невозможности сделать нормальный бекап в случае переезда.
image_2020-12-18_17-25-44.png
60.9 KB
Разработка системы транзакций завершена. Самое сложное – это придумать, как правильно спроектировать базу с учетом будущего масштабирования и анализа данных.

Текущая архитектура уже используется в одном из проектов и частично взята отсюда: https://stackoverflow.com/a/37334452
image_2020-12-18_17-32-13.png
57.1 KB
Разработка самой механики бросания кубика тоже завершена.

- Выбор чётное или нечётное.
- Выбор ставки.
- Обработка бросания кубика. Кубик бросает бот.
- Добавление новой транзакции в момент броска.
- Добавление информации об игре в базу для сбора статистики и на всякий случай.

Сейчас добавлю логирование и буду запускать Staging бота для тестирования на сервере. Взял Ubuntu 20.04 в моем любимом DigitalOcean.
image_2020-12-18_17-36-31.png
43.8 KB
Вот так выглядит Dice-модель, где будет храниться информация о всех бросках кубика.

https://gist.github.com/highfeed/c0a5eafb41584e08fbf599d86ab40cb5
⚡️ Бот @CryptoGameStagingBot запущен в тестовом режиме. Можно развлекаться. Каждый новый пользователь бота получает 100 💎 на баланс для тестирования.

Если не хватает монеток для ставки, то можете перейти в баланс, чтобы получить еще 100 💎.

Сейчас включен быстрый режим игры, это когда бот не дожидаясь окончания анимации кубика выдает результат. Бот узнает результат (value) при отправке кубика (sendDice) мгновенно.
2020 бросков кубика. Процент побед = 50.84% (1027).
Проблема комментариев Телеграм в том, что если кто-то, кого нет в чате общается под одним из постом, то он не видит сообщения людей, который также отвечают на сообщения кого-то, кто находится в чате.

Поэтому заходите в чат: @SecretshipLiveChat.
💡 Все-таки платформа Telegram ботов – гениальное изобретение. Как же легко, просто и интересно их разрабатывать – не нужно верстать никакого HTML, писать клиентскую часть на JS, извращаться с CSS и т.д.. Так еще и в придачу идет простейший способ привлечения новых пользователей.
image_2020-12-22_01-14-09.png
7.9 KB
Красивый способ проверить является ли апдейт callback и ответить answerCallbackQuery. Делаю это только для того, чтобы в Android-клиенте на inline-кнопках не висел значок загрузки. В других клиентах его нет или он работает правильно (не показывается, если кнопка или сообщение было изменено).

Но есть способы и покрасивее: https://news.1rj.ru/str/SecretshipLiveChat/354