Compare commits
11 Commits
4eb7bc76c2
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4edbbcf23a | ||
|
|
289be4717a | ||
|
|
9102ee8e93 | ||
| 5e1d378cc8 | |||
|
|
9fc05e08fa | ||
|
|
65b0b63cca | ||
|
|
6aa58afd71 | ||
|
|
f0132475f2 | ||
|
|
795b4a8600 | ||
|
|
a894821be5 | ||
|
|
dc23a315de |
@@ -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")
|
||||||
|
|||||||
32
Auto_Anons_Generator.service
Normal file
32
Auto_Anons_Generator.service
Normal 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
|
||||||
69
README.md
69
README.md
@@ -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
|
||||||
Reference in New Issue
Block a user