import asyncio from pathlib import Path from typing import Optional from telegram import Message from telegram.constants import ParseMode from telegram.error import TelegramError import logging logger = logging.getLogger(__name__) async def send_video(message: Message, filepath: Path, title: Optional[str] = None, *args, **kwargs): """Универсальная функция - принимает любые аргументы""" try: with open(filepath, 'rb') as video_file: await message.reply_video( video=video_file, caption=title or "Видео", supports_streaming=True, parse_mode=ParseMode.HTML, **kwargs # ✅ принимает любые доп. аргументы ) except TelegramError as e: logger.error(f"Ошибка отправки видео: {e}") await message.reply_text("❌ Ошибка при отправке видео") async def send_audio(message: Message, filepath: Path, title: Optional[str] = None, *args, **kwargs): try: with open(filepath, 'rb') as audio_file: await message.reply_audio( audio=audio_file, title=title or "Аудио", parse_mode=ParseMode.HTML, **kwargs ) except TelegramError as e: logger.error(f"Ошибка отправки аудио: {e}") await message.reply_text("❌ Ошибка при отправке аудио") async def send_document(message: Message, filepath: Path, *args, **kwargs): try: with open(filepath, 'rb') as doc_file: await message.reply_document( document=doc_file, **kwargs ) except TelegramError as e: logger.error(f"Ошибка отправки документа: {e}") await message.reply_text("❌ Ошибка при отправке документа") async def send_photo(message: Message, filepath: Path, *args, **kwargs): try: with open(filepath, 'rb') as photo_file: await message.reply_photo( photo=photo_file, **kwargs ) except TelegramError as e: logger.error(f"Ошибка отправки фото: {e}") await message.reply_text("❌ Ошибка при отправке фото")