📦 Telegram Bot Builder v1.5.2
Дата выпуска: 10 марта 2026 г.
Сравнение версий: v1.5.1...v1.5.2
🎯 Основные изменения
🗄️ Полная переработка панели базы данных пользователей
Масштабный рефакторинг системы работы с базой данных пользователей для улучшения архитектуры и поддерживаемости.
Новая структура модулей:
client/components/editor/database/user-database/— основной модуль панели БДclient/components/editor/database/user-details/— панель деталей пользователяclient/components/editor/database/responses-table/— таблица ответов пользователейclient/components/editor/database/dialog/— диалоговое окно сообщений
Компоненты панели пользователей:
- Desktop/Tablet/Mobile — адаптивные компоненты для всех устройств
- DesktopTableRow — строка таблицы с ячейками данных
- DesktopLastMessageCell — ячейка последнего сообщения
- DesktopUserCell — ячейка информации о пользователе
- MobileUserCard — карточка пользователя для мобильных
- StatsCards — карточки статистики
Компоненты деталей пользователя:
- UserDetailsDialog — диалог с подробной информацией
- UserInfoGrid — сетка основной информации
- UserDates — даты активности
- UserTags — теги пользователя
- UserStatus — переключатель статуса
- RawJson — просмотр сырых данных JSON
- ResponseCard — карточка ответа
- ResponseMedia — медиа в ответах
Таблица ответов:
- ResponsesTableWithPagination — таблица с пагинацией
- ResponseRow — строка ответа
- ResponsePhoto — просмотр фото в ответах
- UserResponsesList — список ответов пользователя
- UserResponsesPreview — превью ответов
- PaginationControls — управление пагинацией
- ItemsPerPageSelector — выбор количества элементов
- ResponsesUserFilter — фильтр по пользователю
- ResponseCount — счётчик ответов
Диалог сообщений:
- MessageDialog — диалог переписки
- MessageBubble — пузырь сообщения
- MessageButtons — кнопки сообщения
- MessageMedia — медиа вложения
- MessageText — текст сообщения
- MessageTimestamp — время сообщения
- MessageAvatar — аватар отправителя
- FormattedText — форматированный текст
- NodeSender — отправка узла
Хуки и утилиты:
- useUsers — получение списка пользователей
- useUserDetails — получение деталей пользователя
- useDialogMessages — получение сообщений диалога
- useLastMessage — получение последнего сообщения
- useSearchUsers — поиск пользователей
- useStats — получение статистики
- useSendMessage — отправка сообщения
- useUpdateUser — обновление пользователя
- useDeleteUser — удаление пользователя
- useDeleteAllUsers — удаление всех пользователей
- parseResponseData — парсинг данных ответов
- formatUserName — форматирование имени пользователя
- formatRelativeTime — форматирование относительного времени
🎨 Рефакторинг UI компонентов редактора
Продолжение масштабного рефакторинга интерфейса редактора для улучшения архитектуры.
Шапка редактора:
- AdaptiveHeader — адаптивная шапка с переключением между desktop/mobile
- DesktopActions — действия для desktop версии
- MobileActions — действия для mobile версии
- Navigation — навигационные кнопки
- UserSection — секция пользователя с аватаром
- ThemeToggle — переключатель темы
- GitHubButton — кнопка перехода на репозиторий
- TelegramChatInvite — приглашение в Telegram чат
Компоненты шапки:
- BrandSection — секция бренда
- Logo — логотип приложения
- Title — заголовок проекта
- LoginButton/LogoutButton — кнопки аутентификации
- SaveTemplateButton/LoadTemplateButton — работа с шаблонами
- ToggleCanvasButton/ToggleCodeButton — переключение видов
- ToggleSidebarButton/TogglePropertiesButton — переключение панелей
Аутентификация Telegram:
- useTelegramLogin — хук для виджета Telegram Login
- useTelegramAuth — хук аутентификации
- UserAvatar — аватар пользователя из Telegram
✏️ Rich Text редактор для сообщений
Новый компонент редактирования текста с поддержкой форматирования и переменных.
Возможности:
- Форматирование текста — жирный, курсив, подчёркивание, зачёркивание
- Вставка переменных — {{variable}} из контекста бота
- Фильтрация переменных — поиск и фильтрация доступных переменных
- Статистика текста — подсчёт символов, слов, строк
- Буфер обмена — копирование/вставка с сохранением форматирования
- Undo/Redo — отмена и повтор действий
- HTML конвертация — преобразование между HTML и внутренним форматом
Компоненты:
- InlineRichEditor — основной компонент редактора
- CompactInlineEditor — компактная версия
- EditorToolbar — панель инструментов форматирования
- CompactToolbar — компактная панель
- VariableFilterMenu — меню фильтра переменных
- VariableFilterToggle — переключатель фильтра
- VariablesMenu — меню переменных
- VariableMenuItem — элемент меню переменной
- UsedVariablesList — список использованных переменных
- FormattedText — отображение форматированного текста
- StatsBar — панель статистики текста
- EditorContent — содержимое редактора
Хуки:
- useInlineRichEditor — основной хук редактора
- useFormatting — управление форматированием
- useVariableInsert — вставка переменных
- useUndoRedo — отмена/повтор
- useClipboard — работа с буфером обмена
- useTextStats — статистика текста
- useEditorSync — синхронизация редактора
- useEditorInput — обработка ввода
- useKeyboardShortcuts — горячие клавиши
Утилиты:
- formatOptions — опции форматирования
- formattingParser — парсер форматирования
- htmlConverter — конвертация HTML
- variableDisplayUtils — отображение переменных
🔧 Исправление ошибки ReferenceError indentLevel
Исправлена критическая ошибка в генераторе кода.
Проблема:
При генерации Python-кода возникала ошибка ReferenceError: indentLevel is not defined в функции generateHandleNodeFunctions.
Решение:
- Исправлена область видимости переменной
indentLevel - Переменная объявлена в правильном контексте
Файлы:
client/lib/generate/generateHandleNodeFunctions.ts— исправлена ошибка
🔧 Установка python-dotenv для сгенерированных ботов
Добавлена автоматическая установка зависимости python-dotenv для сгенерированных ботов.
Изменения:
- Зависимость
python-dotenvдобавлена в requirements.txt сгенерированных ботов - Необходима для работы с .env файлами конфигурации
📁 Архивация неиспользуемых файлов
Очистка репозитория от устаревших и неиспользуемых файлов.
Заархивировано:
- Резервные копии
.bakфайлов - Устаревшие компоненты редактора
- Старые версии миграций БД
- Временные файлы тестирования
- Удалённые компоненты соединений
- Старые версии модальных окон
- Устаревшие конфигурационные файлы
📝 Удаление файла релиза TELEGRAM_POST_v1.5.1.md
Удалён промежуточный файл черновика релиза v1.5.1.
📊 Статистика изменений
| Категория | Файлов | Строк добавлено | Строк удалено |
|---|---|---|---|
| База данных пользователей | 200+ | 5000+ | 3000+ |
| Рефакторинг UI редактора | 100+ | 3000+ | 2000+ |
| Rich Text редактор | 30+ | 2500+ | 500+ |
| Исправление indentLevel | 1 | 1 | 1 |
| python-dotenv | 1 | 1 | 0 |
| Архивация | 100+ | 0 | 40000+ |
| Очистка | 50+ | 0 | 6000+ |
| Всего | ~500 | 10500+ | 51600+ |
🔧 Технические детали
Архитектура базы данных пользователей
client/components/editor/database/
├── user-database/ # Панель пользователей
│ ├── components/
│ │ ├── desktop/ # Desktop компоненты
│ │ ├── mobile/ # Mobile компоненты
│ │ ├── details/ # Детали пользователя
│ │ ├── dialog/ # Диалог сообщений
│ │ ├── filters/ # Фильтры и поиск
│ │ ├── header/ # Заголовок панели
│ │ ├── stats/ # Карточки статистики
│ │ └── content/ # Контент вкладок
│ ├── hooks/
│ │ ├── queries/ # React Query хуки
│ │ ├── mutations/ # Мутации
│ │ └── types/ # Типы хуков
│ ├── types/ # Типы данных
│ └── utils/ # Утилиты
├── user-details/ # Панель деталей
├── responses-table/ # Таблица ответов
└── dialog/ # Диалог сообщений
Rich Text редактор
// Пример использования переменных
const editorValue = 'Привет, {{user.first_name}}!';
// Вставка переменной
insertVariable('{{user.username}}');
// Фильтрация переменных
filterVariables('user.');
// Статистика
const stats = {
characters: 35,
words: 3,
lines: 1,
variables: ['user.first_name']
};
Адаптивная шапка
// AdaptiveHeader переключается между версиями
<AdaptiveHeader
botInfo={botInfo}
onToggleTheme={toggleTheme}
onLogin={handleLogin}
onLogout={handleLogout}
/>
// Desktop версия показывает все кнопки
// Mobile версия скрывается в гамбургер-меню
🚀 Установка
Обновление с v1.5.1:
# Обновите проект
git pull origin main
# Установите зависимости
cd client
npm install
# Соберите проект
npm run build
# Запустите
npm run start
Через Docker:
# Пересоберите образ
docker-compose build --no-cache
# Запустите
docker-compose up -d
Обновление сгенерированных ботов:
# В сгенерированном боте установите зависимости
cd generated_bot
pip install -r requirements.txt
# python-dotenv теперь устанавливается автоматически
⚠️ Важные замечания
База данных пользователей
- Адаптивность — интерфейс полностью адаптирован для всех устройств
- Пагинация — добавлена постраничная навигация для больших списков
- Фильтры — улучшен поиск и фильтрация пользователей
- Статистика — карточки показывают основную метрику
Rich Text редактор
- Совместимость — работает в узлах сообщений, кнопок, команд
- Переменные — поддерживается вставка из контекста бота
- Форматирование — Telegram Markdown/HTML совместимость
Архивация
- Резервные копии — старые файлы перемещены в archive/
- Чистка — репозиторий стал легче на ~40000 строк кода
📦 Зависимости
Для сгенерированных ботов:
- python-dotenv — добавлена в requirements.txt
Для основного проекта:
Новые зависимости не требуются.
🔗 Ссылки
📋 Чек-лист обновления
- Рефакторинг базы данных пользователей завершён
- Rich Text редактор реализован
- Адаптивная шапка добавлена
- Ошибка indentLevel исправлена
- python-dotenv добавлена
- Архивация старых файлов выполнена
- Документация обновлена
Полный список изменений: Коммиты v1.5.1...v1.5.2