v0.1.2 [06.02.26] dev notes
✅ Улучшения:
- (05.02 @RedOrkLimeRox) добавить лайтовую гиф анимацию к рулетке
- (05.02) Улучшено кэширование предметов: теперь при валидации кэша проверяется текст, следовательно валидация дополнительно проходит по состоянию сообщения, а не только по наличию.
⚙️ Технические улучшения:
- (05.02) перейти на указатели на предметы вместо копирования в мапе по поиску названий find
- (05.02) добавлены метрики и графики с использованием Prometheus, Grafana
❌ Исправленные баги:
- (05.02) Команда /roulette имеет некорректную логику, а именно: вместо классической русской рулетки, где шансы повышаются: 1/6, 1/5, 1/4... в боте шансы повышаются 1/6, 2/6, 3/6... в результате чего шанс на мут выше чем должен быть.
- (05.02) Если кэш предмета был потерян команда find падала с ошибкой.
✅ Улучшения:
- (05.02 @RedOrkLimeRox) добавить лайтовую гиф анимацию к рулетке
- (05.02) Улучшено кэширование предметов: теперь при валидации кэша проверяется текст, следовательно валидация дополнительно проходит по состоянию сообщения, а не только по наличию.
⚙️ Технические улучшения:
- (05.02) перейти на указатели на предметы вместо копирования в мапе по поиску названий find
- (05.02) добавлены метрики и графики с использованием Prometheus, Grafana
❌ Исправленные баги:
- (05.02) Команда /roulette имеет некорректную логику, а именно: вместо классической русской рулетки, где шансы повышаются: 1/6, 1/5, 1/4... в боте шансы повышаются 1/6, 2/6, 3/6... в результате чего шанс на мут выше чем должен быть.
- (05.02) Если кэш предмета был потерян команда find падала с ошибкой.
👏1
v0.1.3 [09.02.26] dev notes
✅ Улучшения:
- (07.02) относиться к сообщениям в лс бота иным образом: отвечать неизвестные команды для неизвестных команд.
- (08.02) обновить описание ошибки если игрок уже замьючен (roulette)
- (08.02) удалять сообщения рулетки после фиксированного времени если пользователь играл недавно и не может играть.
- (08.02) адаптирован улучшенный алгоритм поиска в /find
- (09.02) отредактировать отображение звёзд при поиске предмета: если высота больше 6 или ширина больше 9, обрезать лишние ряды/колонны.
- (09.02) теперь у всех предметов в /find переведены все типы
⚙️ Технические улучшения:
- (06.02) прикрутить метрики
- (06.02) рефакторинг проекта: вынос middleware
✅ Улучшения:
- (07.02) относиться к сообщениям в лс бота иным образом: отвечать неизвестные команды для неизвестных команд.
- (08.02) обновить описание ошибки если игрок уже замьючен (roulette)
- (08.02) удалять сообщения рулетки после фиксированного времени если пользователь играл недавно и не может играть.
- (08.02) адаптирован улучшенный алгоритм поиска в /find
- (09.02) отредактировать отображение звёзд при поиске предмета: если высота больше 6 или ширина больше 9, обрезать лишние ряды/колонны.
- (09.02) теперь у всех предметов в /find переведены все типы
⚙️ Технические улучшения:
- (06.02) прикрутить метрики
- (06.02) рефакторинг проекта: вынос middleware
👍1
v0.1.4 [11.02.26] dev notes
✅ Улучшения:
- (11.02) теперь крафты в /find отображаются отдельными кнопками.
- (11.02) теперь отображается новое поле: как открыть предмет в /find
✅ Улучшения:
- (11.02) теперь крафты в /find отображаются отдельными кнопками.
- (11.02) теперь отображается новое поле: как открыть предмет в /find
🤔1👌1
Бот временно недоступен в связи с обновлением на версию v0.1.5 (переход на версию v3.1.0 игры). Ожидаемое время обновления: 30 минут.
upd: бот снова доступен с новыми предметами
upd: бот снова доступен с новыми предметами
👌1
v0.1.5 [24.02.26] dev notes
✅ Улучшения:
- (16.02) теперь герои в /find отображаются на русском языке
- (16.02) добавлены забавные названия предметов в /find: галстук, жук, дядя м, орел
- (19.02) добавлена команда /about которая имеет логику старой функции /find. Добавлена новая функция /find , которая возвращает несколько предметов, удовлетворяющих поиску, из которых можно выбрать интересующий.
- (24.02) Предметы обновлены до v3.1.0
- (22.02) Добавлена команда /suggest для алиасов предметов
❌ Исправленные баги:
- (21.02) теперь уведомления о вышедших видео не дублируются для прошедших стримов
✅ Улучшения:
- (16.02) теперь герои в /find отображаются на русском языке
- (16.02) добавлены забавные названия предметов в /find: галстук, жук, дядя м, орел
- (19.02) добавлена команда /about которая имеет логику старой функции /find. Добавлена новая функция /find , которая возвращает несколько предметов, удовлетворяющих поиску, из которых можно выбрать интересующий.
- (24.02) Предметы обновлены до v3.1.0
- (22.02) Добавлена команда /suggest для алиасов предметов
❌ Исправленные баги:
- (21.02) теперь уведомления о вышедших видео не дублируются для прошедших стримов
👍1
v0.1.6 [30.03.26] dev notes
✅ Улучшения:
- (22.03) теперь бот умеет удалять флуд сообщения в конкретных чатах - тредах (стикеры, гифки, др.).
- (29.03) добавлен ETCD в лице RTC позволяющий динамически обновлять конфигурацию приложения
- (30.03) версия предметов игры обновлена до 4.0.0
⚙️ Технические улучшения:
- (29.03) крупный рефакторинг, архитектурные улучшения проекта
✅ Улучшения:
- (22.03) теперь бот умеет удалять флуд сообщения в конкретных чатах - тредах (стикеры, гифки, др.).
- (29.03) добавлен ETCD в лице RTC позволяющий динамически обновлять конфигурацию приложения
- (30.03) версия предметов игры обновлена до 4.0.0
⚙️ Технические улучшения:
- (29.03) крупный рефакторинг, архитектурные улучшения проекта
🔥1🤯1
Сегодня бот будет переезжать в Хельсинки. Будет некоторый даунтайм, который обусловлен переносом конфигураций и БД. Сделано это с целью уменьшения задержки ответа бота и увеличения его стабильности. Прошу терпения и понимания. После переноса отпишу тут.
❤1🔥1👌1😨1
v0.1.7 [06.04.26] dev notes
⚙️ Технические улучшения:
- (04.04) Картинки перенесены в s3
- (04.04) Добавлен линтер
- (04.04) CI/CD улучшения
- (05.04) Теперь в случае отсутствия картинки в кэше она кэшируется и отправляется
- (06.04) Бот переехал в Хельсинки
- (06.04) Рефакторинг
❌ Исправленные баги:
(05.04) Теперь сообщения отправляются даже если оригинальное сообщение с запросом было удалено
ps. кучу кода перебрал, апдейт может быть нестабильным. По багам знаете куда.
⚙️ Технические улучшения:
- (04.04) Картинки перенесены в s3
- (04.04) Добавлен линтер
- (04.04) CI/CD улучшения
- (05.04) Теперь в случае отсутствия картинки в кэше она кэшируется и отправляется
- (06.04) Бот переехал в Хельсинки
- (06.04) Рефакторинг
❌ Исправленные баги:
(05.04) Теперь сообщения отправляются даже если оригинальное сообщение с запросом было удалено
ps. кучу кода перебрал, апдейт может быть нестабильным. По багам знаете куда.
🙏2🔥1
Чуть-чуть внутрянки кому интересно через что проходит запрос на примере команды "/a apple".
Каждая линия сверху вниз - сколько времени заняла функциональная единица приложения:
1. Backpacker Update - общий обработчик запросов
2. middleware.metrics - регистрирует метрики (сколько запросов летит в бота, сколько удачных и т.п.)
3. middleware.userAuth - определяет пользователя (нужно для рулетки, рейт лимитера). Вызывает
4. service.UserAcknowledge - обертка для обработки пользователя, вызывает
5. db.Transation - транзакция к базе, вызывает 678 в рамках одной операции.
6. db.Query - получаем существующего юзера (благо, он уже есть в базе)
7. db.Exec - обнуляем алиасы пользователей в базе (мало ли кто-то возьмет чужой алиас после смены)
8. db.Exec - задаём алиас юзеру в базе
9. middleware.antiFlood - определяет "флуд" сообщение по заданным настройкам. Благо, я вызвал нормальную команду.
10. middleware.forwardedMessage - проверяет является ли сообщение пересланным. Если да, игнорирует.
Каждая линия сверху вниз - сколько времени заняла функциональная единица приложения:
1. Backpacker Update - общий обработчик запросов
2. middleware.metrics - регистрирует метрики (сколько запросов летит в бота, сколько удачных и т.п.)
3. middleware.userAuth - определяет пользователя (нужно для рулетки, рейт лимитера). Вызывает
4. service.UserAcknowledge - обертка для обработки пользователя, вызывает
5. db.Transation - транзакция к базе, вызывает 678 в рамках одной операции.
6. db.Query - получаем существующего юзера (благо, он уже есть в базе)
7. db.Exec - обнуляем алиасы пользователей в базе (мало ли кто-то возьмет чужой алиас после смены)
8. db.Exec - задаём алиас юзеру в базе
9. middleware.antiFlood - определяет "флуд" сообщение по заданным настройкам. Благо, я вызвал нормальную команду.
10. middleware.forwardedMessage - проверяет является ли сообщение пересланным. Если да, игнорирует.
✍1❤1🤯1🤓1
👆
11. middleware.commandHandler - определяет какую всё-таки команду вызвал пользователь и что нужно делать с этим запросом.
12. service.RateLimit - обертка над рейт лимитером
13. ratelimiter.CheckUser - проверяет не много ли сообщений за последнее время отправил пользователь. Если слишком много, не отвечает.
14. handle.About - сам обработчик команды, в нашем случае /about
15. service.FindAnItem - находит лучший по совпадению предмет
16. item_cache_service.CacheItem - достаёт картинку предмета из кэша, в случае отсутствия идёт в s3 хранилище и кэширует.
17. db.Query - пытаемся найти в базе инфу о закэшированном предмете, успешно находим
18. rtc.Get - узнаем текущую настройку интервала сколько предмет считается "валидным" (мало ли кэш удалили)
19. db.Query - получаем значение конфига для rtc
20. bot_app.SendImageWithReply - отправляем ответ (предмет с картинкой и описанием)
21. item_cache_service.IncItemLookups - увеличивает значение "популярности" предмета (с выходом обновления приоритетно кэшируются предметы с более высокой "популярностью")
22. db.Exec - обращение к базке с запросом увеличить значения "популярности" предмета
11. middleware.commandHandler - определяет какую всё-таки команду вызвал пользователь и что нужно делать с этим запросом.
12. service.RateLimit - обертка над рейт лимитером
13. ratelimiter.CheckUser - проверяет не много ли сообщений за последнее время отправил пользователь. Если слишком много, не отвечает.
14. handle.About - сам обработчик команды, в нашем случае /about
15. service.FindAnItem - находит лучший по совпадению предмет
16. item_cache_service.CacheItem - достаёт картинку предмета из кэша, в случае отсутствия идёт в s3 хранилище и кэширует.
17. db.Query - пытаемся найти в базе инфу о закэшированном предмете, успешно находим
18. rtc.Get - узнаем текущую настройку интервала сколько предмет считается "валидным" (мало ли кэш удалили)
19. db.Query - получаем значение конфига для rtc
20. bot_app.SendImageWithReply - отправляем ответ (предмет с картинкой и описанием)
21. item_cache_service.IncItemLookups - увеличивает значение "популярности" предмета (с выходом обновления приоритетно кэшируются предметы с более высокой "популярностью")
22. db.Exec - обращение к базке с запросом увеличить значения "популярности" предмета
🤯2❤1👨💻1
v0.1.8 [30.05.26] dev notes
✅ Улучшения:
- (25.05) Бот больше не запрещает реакции после мута при проигрыше в рулетке.
- (30.05) версия предметов игры обновлена до 5.0.0
⚙️ Технические улучшения:
- (30.05) Добавлен трейсинг, улучшены логи
✅ Улучшения:
- (25.05) Бот больше не запрещает реакции после мута при проигрыше в рулетке.
- (30.05) версия предметов игры обновлена до 5.0.0
⚙️ Технические улучшения:
- (30.05) Добавлен трейсинг, улучшены логи
🤯1