diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..de92aed --- /dev/null +++ b/.env.example @@ -0,0 +1,12 @@ +# Synology NAS +NAS_FQDN=https://your-nas.domain.com +NAS_USER=your_username +NAS_PASS=your_password +NAS_FILE=/team-folders/path/to/your/file.osheet + +# Nexrender +NEXRENDER_API_URL=http://your-nexrender-server:3000/api/v1/jobs +OUTPUT_FOLDER=//your-storage/path/to/output + +# Logging +RUST_LOG=info \ No newline at end of file diff --git a/README.md b/README.md index e8f833e..9b7dcb3 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# AE Anons - Автоматизированный генератор спортивных анонсов After Effects +# AE Anons - Автоматизированный генератор спортивных анонсов в After Effects [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Rust](https://img.shields.io/badge/Rust-1.70%2B-orange.svg)](https://www.rust-lang.org/) [![Status](https://img.shields.io/badge/status-production-green.svg)](https://git.tvstart.ru/lexx/AE_Anons) @@ -6,7 +6,9 @@ ## Обзор -AE Anons автоматизирует создание видеороликов спортивных анонсов путем: +AE Anons — это CLI-утилита на Rust, которая выступает как **интеллектуальный генератор заданий** +для [Nexrender](https://github.com/inlife/nexrender) — опенсорсного оркестратора рендеринга +After Effects (лицензия MIT). 1. Подключения к NAS Synology для получения данных расписания из файлов офисных таблиц (.osheet) 2. Парсинга Excel данных, содержащих информацию о спортивных событиях, командах, каналах и временных интервалах @@ -15,11 +17,11 @@ AE Anons автоматизирует создание видеороликов ## Особенности -- **Интеграция с Synology**: Плавная аутентификация и загрузка файлов с NAS Synology +- **Интеграция с Synology**: Аутентификация и загрузка файлов с NAS Synology - **Экспорт офисных таблиц**: Автоматическое преобразование файлов .osheet в формат Excel - **Гибкий парсинг данных**: Динамический парсинг листов с обнаружением заголовков - **Множественная генерация вариантов**: Создание "Сегодня", "Завтра" и датированных версий для каждого анонса -- **Умное управление логотипами**: Автоматическое разрешение и масштабирование логотипов на основе связей команд/спорта +- **Умное управление логотипами**: Автоматическое разрешение и масштабирование логотипов на основе хэштегов `#` в имени команды - **Оркестрация заданий Nexrender**: Автоматическая отправка, мониторинг и очистка заданий - **Профессиональное логирование**: Структурированный журнал с возможностью настройки уровня детализации - **Конфигурация через переменные окружения**: Все параметры управляются через файл `.env` @@ -27,9 +29,9 @@ AE Anons автоматизирует создание видеороликов ## Предварительные требования - Rust 1.70 или выше -- Доступ к NAS Synology с включенными File Station и Office -- Экземпляр сервера Nexrender -- Шаблоны After Effects, настроенные на узлах рендеринга (формат Adobe After Effects 2024 .aepx) +- Доступ к NAS Synology с установленными и включенными пакетами File Station и Office +- Экземпляр _server_ и _worker_(не менее одного) Nexrender +- Шаблоны After Effects, настроенные на _worker_ (формат Adobe After Effects 2024 .aepx) ## Установка @@ -50,7 +52,13 @@ cargo build --release ### 3. Настройка окружения -Создайте файл `.env` в корне проекта: +Скопируйте пример конфигурации и заполните своими данными: + +```bash +cp .env.example .env +``` + +Затем отредактируйте файл .env: ```env # Synology NAS @@ -257,7 +265,7 @@ YYYYMMDD_Sport_League_TeamA_TeamB_Channel[_Variant].mp4 - Проверьте сетевую связность с NAS - Убедитесь, что сервисы File Station и Office включены -#### Файл не найден** +#### Файл не найден - Убедитесь, что путь в `NAS_FILE` точно соответствует пути в Synology Drive - Путь должен начинаться с `/Team Folder/` для рабочих папок @@ -303,20 +311,18 @@ RUST_LOG=debug ./target/release/ae_anons ### Структура кода ```shell -src/ -├── main.rs # Точка входа и оркестрация приложения -├── config.rs # Управление конфигурацией -├── nexrender.rs # Генерация заданий Nexrender и структура данных -└── synology.rs # Клиент API Synology +ae_anons/ +├── Cargo.toml +├── LICENSE +├── README.md +├── .env.example +└── src/ + ├── main.rs # Точка входа и оркестрация приложения + ├── config.rs # Управление конфигурацией + ├── nexrender.rs # Генерация заданий Nexrender и структура данных + └── synology.rs # Клиент API Synology ``` -### Планируемые новые возможностеи - -1. Расширь `JobData` в `nexrender.rs` для новых полей данных -2. Обновить логику парсинга листов при необходимости добавления новых колонок -3. Добавьть соответствующие слои After Effects в шаблоны -4. Обновите метод `to_nexrender_job()` с новыми сопоставлениями ресурсов - ## Зависимости | Crate | Версия | Назначение | @@ -331,22 +337,36 @@ src/ | thiserror | 2.0 | Определение типов ошибок | | anyhow | 1.0 | Обработка ошибок | +### Планируемые новые возможности + +1. Расширить `JobData` в `nexrender.rs` для новых полей данных +2. Обновить логику парсинга листов при необходимости добавления новых колонок +3. Добавить соответствующие слои After Effects в шаблоны +4. Обновите метод `to_nexrender_job()` с новыми сопоставлениями ресурсов + +## 🙏 Благодарности + +Особая благодарность проекту **[Nexrender](https://github.com/inlife/nexrender)** +([@inlife](https://github.com/inlife) и контрибьюторам) за создание надёжной платформы +для автоматизации After Effects. + ## Лицензия -This project is licensed under the **MIT License** - see the [LICENSE](LICENSE) file for details. +**AE Anons** — [MIT License](LICENSE) +**Nexrender** — [MIT License](https://github.com/inlife/nexrender/blob/master/LICENSE) -### What does this mean? +Обе лицензии MIT обеспечивают полную свободу использования и модификации кода. -- ✅ **Commercial use** - You can use this in your company -- ✅ **Modification** - You can change the code as you wish -- ✅ **Distribution** - You can share it with others -- ✅ **Private use** - You can use it privately +**Разрешается:** -The only requirement is to keep the copyright notice and license text. +- ✅ Использовать в коммерческих целях +- ✅ Изменять исходный код +- ✅ Распространять копии +- ✅ Использовать приватно ---- +**Требуется:** -Made with 🦀 Rust and ☕ coffee +- Сохранять копирайт и текст лицензии ## Поддержка @@ -366,3 +386,7 @@ Made with 🦀 Rust and ☕ coffee - Создание множественных вариантов - Автоматические настройки размера шрифта и позиции - Умное масштабирование логотипов по целевому размеру + +--- + +Made with 🦀 Rust and ☕ coffee