import os
import sys
from pyrogram import Client, filters
from pyrogram.types import Message
from base import ADMINS, Bot, THUMB_DIR
from base.utils.buttons import main_panel,operation_btns,cancel
from base.utils.database import Database

@Bot.on_message(filters.private & filters.user(ADMINS) & filters.text, group=1)
async def commands(_: Client, update: Message):
    user_id = update.from_user.id
    text = update.text
    with Database() as db:
        user_db = db.get_user(user_id)
        if not user_db:
            db.add_user(user_id)
        user_db = db.get_user(user_id,'mode')
        mode = user_db[0][0]
    if mode == 0:
        if text == '/start':
            await update.reply('به موویو اسپنر خوش آمدید.',reply_markup=main_panel())
        elif text in ['سافت ساب فارسی','هارد ساب فارسی','سافت ساب انگلیسی','هارد ساب انگلیسی','دوبله فارسی','تغییر کیفیت']:
            with Database() as db:
                if text == 'سافت ساب فارسی':
                    db.update_user(user_id,'mode',1)
                    package_id = db.add_package(user_id, 1)
                elif text == 'هارد ساب فارسی':
                    db.update_user(user_id, 'mode', 2)
                    package_id = db.add_package(user_id, 2)
                elif text == 'سافت ساب انگلیسی':
                    db.update_user(user_id,'mode',5)
                    package_id = db.add_package(user_id, 5)
                elif text == 'هارد ساب انگلیسی':
                    db.update_user(user_id, 'mode', 6)
                    package_id = db.add_package(user_id, 6)
                elif text == 'دوبله فارسی':
                    db.update_user(user_id, 'mode', 3)
                    package_id = db.add_package(user_id, 3)
                elif text == 'تغییر کیفیت':
                    db.update_user(user_id, 'mode', 4)
                    package_id = db.add_package(user_id, 4)
                db.update_user(user_id, 'state', 1)
                db.update_user(user_id, 'package_id', package_id)
            await update.reply('لطفا فایل های خود را ارسال کنید:',reply_markup=operation_btns())
    else:
        if text == 'اتمام فایل ها':
            if mode != 4:
                with Database() as db:
                    db.update_user(user_id,'state',2)
                    user_db = db.get_user(user_id, 'package_id')
                    package_id = user_db[0][0]
                    media_task_db = db.get_media_task(package_id,'package_id','file_name','AND sub_or_audio IS NULL')
                    file_name = media_task_db[0][0]
                await update.reply(f'لطفا فایل زیرنویس و یا صوت دوبله هماهنگ با فایل {file_name} را ارسال کنید:',reply_markup=cancel())
            else:
                with Database() as db:
                    db.update_user(user_id,'state',0)
                    db.update_user(user_id, 'mode', 0)
                    db.update_user(user_id, 'package_id', None)
                await update.reply('به موویو اسپنر خوش آمدید.', reply_markup=main_panel())
        elif text == 'انصراف':
            with Database() as db:
                user_db = db.get_user(user_id, 'package_id')
                package_id = user_db[0][0]
                db.delete_media_task(package_id,'package_id','AND sub_or_audio IS NULL')
                db.update_user(user_id, 'mode', 0)
                db.update_user(user_id, 'state', 0)
                db.update_user(user_id, 'package_id', None)
            await update.reply('به موویو اسپنر خوش آمدید.', reply_markup=main_panel())
