Стилистические правки и редактирование оформления
This commit is contained in:
114
README.md
114
README.md
@@ -92,15 +92,15 @@ RUST_LOG=debug cargo run
|
||||
|
||||
### Переменные окружения
|
||||
|
||||
| Переменная | Обязательна | Описание |
|
||||
|------------|-------------|----------|
|
||||
| `NAS_FQDN` | Да | URL NAS Synology с протоколом и портом |
|
||||
| `NAS_USER` | Да | Имя пользователя учетной записи Synology |
|
||||
| `NAS_PASS` | Да | Пароль учетной записи Synology |
|
||||
| `NAS_FILE` | Да | Полный путь к файлу .osheet на NAS |
|
||||
| `NEXRENDER_API_URL` | Да | Конечная точка API сервера Nexrender |
|
||||
| `OUTPUT_FOLDER` | Да | Сетевой путь для рендеренных видео |
|
||||
| `RUST_LOG` | Нет | Уровень детализации логирования (по умолчанию: info) |
|
||||
| Переменная | Обязательна | Описание |
|
||||
|---------------------|-------------|------------------------------------------------------|
|
||||
| `NAS_FQDN` | Да | URL NAS Synology с протоколом и портом |
|
||||
| `NAS_USER` | Да | Имя пользователя учетной записи Synology |
|
||||
| `NAS_PASS` | Да | Пароль учетной записи Synology |
|
||||
| `NAS_FILE` | Да | Полный путь к файлу .osheet на NAS |
|
||||
| `NEXRENDER_API_URL` | Да | Конечная точка API сервера Nexrender |
|
||||
| `OUTPUT_FOLDER` | Да | Сетевой путь для рендеренных видео |
|
||||
| `RUST_LOG` | Нет | Уровень детализации логирования (по умолчанию: info) |
|
||||
|
||||
## Структура электронной таблицы
|
||||
|
||||
@@ -110,11 +110,11 @@ RUST_LOG=debug cargo run
|
||||
|
||||
Связывает названия видов спорта с соответствующими видео пакетами.
|
||||
|
||||
| SPORT | LINK |
|
||||
|-------|------|
|
||||
| Без оформления | \\server\share\path\to\null.mov |
|
||||
| Футбол | \\server\share\path\to\football_pack.mov |
|
||||
| Волейбол | \\server\share\path\to\volleyball_pack.mov |
|
||||
| SPORT | LINK |
|
||||
|----------------|---------------------------------------------|
|
||||
| Без оформления | \\server\share\path\to\null.mov |
|
||||
| Футбол | \\server\share\path\to\football_pack.mov |
|
||||
| Волейбол | \\server\share\path\to\volleyball_pack.mov |
|
||||
|
||||
### Лист "TEAMS"
|
||||
|
||||
@@ -122,20 +122,20 @@ RUST_LOG=debug cargo run
|
||||
|
||||
Если несколько команд в одном виде спорта имеют одинаковые названия, но разные логотипы, используется разделитель хеш # для уникальной идентификации.
|
||||
|
||||
| TEAM | SPORT | LINK |
|
||||
|------|-------|------|
|
||||
| Галатасарай#Turki | Футбол | \\server\share\path\to\galatasaray_football.png |
|
||||
| Галатасарай | Волейбол | \\server\share\path\to\galatasaray_volleyball.png |
|
||||
| Галатасарай#UCL | Волейбол | \\server\share\path\to\galatasaray_ucl.png |
|
||||
| Сомбатей##400 | Футбол | \\server\share\path\to\szombathely.png |
|
||||
| TEAM | SPORT | LINK |
|
||||
|-------------------|-----------|---------------------------------------------------|
|
||||
| Галатасарай#Turki | Футбол | \\server\share\path\to\galatasaray_football.png |
|
||||
| Галатасарай | Волейбол | \\server\share\path\to\galatasaray_volleyball.png |
|
||||
| Галатасарай#UCL | Волейбол | \\server\share\path\to\galatasaray_ucl.png |
|
||||
| Сомбатей##400 | Футбол | \\server\share\path\to\szombathely.png |
|
||||
|
||||
### Лист "CHANELL"
|
||||
|
||||
Сопоставляет названия каналов с их логотипами. Поля заполняются вручную без выпадающих списков.
|
||||
|
||||
| CHANEL | LINK |
|
||||
|--------|------|
|
||||
| КАНАЛ | \\server\share\path\to\channel_logo.png |
|
||||
| CHANEL | LINK |
|
||||
|---------|-----------------------------------------|
|
||||
| КАНАЛ | \\server\share\path\to\channel_logo.png |
|
||||
| TRIUMPH | \\server\share\path\to\triumph_logo.png |
|
||||
|
||||
### Лист "Start"
|
||||
@@ -146,10 +146,10 @@ RUST_LOG=debug cargo run
|
||||
|
||||
**Примечание**: Колонка LEAGUE обязательна для заполнения, но не имеет выпадающего списка. Проверка орфографии и опечаток отсутствует!
|
||||
|
||||
| STATE | TRIPPLE | DATA | TIME | SPORT | LEAGUE | CHANEL | TEAM A | TEAM B |
|
||||
|-------|---------|------|------|-------|--------|--------|--------|--------|
|
||||
| TRUE | TRUE | 27.2.2026 | 23:40 | Футбол | Чемпионат Португалии | START | Спортинг#ll#550 | Эшторил#ll#550 |
|
||||
| FALSE | TRUE | 28.2.2026 | 12:55 | Волейбол | Чемпионат Турции. Женщины | TRIUMPH | Бешикташ | Галатасарай#Turki |
|
||||
| STATE | TRIPPLE | DATA | TIME | SPORT | LEAGUE | CHANEL | TEAM A | TEAM B |
|
||||
|--------|---------|-----------|-------|----------|---------------------------|---------|-----------------|-------------------|
|
||||
| TRUE | TRUE | 27.2.2026 | 23:40 | Футбол | Чемпионат Португалии | START | Спортинг#ll#550 | Эшторил#ll#550 |
|
||||
| FALSE | TRUE | 28.2.2026 | 12:55 | Волейбол | Чемпионат Турции. Женщины | TRIUMPH | Бешикташ | Галатасарай#Turki |
|
||||
|
||||
### Формат имен команд
|
||||
|
||||
@@ -186,7 +186,7 @@ RUST_LOG=debug cargo run
|
||||
|
||||
Рендерные видео сохраняются в `OUTPUT_FOLDER` по следующему шаблону именования:
|
||||
|
||||
```
|
||||
```shell
|
||||
YYYYMMDD_Sport_League_TeamA_TeamB_Channel[_Variant].mp4
|
||||
```
|
||||
|
||||
@@ -214,24 +214,24 @@ YYYYMMDD_Sport_League_TeamA_TeamB_Channel[_Variant].mp4
|
||||
|
||||
### Типы шаблонов
|
||||
|
||||
| Файл шаблона | Назначение |
|
||||
|--------------|------------|
|
||||
| Файл шаблона | Назначение |
|
||||
|------------------------|---------------------------------|
|
||||
| `PackShot_DOUBLE.aepx` | Сопоставление с двумя командами |
|
||||
| `PackShot_SINGLE.aepx` | Анонсы для одной команды |
|
||||
| `PackShot_SINGLE.aepx` | Анонсы для одной команды |
|
||||
|
||||
### Обязательные слои
|
||||
|
||||
| Имя слоя | Тип | Описание |
|
||||
|----------|-----|----------|
|
||||
| DATA | Text | Отображение даты (автоматически подстраивается) |
|
||||
| TIME / TIME_H / TIME_M | Text | Отображение времени |
|
||||
| LEAGUE | Text | Название лиги |
|
||||
| SPORT | Text | Категория спорта |
|
||||
| TEAMS | Text | Скомбинированные имена команд |
|
||||
| TEAM_A_LOGO | Image | Логотип домашней команды |
|
||||
| TEAM_B_LOGO | Image | Логотип гостевой команды |
|
||||
| CHANEL | Image | Логотип канала |
|
||||
| TOP | Video | Наложение видео оформления |
|
||||
| Имя слоя | Тип | Описание |
|
||||
|------------------------|-------|-------------------------------------------------|
|
||||
| DATA | Text | Отображение даты (автоматически подстраивается) |
|
||||
| TIME / TIME_H / TIME_M | Text | Отображение времени |
|
||||
| LEAGUE | Text | Название лиги |
|
||||
| SPORT | Text | Категория спорта |
|
||||
| TEAMS | Text | Скомбинированные имена команд |
|
||||
| TEAM_A_LOGO | Image | Логотип домашней команды |
|
||||
| TEAM_B_LOGO | Image | Логотип гостевой команды |
|
||||
| CHANEL | Image | Логотип канала |
|
||||
| TOP | Video | Наложение видео оформления |
|
||||
|
||||
### Настройки композиции
|
||||
|
||||
@@ -244,19 +244,19 @@ YYYYMMDD_Sport_League_TeamA_TeamB_Channel[_Variant].mp4
|
||||
|
||||
### Частые проблемы
|
||||
|
||||
**Ошибка подключения к NAS**
|
||||
#### Ошибка подключения к NAS
|
||||
|
||||
- Проверьте, что `NAS_FQDN` включает протокол и порт (например, `https://nas.example.com:5001`)
|
||||
- Проверьте сетевую связность с NAS
|
||||
- Убедитесь, что сервисы File Station и Office включены
|
||||
|
||||
**Файл не найден**
|
||||
#### Файл не найден**
|
||||
|
||||
- Убедитесь, что путь в `NAS_FILE` точно соответствует пути в Synology Drive
|
||||
- Путь должен начинаться с `/Team Folder/` для рабочих папок
|
||||
- Проверьте права доступа к файлу для учетной записи сервиса
|
||||
|
||||
**Ошибка отправки задания Nexrender**
|
||||
#### Ошибка отправки задания Nexrender
|
||||
|
||||
- Подтвердите доступность сервера Nexrender
|
||||
- Убедитесь, что `NEXRENDER_API_URL` правильный
|
||||
@@ -295,7 +295,7 @@ RUST_LOG=debug ./target/release/ae_anons
|
||||
|
||||
### Структура кода
|
||||
|
||||
```
|
||||
```shell
|
||||
src/
|
||||
├── main.rs # Точка входа и оркестрация приложения
|
||||
├── config.rs # Управление конфигурацией
|
||||
@@ -312,17 +312,17 @@ src/
|
||||
|
||||
## Зависимости
|
||||
|
||||
| Crate | Версия | Назначение |
|
||||
|-------|--------|------------|
|
||||
| reqwest | 0.12 | HTTP клиент для коммуникации API |
|
||||
| serde / serde_json | 1.0 | Сериализация JSON |
|
||||
| calamine | 0.26 | Парсинг файлов Excel |
|
||||
| chrono | 0.4 | Обработка дат и времени |
|
||||
| tokio | 1.0 | Асинхронная среда выполнения |
|
||||
| dotenv | 0.15 | Конфигурация через переменные окружения |
|
||||
| log / env_logger | 0.11 | Инфраструктура логирования |
|
||||
| thiserror | 2.0 | Определение типов ошибок |
|
||||
| anyhow | 1.0 | Обработка ошибок |
|
||||
| Crate | Версия | Назначение |
|
||||
|--------------------|--------|-----------------------------------------|
|
||||
| reqwest | 0.12 | HTTP клиент для коммуникации API |
|
||||
| serde / serde_json | 1.0 | Сериализация JSON |
|
||||
| calamine | 0.26 | Парсинг файлов Excel |
|
||||
| chrono | 0.4 | Обработка дат и времени |
|
||||
| tokio | 1.0 | Асинхронная среда выполнения |
|
||||
| dotenv | 0.15 | Конфигурация через переменные окружения |
|
||||
| log / env_logger | 0.11 | Инфраструктура логирования |
|
||||
| thiserror | 2.0 | Определение типов ошибок |
|
||||
| anyhow | 1.0 | Обработка ошибок |
|
||||
|
||||
## Лицензия
|
||||
|
||||
|
||||
Reference in New Issue
Block a user