import os
import sys
import requests
from pyrogram import Client, filters
from pyrogram.types import Message
from base import ADMINS, Bot
from base.utils.buttons import media_dubbed_task_panel,main_panel
from base.utils.database import Database

@Bot.on_message(filters.private & filters.user(ADMINS) & filters.text, group=2)
async def audio_link(_: Client, update: Message):
    audio_link = update.text
    user_id = update.from_user.id
    with Database() as db:
        user_db = db.get_user(user_id, 'mode,state')
    mode = user_db[0][0]
    state = user_db[0][1]
    if mode == 3 and state == 2:
        try:
            if 'http' in audio_link:
                with Database() as db:
                    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', 'id,message_id,file_name','AND sub_or_audio IS NULL LIMIT 1')
                    task_id = media_task_db[0][0]
                    message_id = media_task_db[0][1]
                    task_file_name = media_task_db[0][2]
                    db.update_media_task(task_id, 'sub_or_audio', f'{audio_link}')
                await update.reply(f'عنوان فایل: {task_file_name} \nصوت دوبله: {audio_link}',reply_to_message_id=message_id,reply_markup=media_dubbed_task_panel(task_id))
                with Database() as db:
                    media_task_db = db.get_media_task(package_id, 'package_id', 'file_name','AND sub_or_audio IS NULL LIMIT 1')
                if media_task_db:
                    new_task_file_name = media_task_db[0][0]
                    await update.reply(
                        f'لطفا فایل زیرنویس و یا صوت دوبله هماهنگ با فایل {new_task_file_name} را ارسال کنید:',reply_markup=cancel())
                else:
                    with Database() as db:
                        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())
            else:
                await update.reply('لینک ارسالی شما معتبر نیست.')
        except:
            await update.reply('لینک ارسالی شما معتبر نیست.')