Compare commits

..

11 Commits

Author SHA1 Message Date
Alexey Barabanov
4edbbcf23a Update README.md with processing results section 2025-11-20 17:01:27 +03:00
Alexey Barabanov
289be4717a Обновление 2025-11-20 16:42:35 +03:00
Alexey Barabanov
9102ee8e93 ПричЁсинг 2025-11-13 15:07:49 +03:00
5e1d378cc8 Update README.md 2025-11-13 10:53:37 +00:00
Alexey Barabanov
9fc05e08fa Добавленны команды для установки и проверки логов 2025-11-13 13:44:29 +03:00
Alexey Barabanov
65b0b63cca Изменена работа с окружением 2025-11-13 13:38:42 +03:00
Alexey Barabanov
6aa58afd71 Изменён SyslogIdentifier на AFS 2025-11-13 13:37:33 +03:00
Alexey Barabanov
f0132475f2 Убранна "Защита сервиса" 2025-11-13 13:26:40 +03:00
Alexey Barabanov
795b4a8600 please use MemoryMax= instead. Support for MemoryLimit= will be removed soon. 2025-11-13 12:06:27 +03:00
Alexey Barabanov
a894821be5 MemoryLimit=1G 2025-11-13 11:57:48 +03:00
Alexey Barabanov
dc23a315de add .service 2025-11-13 11:55:48 +03:00
3 changed files with 101 additions and 3 deletions

View File

@@ -40,8 +40,7 @@ if PLACEHOLDER:
else: else:
return fake_resp("error") return fake_resp("error")
pprint(f"Загрузка файла окружения = {load_dotenv(dotenv_path="/mnt/aescript/.env",verbose=True)}",) pprint(f"Локальный файл окружения ={load_dotenv(verbose=True)}")
load_dotenv(dotenv_path="/mnt/aescript/.env")
NAS_USER = os.getenv("NAS_USER") NAS_USER = os.getenv("NAS_USER")
NAS_PASS = os.getenv("NAS_PASS") NAS_PASS = os.getenv("NAS_PASS")
NAS_IP = os.getenv("NAS_IP") NAS_IP = os.getenv("NAS_IP")

View File

@@ -0,0 +1,32 @@
[Unit]
Description=Auto Anons Generator
Documentation=https://git.tvstart.ru/lexx/AE_script
After=network.target
Wants=network.target
[Service]
Type=simple
User=eng
Group=eng
WorkingDirectory=/home/eng/
Environment=PATH=/home/eng/.venv/bin/
EnvironmentFile=/mnt/aescript/.env
ExecStart=python3 AF_script_test_4.py
# Лимиты ресурсов
MemoryMax=1G
CPUQuota=80%
# Логирование
StandardOutput=journal
StandardError=journal
SyslogIdentifier=AFS
# Поведение при перезапуске
Restart=always
RestartSec=10
StartLimitInterval=300
StartLimitBurst=5
[Install]
WantedBy=multi-user.target

View File

@@ -1,2 +1,69 @@
# AF_script ## Описание *AF_script*
`AF_script_test_4.py` — это скрипт, написанный на Python, который автоматизирует процесс создания анонсов спортивных событий. Он использует данные из Excel-файла и отправляет их на рендеринг для создания видеоанонсов.
### Основные функции:
1. **Загрузка данных**:
- Скрипт загружает данные из Synology NAS с помощью API.
- Парсит данные из различных листов Excel-файла (например, `Start`, `SPORT`, `TEAMS`).
2. **Обработка данных**:
- Создает словари с необходимыми данными для каждого анонса.
- Генерирует имена файлов для выходных видео на основе данных.
3. **Рендеринг видео**:
- Формирует запросы к API рендера с необходимыми параметрами (например, шаблон, текст, логотипы команд).
- Отправляет запросы на рендеринг и отслеживает состояние задач.
- Уведомляет пользователя о ходе обработки через Telegram.
4. **Масштабирование логотипов**:
Пример кода, который масштабирует логотип команды "B":
```python
if data["team_b_logo_res"]:
payload["assets"].append(
{
"property": "scale",
"type": "data",
"expression": "if (width > height) {max_size = width;} else {max_size = height;} var real_size = "
+ data["team_b_logo_res"][0]
+ "/max_size*100;[real_size,real_size]",
"layerName": "TEAM_B_LOGO",
}
)
logger.info(
f"{data['team_b']} logo was resized to {data['team_b_logo_res'][0]}"
)
bot.send_message(
message.chat.id,
f"<b>{data['team_b']}</b> маштабирован под <b>{data['team_b_logo_res'][0]}</b> пикселей",
parse_mode=["html"],
)
```
Этот код проверяет, установлен ли параметр `team_b_logo_res`, и если да, то добавляет в запрос на рендеринг инструкцию для масштабирования логотипа команды "B" до заданного размера. Затем записывает информацию о масштабировании в лог и отправляет уведомление пользователю через Telegram.
5. **Обработка результатов**:
После завершения обработки отправляет сообщения в Telegram о готовности анонсов и их состоянии.
### Команды для управления:
- `/help`, `/start`: Отображает список доступных команд.
- `/чёкак`, `/status`: Показывает количество задач, находящихся в очереди.
- `/харе`, `/stop`: Отменяет все текущие задачи рендера.
- `/ибаш`, `/ibash`: Начинает обработку новых задач на основе данных из Excel-файла.
### Использование:
1. **Установка**:
- Копируйте сервисный файл в директорию системных сервисов и обновите список сервисов.
```shell
sudo cp ~/main/Auto_Anons_Generator.service /etc/systemd/system/Auto_Anons_Generator.service
systemctl daemon-reload
```
- Запустите сервис:
```shell
systemctl start Auto_Anons_Generator.service
```
2. **Проверка логов**:
```shell
sudo journalctl -t AFS