/
Eugeny
/
MailReceiptScripts_Python
Обзор
Документация
Войти
/
Eugeny
/
MailReceiptScripts_Python
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
utils.py
34 строки
1 KB
Eugeny
upload files
21 дек 2025, 12:51
21 дек 2025, 12:51
a6a057b
Код
Авторство
О чём код?
import re import os from email.header import decode_header from typing import Optional from config import Config from logger import logger def decode_str(s: Optional[str]) -> str: """Декодирует закодированные заголовки.""" if not s: return "" try: decoded_parts = decode_header(s) result = [] for part, encoding in decoded_parts: if isinstance(part, bytes): result.append(part.decode(encoding or 'utf-8', errors='replace')) else: result.append(part) return ''.join(result) except Exception as e: logger.warning(f"Ошибка декодирования строки: {e}") return s def sanitize_filename(filename: str) -> str: """Очищает имя файла от недопустимых символов.""" sanitized = re.sub(r'[<>:"/\\|?*\x00-\x1f]', '_', filename) sanitized = sanitized.strip('. ') return sanitized[:255] if len(sanitized) > 255 else sanitized def is_allowed_extension(filename: str) -> bool: """Проверяет, разрешено ли расширение файла.""" ext = os.path.splitext(filename)[1].lower() return ext in Config.ALLOWED_EXTENSIONS