"""
Talanton Bot -> Exness MT5 Direct Bridge (Forex Scalper Edition)
Menghubungkan sinyal Talanton Bot (https://talanton.krisbot.my.id) 
langsung ke Akun Exness MetaTrader 5 (Pro / Standard) di komputer Anda secara real-time.
"""

import sys
import time
import json
import urllib.request
import ssl

try:
    import MetaTrader5 as mt5
except ImportError:
    print("[!] Modul MetaTrader5 belum terpasang. Jalankan: pip install MetaTrader5")

TERMINAL_PATH = r"C:\Program Files\MetaTrader 5 EXNESS\terminal64.exe"
EXNESS_LOGIN = 0  # Ganti dengan nomor akun MT5 Pro Anda
EXNESS_PASSWORD = ""
EXNESS_SERVER = "Exness-MT5Real"
TALANTON_SYNC_URL = "https://talanton.krisbot.my.id/api/mt5/sync_account"
TALANTON_STATUS_URL = "https://talanton.krisbot.my.id/api/status"
MAGIC_NUMBER = 888999

def init_mt5():
    print("=" * 60)
    print("  TALANTON BOT -> EXNESS MT5 DIRECT FOREX BRIDGE")
    print("  Zero-Lag Scalping Execution (EUR/USD)")
    print("=" * 60)
    
    connected = mt5.initialize()
    if not connected and EXNESS_LOGIN > 0:
        connected = mt5.initialize(login=EXNESS_LOGIN, password=EXNESS_PASSWORD, server=EXNESS_SERVER)
        
    if connected:
        acc = mt5.account_info()
        if acc:
            print(f"[+] TERHUBUNG KE EXNESS MT5!")
            print(f"    - Akun: {acc.login}")
            print(f"    - Saldo: ${acc.balance:,.2f} USD")
            print(f"    - Equity: ${acc.equity:,.2f} USD")
            print(f"    - Server: {acc.server}")
            return True
    print("[-] Gagal terhubung ke MT5:", mt5.last_error())
    return False

def sync_to_talanton():
    acc = mt5.account_info()
    if not acc:
        return
    payload = {
        'balance': acc.balance,
        'equity': acc.equity,
        'margin': acc.margin,
        'free_margin': acc.margin_free
    }
    try:
        ctx = ssl.create_default_context()
        ctx.check_hostname = False
        ctx.verify_mode = ssl.CERT_NONE
        req = urllib.request.Request(
            TALANTON_SYNC_URL,
            data=json.dumps(payload).encode('utf-8'),
            headers={'Content-Type': 'application/json', 'User-Agent': 'TalantonBridge/1.0'}
        )
        with urllib.request.urlopen(req, timeout=5, context=ctx) as r:
            pass
    except Exception as e:
        pass

if __name__ == '__main__':
    if init_mt5():
        print("[*] Bridge aktif! Melakukan sinkronisasi setiap 3 detik...")
        while True:
            try:
                sync_to_talanton()
            except Exception as e:
                print("Sync err:", e)
            time.sleep(3)
