import os
import sys
import pysrt
import re
from datetime import timedelta
from pyrogram import Client, filters
from pyrogram.types import Message
from pyrogram.types import (InlineKeyboardButton)
from base.utils.database import Database
from base.utils.buttons import subs_btn,auto_inline_panel
from base import ADMINS, Bot, MOVIEO_CLI, DOWNLOAD_DIR, SUBTITLE_DIR, DEFAULT_QUALITIES, QUALITIES_PYRAMID
@Bot.on_message(filters.private & filters.user(ADMINS) & (filters.document | filters.video), group=5)
async def receive_files(_: Client, update: Message):
    user_id = update.from_user.id
    message_id = update.id
    with Database() as db:
        user_db = db.get_user(user_id,'mode,state')
    mode = user_db[0][0]
    state = user_db[0][1]
    try:
        file_id = update.document.file_id
        file_name = update.document.file_name
        file_format = update.document.mime_type
        file_size = update.document.file_size
    except:
        file_id = update.video.file_id
        file_name = update.video.file_name
        file_format = update.video.mime_type
        file_size = update.video.file_size
    if file_format in ['video/mp4','video/x-matroska','video/x-msvideo']:
        with Database() as db:
            user_db = db.get_user(user_id, 'package_id')
        package_id = user_db[0][0]
        if state == 1:
            if mode != 4:
                with Database() as db:
                    db.add_media_task(package_id,message_id,file_id,file_name,file_size)
                await update.reply(f'فایل {file_name} با موفقیت ثبت شد.')
            else:
                buttons = []
                with Database() as db:
                    last_id = db.add_media_task(package_id, message_id, file_id, file_name, file_size)
                buttons.append([InlineKeyboardButton('تغییر نام فایل', f'change_file_name,{last_id}')])
                for quality in DEFAULT_QUALITIES:
                    buttons.append([InlineKeyboardButton(quality, f'{quality},{last_id}')])
                buttons.append([InlineKeyboardButton('آغاز عملیات', f'start_task,{last_id},None')])
                await update.reply(f'عنوان فایل: {file_name}',reply_markup=auto_inline_panel(buttons),reply_to_message_id=message_id)