Version 1.11.4 — Новый дизайн графиков и исправление уязвимости
Версия 1.11.4 представляет собой важный патч, который включает в себя масштабное обновление визуального дизайна графиков статистики и критическое исправление уязвимости безопасности.
Новый дизайн графиков

Павел предоставил дизайн графиков
Выражаем огромную благодарность за проделанную работу и вклад в развитие проекта!
Основные изменения
- Единый цвет фона: Все графики теперь используют единый темно-серый фон с легким синеватым оттенком (#2D3748) вместо различных оттенков серого
- Система подсветки топ-3: Внедрена цветная система выделения лучших результатов:
- Золото (#EFBF04) — 1 место
- Серебро (#909090) — 2 место
- Бронза (#CE8946) — 3 место
- Улучшенная читаемость: Контрастные цвета текста, улучшенная сетка и подписи
- Декоративные элементы: Добавлены полупрозрачные кружки в углах и водяной знак pixel-ut.pro
График профиля (месячная статистика)
График профиля получил обновленный дизайн с улучшенной визуализацией данных:

- Все столбцы теперь белого цвета (#ffffff)
- Топ-3 дня выделяются цветной подсветкой в нижней половине столбца
- Значения сообщений отображаются черным текстом в верхней части каждого столбца
- Улучшенная сетка и оси для лучшей читаемости
График топ пользователей (топ-15)
График топ пользователей был полностью переработан с фокусом на читаемость и визуальную привлекательность:

- Ограничение до 15 пользователей для лучшей читаемости
- Увеличенное расстояние между столбцами (20px)
- Аватары фиксированного размера (80px)
- Топ-3 пользователя выделяются цветной подсветкой с метками ранга (#1, #2, #3)
- Округленные значения сетки для большей читаемости
- Декоративные элементы в углах изображения

Итоговая цветовая палитра
| Элемент | Цвет | Использование |
|---|---|---|
| Фон | #2D3748 | Фон всех графиков |
| Золото | #EFBF04 | 1 место |
| Серебро | #909090 | 2 место |
| Бронза | #CE8946 | 3 место |
| Белый | #FAFAFA / #ffffff | Столбцы, текст |
| Сетка | #BEC1C4 | Линии сетки, подписи |
| Водяной знак | #6F747B | pixel-ut.pro |
Исправление уязвимости
В этой версии была исправлена критическая уязвимость, которая позволяла пользователям обходить наказание мутом.
Проблема
Пользователи могли избежать наказания мутом, если их кикали из чата. Механизм работал следующим образом:
- Пользователь получал мут (ограничение на отправку сообщений)
- Во время мута пользователь спамил реакциями
- Бот автоматически кикал пользователя за спам реакциями, используя:
ban_chat_member()— блокировка участникаunban_chat_member()— сразу же разблокировка, чтобы пользователь мог вернуться
- При разблокировке автоматически снимались все ограничения (включая мут)
- После возвращения в чат пользователь уже не был замучен и мог писать, хотя мут еще не истек
Эта уязвимость могла быть использована в следующих случаях:
- Ручной кик через команду
/kick(модератор кикает вручную) - Автоматический кик за спам реакциями (защита от спама реакциями)
- Автоматический кик при достижении лимита предупреждений (система варнов)
Решение
Теперь система работает следующим образом:
- Сохранение мутов: Муты сохраняются в базе данных при кике (не удаляются)
- Автоматическое восстановление: Мут автоматически восстанавливается сразу после разблокировки
- Проверка при возвращении: Система проверяет и восстанавливает муты при возвращении пользователя в чат
- Проверка при отправке: Муты проверяются при отправке сообщений
Таким образом, даже если пользователя кикнули и разблокировали, мут сохраняется и автоматически восстанавливается, и пользователи не могут избежать наказания через кик.
Спасибо за использование PIXEL! Мы продолжаем улучшать бота и обеспечивать безопасность ваших чатов.