v 0.2.3
This commit is contained in:
2
Cargo.lock
generated
2
Cargo.lock
generated
@@ -10,7 +10,7 @@ checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ae_anons"
|
name = "ae_anons"
|
||||||
version = "0.2.2"
|
version = "0.2.3"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"askama",
|
"askama",
|
||||||
|
|||||||
25
README.md
25
README.md
@@ -12,13 +12,17 @@
|
|||||||
|
|
||||||
Автоматизированная система для создания спортивных анонсов с использованием шаблонов After Effects через Nexrender, с данными из электронных таблиц Synology Office.
|
Автоматизированная система для создания спортивных анонсов с использованием шаблонов 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
|
||||||
|
|
||||||
- Исправлено отображение имён выходных файлов в веб-интерфейсе
|
- Исправлено отображение имён выходных файлов в веб-интерфейсе
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#![allow(dead_code)]
|
#![allow(dead_code)]
|
||||||
use chrono::{Datelike, NaiveDate};
|
use chrono::{Datelike, NaiveDate};
|
||||||
|
use regex::Regex;
|
||||||
use serde::Serialize;
|
use serde::Serialize;
|
||||||
use serde_json::json;
|
use serde_json::json;
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
@@ -263,10 +264,17 @@ impl JobData {
|
|||||||
fn_parts.push(channel.clone());
|
fn_parts.push(channel.clone());
|
||||||
}
|
}
|
||||||
|
|
||||||
let outfile_name = transliterate(&fn_parts.join("_"), true)
|
let mut outfile_name = transliterate(&fn_parts.join("_"), true)
|
||||||
.replace(' ', "-")
|
.replace(' ', "-")
|
||||||
.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 {
|
Some(Self {
|
||||||
date: data_str,
|
date: data_str,
|
||||||
time: time.clone(),
|
time: time.clone(),
|
||||||
|
|||||||
Reference in New Issue
Block a user