diff --git a/Cargo.lock b/Cargo.lock index 2b23e24..169c52d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -10,7 +10,7 @@ checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" [[package]] name = "ae_anons" -version = "0.2.2" +version = "0.2.3" dependencies = [ "anyhow", "askama", diff --git a/README.md b/README.md index 5a37a0b..df2d69b 100644 --- a/README.md +++ b/README.md @@ -12,13 +12,17 @@ Автоматизированная система для создания спортивных анонсов с использованием шаблонов After Effects через Nexrender, с данными из электронных таблиц Synology Office. -## Новое в версии 0.2.2 +## Новое в версии 0.2.3 -- **Веб-интерфейс**: Удобное управление заданиями через браузер -- **Мониторинг в реальном времени**: Отслеживание статуса всех заданий -- **Управление очередью**: Остановка, очистка и генерация заданий из веб-интерфейса -- **Тёмная/светлая тема**: Автоматическое определение системной темы -- **Сортировка и фильтрация**: Удобная работа с большим количеством заданий +- Веб-интерфейс с настраиваемым портом (WEB_PORT) +- Тёмная/светлая тема с автоопределением ОС +- Сортировка по всем колонкам +- Фильтрация по имени файла/UID +- Остановка всех активных заданий +- Автообновление каждые 60 секунд +- Улучшенное debug-логирование +- Исправлена обработка UNC/SMB путей +- Нормализация множественных пробелов в именах файлов" ## Обзор @@ -602,7 +606,14 @@ ae_anons/ ## История изменений -### v0.2.2 (текущая) +### v0.2.3 (текущая) + +- Веб-интерфейс с настраиваемым портом (WEB_PORT) +- Улучшенное debug-логирование +- Исправлена обработка UNC/SMB путей +- Нормализация множественных пробелов в именах файлов" + +### v0.2.2 - Исправлено отображение имён выходных файлов в веб-интерфейсе diff --git a/src/nexrender.rs b/src/nexrender.rs index bd7e29b..c1db9f0 100644 --- a/src/nexrender.rs +++ b/src/nexrender.rs @@ -1,5 +1,6 @@ #![allow(dead_code)] use chrono::{Datelike, NaiveDate}; +use regex::Regex; use serde::Serialize; use serde_json::json; use std::collections::HashMap; @@ -263,10 +264,17 @@ impl JobData { fn_parts.push(channel.clone()); } - let outfile_name = transliterate(&fn_parts.join("_"), true) + let mut outfile_name = transliterate(&fn_parts.join("_"), true) .replace(' ', "-") .replace('\'', ""); + // Если 3 и более дефисов подряд -> заменяем на один + let re = Regex::new(r"-{3,}").unwrap(); + outfile_name = re.replace_all(&outfile_name, "-").to_string(); + + // Убираем дефисы в начале и конце + outfile_name = outfile_name.trim_matches('-').to_string(); + Some(Self { date: data_str, time: time.clone(),