Add Loki and Sentinel utility classes for web API endpoints

- Implemented LokiUtils class with GET and POST endpoints for managing scripts, jobs, and payloads.
- Added SentinelUtils class with GET and POST endpoints for managing events, rules, devices, and notifications.
- Both classes include error handling and JSON response formatting.
This commit is contained in:
infinition
2026-03-14 22:33:10 +01:00
parent eb20b168a6
commit aac77a3e76
525 changed files with 29400 additions and 13136 deletions

View File

@@ -40,22 +40,40 @@
"settings.errorRestoring": "Ошибка восстановления настроек по умолчанию",
"theme.group.colors": "Цвета",
"theme.group.surfaces": "Поверхности",
"theme.group.borders": "Границы",
"theme.group.controls": "Элементы управления",
"theme.group.layout": "Макет",
"theme.token.bg": "Фон",
"theme.token.bg2": "Фон Альт",
"theme.token.ink": "Цвет текста",
"theme.token.muted": "Приглушённый текст",
"theme.token.accent1": "Акцент 1 (Кислотный)",
"theme.token.accent2": "Акцент 2 (Циан)",
"theme.token.accent": "Акцент",
"theme.token.accentAlt": "Акцент Альт",
"theme.token.danger": "Опасно",
"theme.token.warning": "Предупреждение",
"theme.token.ok": "Успех",
"theme.token.panel": "Панель",
"theme.token.panel2": "Панель Альт",
"theme.token.ctrlPanel": "Панель управления",
"theme.token.ctrlPanel2": "Панель управления Альт",
"theme.token.btnBg": "Фон кнопки",
"theme.token.border": "Рамка",
"theme.token.borderStrong": "Усиленная рамка",
"theme.token.borderHi": "Подсветка рамки",
"theme.token.switchTrack": "Дорожка переключателя",
"theme.token.switchOnBg": "Фон включённого переключателя",
"theme.token.scrollTrack": "Дорожка прокрутки",
"theme.token.scrollThumb": "Ползунок прокрутки",
"theme.token.glass": "Стеклянное наложение",
"theme.token.radius": "Радиус рамки",
"theme.advanced": "Продвинутый CSS",
"theme.applyRaw": "Применить",
"theme.reset": "Сбросить",
"theme.reset": "Сбросить по умолчанию",
"theme.export": "Экспорт темы",
"theme.import": "Импорт темы",
"theme.importError": "Недопустимый файл темы",
"dash.title": "Панель управления",
"dash.battery": "Батарея",
"dash.internet": "Интернет",
@@ -777,5 +795,137 @@
"api.timeout": "Время запроса истекло",
"api.failed": "Запрос не удался",
"router.notFound": "Страница не найдена: {{path}}",
"router.errorLoading": "Ошибка при загрузке страницы: {{message}}"
"router.errorLoading": "Ошибка при загрузке страницы: {{message}}",
"nav.sentinel": "Sentinel",
"sentinel.title": "Sentinel Сторожевой",
"sentinel.enabled": "Включено",
"sentinel.disabled": "Выключено",
"sentinel.eventFeed": "Лента событий",
"sentinel.ackAll": "Подтвердить все",
"sentinel.clearAll": "Очистить все",
"sentinel.allAcked": "Все события подтверждены",
"sentinel.confirmClear": "Очистить все события? Это действие необратимо.",
"sentinel.eventsCleared": "События очищены",
"sentinel.noEvents": "Пока нет событий. Sentinel следит за вашей сетью на предмет аномалий.",
"sentinel.rules": "Правила",
"sentinel.devices": "Устройства",
"sentinel.notifiers": "Уведомления",
"sentinel.statDevices": "Известные устройства",
"sentinel.statAlive": "Активные",
"sentinel.statUnread": "Непрочитанные",
"sentinel.statEvents": "Всего событий",
"sentinel.statRules": "Активные правила",
"sentinel.addRule": "Добавить правило",
"sentinel.noRules": "Правила не настроены.",
"sentinel.ruleLogic": "Логика",
"sentinel.ruleActions": "Действия",
"sentinel.enable": "Включить",
"sentinel.disable": "Выключить",
"sentinel.editRule": "Редактировать правило",
"sentinel.deleteRule": "Удалить правило",
"sentinel.confirmDeleteRule": "Удалить это правило?",
"sentinel.ruleDeleted": "Правило удалено",
"sentinel.ruleUpdated": "Правило обновлено",
"sentinel.ruleCreated": "Правило создано",
"sentinel.ruleName": "Название правила",
"sentinel.triggerType": "Тип триггера",
"sentinel.cooldown": "Cooldown",
"sentinel.conditions": "Условия",
"sentinel.cancel": "Отмена",
"sentinel.save": "Сохранить",
"sentinel.nameRequired": "Название правила обязательно",
"sentinel.noDevices": "Устройства пока не обнаружены.",
"sentinel.trusted": "Доверенное",
"sentinel.untrusted": "Недоверенное",
"sentinel.alias": "Псевдоним",
"sentinel.expectedIps": "Ожидаемые IP",
"sentinel.lastSeen": "Последний раз в сети",
"sentinel.deviceSaved": "Устройство обновлено",
"sentinel.discordWebhook": "Discord Webhook",
"sentinel.webhookUrl": "Webhook URL",
"sentinel.smtpHost": "SMTP Host",
"sentinel.smtpPort": "SMTP Port",
"sentinel.smtpUser": "SMTP Пользователь",
"sentinel.smtpPass": "SMTP Пароль",
"sentinel.emailFrom": "E-mail отправителя",
"sentinel.emailTo": "E-mail получателя",
"sentinel.saveNotifiers": "Сохранить уведомления",
"sentinel.notifiersSaved": "Настройки уведомлений сохранены",
"sentinel.justNow": "только что",
"sentinel.acknowledge": "Подтвердить",
"nav.bifrost": "Бифрост",
"bifrost.title": "Бифрост",
"bifrost.enabled": "Включено",
"bifrost.disabled": "Выключено",
"bifrost.activityFeed": "Лента активности",
"bifrost.clearActivity": "Очистить",
"bifrost.activityCleared": "Активность очищена",
"bifrost.noActivity": "Нет активности. Включите Bifrost для разведки WiFi.",
"bifrost.networks": "Сети",
"bifrost.plugins": "Плагины",
"bifrost.history": "История",
"bifrost.mood": "Настроение",
"bifrost.statNetworks": "Сети",
"bifrost.statHandshakes": "Рукопожатия",
"bifrost.statDeauths": "Деаутент.",
"bifrost.statAssocs": "Ассоц.",
"bifrost.statEpochs": "Эпохи",
"bifrost.statPeers": "Пиры",
"bifrost.noNetworks": "Сети пока не обнаружены.",
"bifrost.noPlugins": "Плагины не загружены.",
"bifrost.noEpochs": "Эпохи ещё не записаны.",
"bifrost.justNow": "только что",
"bifrost.confirmEnable": "Включить режим Bifrost? WiFi перейдёт в режим мониторинга — сетевое подключение будет потеряно. Подключайтесь через USB/Bluetooth/Ethernet.",
"bifrost.monitorFailed": "Режим мониторинга не работает",
"bifrost.monitorFailedHint": "Для чипов Broadcom (Pi Zero) установите nexmon. Или используйте внешний USB WiFi адаптер.",
"bifrost.nexmonRequired": "Требуется Nexmon",
"bifrost.nexmonRequiredDesc": "Вашему WiFi чипу Broadcom нужны патчи прошивки nexmon для режима мониторинга. Нажмите для авто-установки (~15-25 мин на Pi Zero 2 W).",
"bifrost.nexmonInstallBtn": "Установить Nexmon",
"bifrost.nexmonConfirm": "Установить патчи прошивки nexmon? Это загрузит и скомпилирует nexmon (~15-25 мин). Требуется доступ в интернет и права root.",
"bifrost.nexmonStarted": "Установка nexmon начата ...",
"bifrost.nexmonInstalling": "Установка Nexmon ...",
"nav.loki": "Loki",
"loki.title": "Loki — HID Атака",
"loki.enable": "Включить",
"loki.enabled_msg": "Режим Loki включён",
"loki.disabled_msg": "Режим Loki выключен",
"loki.status_label": "Статус",
"loki.gadget_label": "Гаджет",
"loki.layout_label": "Раскладка",
"loki.jobs_label": "Задачи",
"loki.running": "Работает",
"loki.running_lc": "работает",
"loki.idle": "Простой",
"loki.ready": "Готов",
"loki.not_ready": "Не готов",
"loki.run": "Запустить",
"loki.save": "Сохранить",
"loki.new": "Новый",
"loki.delete": "Удалить",
"loki.cancel": "Отмена",
"loki.output": "Вывод",
"loki.payloads": "Нагрузки",
"loki.custom_scripts": "Пользовательские скрипты",
"loki.jobs": "Задачи",
"loki.clear_completed": "Очистить завершённые",
"loki.script": "Скрипт",
"loki.status_col": "Статус",
"loki.started": "Запущено",
"loki.actions": "Действия",
"loki.no_payloads": "Нет встроенных нагрузок",
"loki.no_scripts": "Нет сохранённых скриптов",
"loki.no_jobs": "Задач пока нет",
"loki.no_output": "Нет вывода",
"loki.empty_script": "Скрипт пуст",
"loki.job_started": "Задача запущена: {id}",
"loki.run_error": "Не удалось запустить скрипт",
"loki.script_name_prompt": "Имя скрипта:",
"loki.saved": "Скрипт сохранён",
"loki.save_error": "Не удалось сохранить скрипт",
"loki.confirm_delete": "Удалить скрипт '{name}'?",
"loki.quick_placeholder": "Введите текст здесь...",
"loki.quick_send": "Ввод",
"loki.quick_sent": "Текст отправлен на цель",
"loki.quick_error": "Не удалось отправить текст"
}