import requests
import json
import base64

# Konfigurasi
url = "https://crew.ninjasage.id/auth/login"

# Headers sesuai dengan yang ada di log Charles Proxy
headers = {
    'Referer': 'app:/NinjaSage.swf',
    'x-flash-version': '51,1,3,10',
    'Content-Type': 'application/json',
    'x-air-appid': 'pta5yAteNUXGZU30lxDv+BRLP9xn3HZsknJnVEyQZU4=',
    'Agent': 'NinjaSage Public 0.52',
    'Accept': 'application/json',
    'User-Agent': 'Mozilla/5.0 (Windows; U; en-US) AppleWebKit/533.19.4 (KHTML, like Gecko) AdobeAIR/51.1',
    'Connection': 'Keep-Alive'
}

# Payload sesuai request
payload = {
    "char_id": 6996,
    "session_key": "8d1b0845136e9a0d34989fce4942c0d345f2ea49"
}

try:
    print(f"Mengirim request login ke {url}...")
    response = requests.post(url, headers=headers, json=payload)
    
    print(f"Status Code: {response.status_code}")
    
    if response.status_code == 200:
        # Response dari server berupa string base64 yang diapit tanda kutip ganda
        # Contoh: "eyJhY2Nlc3N..."
        
        # Ambil text dan bersihkan tanda kutip jika ada
        raw_response = response.text.strip('"')
        
        try:
            # Decode Base64
            decoded_bytes = base64.b64decode(raw_response)
            decoded_str = decoded_bytes.decode('utf-8')
            
            # Parse JSON hasil decode
            json_response = json.loads(decoded_str)
            
            print("\nLogin Berhasil!")
            print("Decoded Response:")
            print(json.dumps(json_response, indent=2))
            
            if 'access_token' in json_response:
                print("\nAccess Token ditemukan.")
                # Token ini biasanya dipakai untuk request selanjutnya (Bearer Token)
        except Exception as e:
            print(f"\nGagal decode response: {e}")
            print(f"Raw Response: {response.text}")
    else:
        print("\nLogin Gagal.")
        print(response.text)

except Exception as e:
    print(f"\nTerjadi kesalahan koneksi: {e}")
