1.1.7 я ебал блять писать комиты

This commit is contained in:
Verum
2025-02-26 05:49:14 +07:00
parent 9261f46516
commit 3ad6ab74c3

View File

@@ -4,7 +4,7 @@
from aiogram import Router, types, F from aiogram import Router, types, F
from aiogram.enums import ChatAction from aiogram.enums import ChatAction
from aiogram.filters import Command from aiogram.filters import Command
from aiogram.types import InputMediaPhoto from aiogram.types import InputMediaPhoto, InputMediaVideo, InputMediaDocument
from BotLibrary import Logs, valid_url, username from BotLibrary import Logs, valid_url, username
from ProjectsFiles import BotVar from ProjectsFiles import BotVar
@@ -17,7 +17,7 @@ __all__ = ("CommandHandler",)
class CommandHandler: class CommandHandler:
def __init__(self, name: str, keywords: list, func=None, text_msg: str = None, chat_action: bool = False, def __init__(self, name: str, keywords: list, func=None, text_msg: str = None, chat_action: bool = False,
description: str = "Описание команды", tg_links: bool = False, description: str = "Описание команды", tg_links: bool = False,
keyboard=None, prefix=BotVar.prefix, callbackdata=None, keyboard=None, prefix=BotVar.prefix, callbackdata=None, only_admin: bool = False,
ignore_case: bool = True, activate_keywoards: bool = True, ignore_case: bool = True, activate_keywoards: bool = True,
activate_commands: bool = True, activate_callback: bool = True, activate_commands: bool = True, activate_callback: bool = True,
media: str = "message", path_to_media=None, parse_mode: str = BotVar.parse_mode, media: str = "message", path_to_media=None, parse_mode: str = BotVar.parse_mode,
@@ -37,6 +37,7 @@ class CommandHandler:
self.media = media.lower() self.media = media.lower()
self.protect = protect self.protect = protect
self.only_admin = only_admin
self.func = func self.func = func
# Поддержка до 10 медиафайлов через список # Поддержка до 10 медиафайлов через список
@@ -77,15 +78,14 @@ class CommandHandler:
reply_markup=self.keyboard() if self.keyboard else None, reply_markup=self.keyboard() if self.keyboard else None,
parse_mode=self.parse_mode, parse_mode=self.parse_mode,
disable_notification=self.disable_notification, disable_notification=self.disable_notification,
has_protected_content=self.protect, protect_content=self.protect,
) )
if self.chat_action: if self.chat_action:
await message.bot.send_chat_action( await message.bot.send_chat_action(
chat_id=message.chat.id, chat_id=message.chat.id,
action=ChatAction.TYPING, action=ChatAction.TYPING,
) )
else: elif self.media == "photo" and len(self.path_to_media) > 1:
if self.media == "photo" and len(self.path_to_media) > 1:
# Отправка медиагруппы для фотографий # Отправка медиагруппы для фотографий
media_group = [] media_group = []
for media_path in self.path_to_media: for media_path in self.path_to_media:
@@ -102,8 +102,7 @@ class CommandHandler:
await message.reply_media_group( await message.reply_media_group(
media=media_group, media=media_group,
disable_notification=self.disable_notification, disable_notification=self.disable_notification,
has_protected_content=self.protect, protect_content=self.protect,
) )
# Отправка клавиатуры отдельным сообщением, если есть # Отправка клавиатуры отдельным сообщением, если есть
if self.keyboard: if self.keyboard:
@@ -117,6 +116,68 @@ class CommandHandler:
chat_id=message.chat.id, chat_id=message.chat.id,
action=ChatAction.UPLOAD_PHOTO, action=ChatAction.UPLOAD_PHOTO,
) )
elif self.media == "video" and len(self.path_to_media) > 1:
# Отправка медиагруппы для видео
media_group = []
for media_path in self.path_to_media:
url = valid_url(media_path)
if url:
media_group.append(InputMediaVideo(media=media_path))
else:
media_group.append(InputMediaVideo(media=types.FSInputFile(path=media_path)))
# Добавляем подпись и клавиатуру к последнему элементу
media_group[-1].caption = self.text_msg
media_group[-1].parse_mode = self.parse_mode
await message.reply_media_group(
media=media_group,
disable_notification=self.disable_notification,
protect_content=self.protect,
)
# Отправка клавиатуры отдельным сообщением, если есть
if self.keyboard:
await message.reply(
text=" ",
reply_markup=self.keyboard(),
disable_notification=self.disable_notification,
)
if self.chat_action:
await message.bot.send_chat_action(
chat_id=message.chat.id,
action=ChatAction.UPLOAD_VIDEO,
)
elif self.media == "file" and len(self.path_to_media) > 1:
# Отправка медиагруппы для файлов
media_group = []
for media_path in self.path_to_media:
url = valid_url(media_path)
if url:
media_group.append(InputMediaDocument(media=media_path))
else:
media_group.append(InputMediaDocument(media=types.FSInputFile(path=media_path)))
# Добавляем подпись и клавиатуру к последнему элементу
media_group[-1].caption = self.text_msg
media_group[-1].parse_mode = self.parse_mode
await message.reply_media_group(
media=media_group,
disable_notification=self.disable_notification,
protect_content=self.protect,
)
# Отправка клавиатуры отдельным сообщением, если есть
if self.keyboard:
await message.reply(
text=" ",
reply_markup=self.keyboard(),
disable_notification=self.disable_notification,
)
if self.chat_action:
await message.bot.send_chat_action(
chat_id=message.chat.id,
action=ChatAction.UPLOAD_DOCUMENT,
)
else: else:
# Одиночное медиа или другие типы # Одиночное медиа или другие типы
for idx, media_path in enumerate(self.path_to_media): for idx, media_path in enumerate(self.path_to_media):