feat: entity relationship refactor — notification trackers, command system, chat actions
Rework entity schema: rename Tracker→NotificationTracker, add CommandConfig/ CommandTracker/CommandTrackerListener entities for decoupled command handling. Commands now resolve through CommandTracker→CommandConfig instead of TelegramBot.commands_config. Smart ref-counted bot polling based on active listeners. Add chat_action to telegram targets. Full frontend CRUD pages for command configs and command trackers. Idempotent SQLite migrations. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -6,11 +6,13 @@
|
||||
"nav": {
|
||||
"dashboard": "Dashboard",
|
||||
"providers": "Providers",
|
||||
"trackers": "Trackers",
|
||||
"notificationTrackers": "Notif. Trackers",
|
||||
"trackingConfigs": "Tracking",
|
||||
"templateConfigs": "Templates",
|
||||
"telegramBots": "Bots",
|
||||
"targets": "Targets",
|
||||
"commandConfigs": "Cmd Configs",
|
||||
"commandTrackers": "Cmd Trackers",
|
||||
"users": "Users",
|
||||
"settings": "Settings",
|
||||
"logout": "Logout"
|
||||
@@ -93,8 +95,8 @@
|
||||
"testAndSave": "Test & Save",
|
||||
"saveWithoutTest": "Save without testing"
|
||||
},
|
||||
"trackers": {
|
||||
"title": "Trackers",
|
||||
"notificationTracker": {
|
||||
"title": "Notification Trackers",
|
||||
"description": "Monitor albums for changes",
|
||||
"newTracker": "New Tracker",
|
||||
"cancel": "Cancel",
|
||||
@@ -198,7 +200,9 @@
|
||||
"maxAssetSize": "Max asset size (MB)",
|
||||
"videoWarning": "Video size warning",
|
||||
"disableUrlPreview": "Disable link previews",
|
||||
"sendLargeAsDocuments": "Send large photos as documents"
|
||||
"sendLargeAsDocuments": "Send large photos as documents",
|
||||
"chatAction": "Chat action",
|
||||
"chatActionNone": "None (no action)"
|
||||
},
|
||||
"users": {
|
||||
"title": "Users",
|
||||
@@ -474,6 +478,47 @@
|
||||
"botLocale": "Language for command descriptions in Telegram's menu and bot response messages.",
|
||||
"rateLimits": "Cooldown in seconds between uses of each command category per chat. 0 = no limit."
|
||||
},
|
||||
"commandConfig": {
|
||||
"title": "Command Configs",
|
||||
"description": "Define command settings for Telegram bot interactions",
|
||||
"newConfig": "New Config",
|
||||
"name": "Name",
|
||||
"namePlaceholder": "Default commands",
|
||||
"providerType": "Provider Type",
|
||||
"enabledCommands": "Enabled Commands",
|
||||
"locale": "Locale",
|
||||
"responseMode": "Response Mode",
|
||||
"modeMedia": "Media (photos)",
|
||||
"modeText": "Text only",
|
||||
"defaultCount": "Default Count",
|
||||
"rateLimits": "Rate Limits",
|
||||
"searchCooldown": "Search cooldown (s)",
|
||||
"defaultCooldown": "Default cooldown (s)",
|
||||
"noConfigs": "No command configs yet.",
|
||||
"confirmDelete": "Delete this command config?",
|
||||
"commands": "commands"
|
||||
},
|
||||
"commandTracker": {
|
||||
"title": "Command Trackers",
|
||||
"description": "Manage command trackers and their listeners",
|
||||
"newTracker": "New Tracker",
|
||||
"name": "Name",
|
||||
"namePlaceholder": "Family commands",
|
||||
"provider": "Provider",
|
||||
"selectProvider": "Select provider...",
|
||||
"commandConfig": "Command Config",
|
||||
"selectCommandConfig": "Select command config...",
|
||||
"listeners": "Listeners",
|
||||
"addListener": "Add Listener",
|
||||
"removeListener": "Remove",
|
||||
"noTrackers": "No command trackers yet.",
|
||||
"confirmDelete": "Delete this command tracker?",
|
||||
"enabled": "Enabled",
|
||||
"disabled": "Disabled",
|
||||
"noListeners": "No listeners attached.",
|
||||
"selectBot": "Select bot...",
|
||||
"listenerType": "telegram_bot"
|
||||
},
|
||||
"snackbar": {
|
||||
"showDetails": "Show details",
|
||||
"hideDetails": "Hide details"
|
||||
@@ -504,7 +549,16 @@
|
||||
"commandsSynced": "Commands synced to Telegram",
|
||||
"targetLinked": "Target linked",
|
||||
"targetUnlinked": "Target unlinked",
|
||||
"botUpdated": "Bot updated"
|
||||
"botUpdated": "Bot updated",
|
||||
"commandConfigSaved": "Command config saved",
|
||||
"commandConfigDeleted": "Command config deleted",
|
||||
"commandTrackerCreated": "Command tracker created",
|
||||
"commandTrackerUpdated": "Command tracker updated",
|
||||
"commandTrackerDeleted": "Command tracker deleted",
|
||||
"commandTrackerEnabled": "Command tracker enabled",
|
||||
"commandTrackerDisabled": "Command tracker disabled",
|
||||
"listenerAdded": "Listener added",
|
||||
"listenerRemoved": "Listener removed"
|
||||
},
|
||||
"common": {
|
||||
"loading": "Loading...",
|
||||
|
||||
@@ -6,11 +6,13 @@
|
||||
"nav": {
|
||||
"dashboard": "Главная",
|
||||
"providers": "Провайдеры",
|
||||
"trackers": "Трекеры",
|
||||
"notificationTrackers": "Трекеры увед.",
|
||||
"trackingConfigs": "Отслеживание",
|
||||
"templateConfigs": "Шаблоны",
|
||||
"telegramBots": "Боты",
|
||||
"targets": "Получатели",
|
||||
"commandConfigs": "Конф. команд",
|
||||
"commandTrackers": "Трекеры команд",
|
||||
"users": "Пользователи",
|
||||
"settings": "Настройки",
|
||||
"logout": "Выход"
|
||||
@@ -93,8 +95,8 @@
|
||||
"testAndSave": "Проверить и сохранить",
|
||||
"saveWithoutTest": "Сохранить без проверки"
|
||||
},
|
||||
"trackers": {
|
||||
"title": "Трекеры",
|
||||
"notificationTracker": {
|
||||
"title": "Трекеры уведомлений",
|
||||
"description": "Отслеживание изменений в альбомах",
|
||||
"newTracker": "Новый трекер",
|
||||
"cancel": "Отмена",
|
||||
@@ -198,7 +200,9 @@
|
||||
"maxAssetSize": "Макс. размер файла (МБ)",
|
||||
"videoWarning": "Предупреждение о размере видео",
|
||||
"disableUrlPreview": "Отключить превью ссылок",
|
||||
"sendLargeAsDocuments": "Отправлять большие фото как документы"
|
||||
"sendLargeAsDocuments": "Отправлять большие фото как документы",
|
||||
"chatAction": "Действие в чате",
|
||||
"chatActionNone": "Нет (без действия)"
|
||||
},
|
||||
"users": {
|
||||
"title": "Пользователи",
|
||||
@@ -474,6 +478,47 @@
|
||||
"botLocale": "Язык описаний команд в меню Telegram и ответов бота.",
|
||||
"rateLimits": "Кулдаун в секундах между использованиями команд в каждом чате. 0 = без ограничений."
|
||||
},
|
||||
"commandConfig": {
|
||||
"title": "Конфигурации команд",
|
||||
"description": "Настройки команд для взаимодействия с Telegram-ботами",
|
||||
"newConfig": "Новая конфигурация",
|
||||
"name": "Название",
|
||||
"namePlaceholder": "Команды по умолчанию",
|
||||
"providerType": "Тип провайдера",
|
||||
"enabledCommands": "Включённые команды",
|
||||
"locale": "Язык",
|
||||
"responseMode": "Режим ответа",
|
||||
"modeMedia": "Медиа (фото)",
|
||||
"modeText": "Только текст",
|
||||
"defaultCount": "Кол-во по умолчанию",
|
||||
"rateLimits": "Ограничения частоты",
|
||||
"searchCooldown": "Кулдаун поиска (с)",
|
||||
"defaultCooldown": "Кулдаун по умолчанию (с)",
|
||||
"noConfigs": "Конфигураций команд пока нет.",
|
||||
"confirmDelete": "Удалить эту конфигурацию команд?",
|
||||
"commands": "команд"
|
||||
},
|
||||
"commandTracker": {
|
||||
"title": "Трекеры команд",
|
||||
"description": "Управление трекерами команд и их слушателями",
|
||||
"newTracker": "Новый трекер",
|
||||
"name": "Название",
|
||||
"namePlaceholder": "Семейные команды",
|
||||
"provider": "Провайдер",
|
||||
"selectProvider": "Выберите провайдер...",
|
||||
"commandConfig": "Конфигурация команд",
|
||||
"selectCommandConfig": "Выберите конфигурацию...",
|
||||
"listeners": "Слушатели",
|
||||
"addListener": "Добавить слушателя",
|
||||
"removeListener": "Удалить",
|
||||
"noTrackers": "Трекеров команд пока нет.",
|
||||
"confirmDelete": "Удалить этот трекер команд?",
|
||||
"enabled": "Включён",
|
||||
"disabled": "Отключён",
|
||||
"noListeners": "Нет подключённых слушателей.",
|
||||
"selectBot": "Выберите бота...",
|
||||
"listenerType": "telegram_bot"
|
||||
},
|
||||
"snackbar": {
|
||||
"showDetails": "Показать детали",
|
||||
"hideDetails": "Скрыть детали"
|
||||
@@ -504,7 +549,16 @@
|
||||
"commandsSynced": "Команды синхронизированы с Telegram",
|
||||
"targetLinked": "Получатель привязан",
|
||||
"targetUnlinked": "Получатель отвязан",
|
||||
"botUpdated": "Бот обновлён"
|
||||
"botUpdated": "Бот обновлён",
|
||||
"commandConfigSaved": "Конфигурация команд сохранена",
|
||||
"commandConfigDeleted": "Конфигурация команд удалена",
|
||||
"commandTrackerCreated": "Трекер команд создан",
|
||||
"commandTrackerUpdated": "Трекер команд обновлён",
|
||||
"commandTrackerDeleted": "Трекер команд удалён",
|
||||
"commandTrackerEnabled": "Трекер команд включён",
|
||||
"commandTrackerDisabled": "Трекер команд отключён",
|
||||
"listenerAdded": "Слушатель добавлен",
|
||||
"listenerRemoved": "Слушатель удалён"
|
||||
},
|
||||
"common": {
|
||||
"loading": "Загрузка...",
|
||||
|
||||
Reference in New Issue
Block a user