Перейти к основному содержимому

📦 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+
Исправление indentLevel111
python-dotenv110
Архивация100+040000+
Очистка50+06000+
Всего~50010500+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