All checks were successful
Validate / Hassfest (push) Successful in 3s
Implement caching for Telegram file_ids to avoid re-uploading the same media. Cached IDs are reused for subsequent sends, improving performance significantly. Added configurable cache TTL option (1-168 hours, default 48). Also added city, state, and country fields from Immich reverse geocoding to asset data in events and get_assets service. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
232 lines
12 KiB
JSON
232 lines
12 KiB
JSON
{
|
||
"entity": {
|
||
"sensor": {
|
||
"album_id": {
|
||
"name": "ID альбома"
|
||
},
|
||
"album_asset_count": {
|
||
"name": "Число файлов"
|
||
},
|
||
"album_photo_count": {
|
||
"name": "Число фото"
|
||
},
|
||
"album_video_count": {
|
||
"name": "Число видео"
|
||
},
|
||
"album_last_updated": {
|
||
"name": "Последнее обновление"
|
||
},
|
||
"album_created": {
|
||
"name": "Дата создания"
|
||
},
|
||
"album_public_url": {
|
||
"name": "Публичная ссылка"
|
||
},
|
||
"album_protected_url": {
|
||
"name": "Защищённая ссылка"
|
||
},
|
||
"album_protected_password": {
|
||
"name": "Пароль ссылки"
|
||
}
|
||
},
|
||
"binary_sensor": {
|
||
"album_new_assets": {
|
||
"name": "Новые файлы"
|
||
}
|
||
},
|
||
"camera": {
|
||
"album_thumbnail": {
|
||
"name": "Превью"
|
||
}
|
||
},
|
||
"text": {
|
||
"album_protected_password_edit": {
|
||
"name": "Пароль ссылки"
|
||
}
|
||
},
|
||
"button": {
|
||
"create_share_link": {
|
||
"name": "Создать ссылку"
|
||
},
|
||
"delete_share_link": {
|
||
"name": "Удалить ссылку"
|
||
},
|
||
"create_protected_link": {
|
||
"name": "Создать защищённую ссылку"
|
||
},
|
||
"delete_protected_link": {
|
||
"name": "Удалить защищённую ссылку"
|
||
}
|
||
}
|
||
},
|
||
"config": {
|
||
"step": {
|
||
"user": {
|
||
"title": "Подключение к Immich",
|
||
"description": "Введите данные вашего сервера Immich. API-ключ можно получить в Immich → Настройки пользователя → API-ключи.",
|
||
"data": {
|
||
"hub_name": "Название хаба",
|
||
"immich_url": "URL Immich",
|
||
"api_key": "API-ключ"
|
||
},
|
||
"data_description": {
|
||
"hub_name": "Название для этого сервера Immich (используется в ID сущностей)",
|
||
"immich_url": "URL вашего сервера Immich (например, http://192.168.1.100:2283)",
|
||
"api_key": "Ваш API-ключ Immich"
|
||
}
|
||
}
|
||
},
|
||
"error": {
|
||
"cannot_connect": "Не удалось подключиться к серверу Immich",
|
||
"invalid_auth": "Неверный API-ключ",
|
||
"no_albums": "На сервере не найдено альбомов",
|
||
"unknown": "Произошла непредвиденная ошибка"
|
||
},
|
||
"abort": {
|
||
"already_configured": "Этот сервер Immich уже настроен"
|
||
}
|
||
},
|
||
"config_subentries": {
|
||
"album": {
|
||
"initiate_flow": {
|
||
"user": "Добавить альбом"
|
||
},
|
||
"entry_type": "Альбом",
|
||
"step": {
|
||
"user": {
|
||
"title": "Добавить альбом для отслеживания",
|
||
"description": "Выберите альбом с вашего сервера Immich для отслеживания изменений.",
|
||
"data": {
|
||
"album_id": "Альбом"
|
||
}
|
||
}
|
||
},
|
||
"error": {
|
||
"cannot_connect": "Не удалось подключиться к серверу Immich"
|
||
},
|
||
"abort": {
|
||
"parent_not_found": "Конфигурация хаба не найдена",
|
||
"no_albums": "На сервере не найдено альбомов",
|
||
"all_albums_configured": "Все альбомы уже настроены",
|
||
"album_already_configured": "Этот альбом уже отслеживается"
|
||
}
|
||
}
|
||
},
|
||
"options": {
|
||
"step": {
|
||
"init": {
|
||
"title": "Настройки Immich Album Watcher",
|
||
"description": "Настройте интервал опроса и параметры Telegram для всех альбомов.",
|
||
"data": {
|
||
"scan_interval": "Интервал сканирования (секунды)",
|
||
"telegram_bot_token": "Токен Telegram бота",
|
||
"telegram_cache_ttl": "Время жизни кэша Telegram (часы)"
|
||
},
|
||
"data_description": {
|
||
"scan_interval": "Как часто проверять изменения в альбомах (10-3600 секунд)",
|
||
"telegram_bot_token": "Токен бота для отправки уведомлений в Telegram",
|
||
"telegram_cache_ttl": "Сколько хранить ID загруженных файлов для повторной отправки без загрузки (1-168 часов, по умолчанию: 48)"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"services": {
|
||
"refresh": {
|
||
"name": "Обновить",
|
||
"description": "Принудительно обновить данные альбома из Immich."
|
||
},
|
||
"get_assets": {
|
||
"name": "Получить файлы",
|
||
"description": "Получить файлы из выбранного альбома с возможностью фильтрации и сортировки.",
|
||
"fields": {
|
||
"limit": {
|
||
"name": "Лимит",
|
||
"description": "Максимальное количество возвращаемых файлов (1-100)."
|
||
},
|
||
"favorite_only": {
|
||
"name": "Только избранные",
|
||
"description": "Фильтр для отображения только избранных файлов."
|
||
},
|
||
"filter_min_rating": {
|
||
"name": "Минимальный рейтинг",
|
||
"description": "Минимальный рейтинг для файлов (1-5)."
|
||
},
|
||
"order_by": {
|
||
"name": "Сортировать по",
|
||
"description": "Поле для сортировки файлов (date - дата, rating - рейтинг, name - имя, random - случайный)."
|
||
},
|
||
"order": {
|
||
"name": "Порядок",
|
||
"description": "Направление сортировки (ascending - по возрастанию, descending - по убыванию)."
|
||
},
|
||
"asset_type": {
|
||
"name": "Тип файла",
|
||
"description": "Фильтровать файлы по типу (all - все, photo - только фото, video - только видео)."
|
||
},
|
||
"min_date": {
|
||
"name": "Минимальная дата",
|
||
"description": "Фильтровать файлы, созданные в эту дату или после (формат ISO 8601)."
|
||
},
|
||
"max_date": {
|
||
"name": "Максимальная дата",
|
||
"description": "Фильтровать файлы, созданные в эту дату или до (формат ISO 8601)."
|
||
}
|
||
}
|
||
},
|
||
"send_telegram_notification": {
|
||
"name": "Отправить уведомление в Telegram",
|
||
"description": "Отправить уведомление в Telegram (текст, фото, видео или медиа-группу).",
|
||
"fields": {
|
||
"bot_token": {
|
||
"name": "Токен бота",
|
||
"description": "Токен Telegram бота (необязательно, если настроен в опциях интеграции)."
|
||
},
|
||
"chat_id": {
|
||
"name": "ID чата",
|
||
"description": "ID чата Telegram для отправки."
|
||
},
|
||
"urls": {
|
||
"name": "URL-адреса",
|
||
"description": "Список URL медиа-файлов с типом (photo/video). Если пусто, отправляет текстовое сообщение. Большие списки автоматически разделяются на несколько медиа-групп."
|
||
},
|
||
"caption": {
|
||
"name": "Подпись",
|
||
"description": "Текст подписи. Для медиа применяется к первому элементу. Для пустых URLs это текст сообщения."
|
||
},
|
||
"reply_to_message_id": {
|
||
"name": "Ответ на",
|
||
"description": "ID сообщения для ответа (необязательно)."
|
||
},
|
||
"disable_web_page_preview": {
|
||
"name": "Отключить предпросмотр ссылок",
|
||
"description": "Отключить предпросмотр ссылок в текстовых сообщениях."
|
||
},
|
||
"parse_mode": {
|
||
"name": "Режим парсинга",
|
||
"description": "Как парсить подпись/текст. Варианты: HTML, Markdown, MarkdownV2, или пустая строка для обычного текста."
|
||
},
|
||
"max_group_size": {
|
||
"name": "Макс. размер группы",
|
||
"description": "Максимальное количество медиа-файлов в одной группе (2-10). Большие списки будут разделены на несколько групп."
|
||
},
|
||
"chunk_delay": {
|
||
"name": "Задержка между группами",
|
||
"description": "Задержка в миллисекундах между отправкой нескольких медиа-групп (0-60000). Полезно для ограничения скорости."
|
||
},
|
||
"wait_for_response": {
|
||
"name": "Ждать ответа",
|
||
"description": "Ждать завершения отправки в Telegram перед возвратом. Установите false для фоновой отправки (автоматизация продолжается немедленно)."
|
||
},
|
||
"max_asset_data_size": {
|
||
"name": "Макс. размер ресурса",
|
||
"description": "Максимальный размер ресурса в байтах. Ресурсы, превышающие этот лимит, будут пропущены. Оставьте пустым для отсутствия ограничения."
|
||
},
|
||
"send_large_photos_as_documents": {
|
||
"name": "Большие фото как документы",
|
||
"description": "Как обрабатывать фото, превышающие лимиты Telegram (10МБ или сумма размеров 10000пкс). Если true, отправлять как документы. Если false, уменьшать для соответствия лимитам."
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|