|
import re |
|
import logging |
|
from pyrogram import Client, filters |
|
from info import DELETE_CHANNELS |
|
from database.ia_filterdb import Media, unpack_new_file_id |
|
|
|
logger = logging.getLogger(__name__) |
|
|
|
media_filter = filters.document | filters.video | filters.audio |
|
|
|
|
|
@Client.on_message(filters.chat(DELETE_CHANNELS) & media_filter) |
|
async def deletemultiplemedia(bot, message): |
|
"""Delete Multiple files from database""" |
|
|
|
for file_type in ("document", "video", "audio"): |
|
media = getattr(message, file_type, None) |
|
if media is not None: |
|
break |
|
else: |
|
return |
|
|
|
file_id, file_ref = unpack_new_file_id(media.file_id) |
|
|
|
result = await Media.collection.delete_one({ |
|
'_id': file_id, |
|
}) |
|
if result.deleted_count: |
|
logger.info('File is successfully deleted from database.') |
|
else: |
|
file_name = re.sub(r"(_|\-|\.|\+)", " ", str(media.file_name)) |
|
result = await Media.collection.delete_many({ |
|
'file_name': file_name, |
|
'file_size': media.file_size, |
|
'mime_type': media.mime_type |
|
}) |
|
if result.deleted_count: |
|
logger.info('File is successfully deleted from database.') |
|
else: |
|
result = await Media.collection.delete_many({ |
|
'file_name': media.file_name, |
|
'file_size': media.file_size, |
|
'mime_type': media.mime_type |
|
}) |
|
if result.deleted_count: |
|
logger.info('File is successfully deleted from database.') |
|
else: |
|
logger.info('File not found in database.') |
|
|