import requests
import time
import base64

API_KEY = "0af7dce2eeb95023d9746f6cffaca9a4"

def solve_image(image_bytes):
    """تصویر کپچا را به 2Captcha می‌فرستد و متن حل شده را برمی‌گرداند"""
    try:
        b64 = base64.b64encode(image_bytes).decode('utf-8')
        
        # 1. ارسال تسک
        res = requests.post("http://2captcha.com/in.php", data={
            'key': API_KEY,
            'method': 'base64',
            'body': b64,
            'json': 1
        }, timeout=10).json()
        
        if res.get('status') != 1:
            print(f"[2Captcha Error] {res.get('request')}")
            return None
            
        req_id = res.get('request')
        
        # 2. منتظر ماندن برای حل شدن (Polling)
        for _ in range(24): # حداکثر 2 دقیقه انتظار
            time.sleep(5)
            ans = requests.get(f"http://2captcha.com/res.php?key={API_KEY}&action=get&id={req_id}&json=1", timeout=10).json()
            
            if ans.get('status') == 1:
                return ans.get('request')
            if ans.get('request') != 'CAPCHA_NOT_READY':
                print(f"[2Captcha Failed] {ans.get('request')}")
                break
                
        return None
    except Exception as e:
        print(f"[2Captcha Exception] {str(e)}")
        return None