/
artyuhovs
/
AIFeedBackTrainingBot
Обзор
Документация
Войти
/
artyuhovs
/
AIFeedBackTrainingBot
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
app/utils/file_utils.py
26 строк
699 B
Codex
Завершить архитектурное оздоровление и исправить итоги
15 июл 2026, 11:05
15 июл 2026, 11:05
c65f9a6
Код
Авторство
О чём код?
from __future__ import annotations import re from pathlib import Path DEFAULT_EXTENSIONS = { "video_note": ".mp4", "voice": ".oga", "audio": ".mp3", "video": ".mp4", "document": ".bin", "text_document": ".txt", } def safe_filename(name: str) -> str: cleaned = re.sub(r"[^A-Za-z0-9._-]+", "_", name).strip("._") return cleaned or "file" def guess_extension(original_file_name: str | None, telegram_file_path: str | None, media_type: str) -> str: for candidate in (original_file_name, telegram_file_path): suffix = Path(candidate or "").suffix.lower() if suffix: return suffix return DEFAULT_EXTENSIONS.get(media_type, ".bin")