﻿with open("midas_bot.py", "r", encoding="utf-8") as f:
    content = f.read()

import re

# Add async def get_portfolio() before CLI
inject_func = """
async def get_portfolio():
    session = load_session()
    if not session:
        return {'success': False, 'error': 'Oturum yok.', 'need_login': True}
        
    log("PORTFOY TARAMASI BASLIYOR...")
    
    async with async_playwright() as p:
        browser = await p.chromium.launch(
            headless=True,
            args=['--no-sandbox', '--disable-blink-features=AutomationControlled']
        )
        context = await browser.new_context(
            storage_state=session,
            user_agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36',
            viewport={'width': 1280, 'height': 800}
        )
        page = await context.new_page()
        
        # API yanitlarini dinle
        api_responses = {}
        async def handle_response(response):
            url = response.url.lower()
            if 'api' in url and ('portfolio' in url or 'position' in url or 'balance' in url or 'summary' in url or 'asset' in url):
                try:
                    data = await response.json()
                    api_responses[url] = data
                except:
                    pass
        
        page.on("response", handle_response)
        
        try:
            await page.goto(MIDAS_URL, wait_until='networkidle', timeout=45000)
            await asyncio.sleep(5)
            
            url_lower = page.url.lower()
            if 'login' in url_lower or 'signin' in url_lower or 'giris' in url_lower:
                if os.path.exists(SESSION_FILE): os.remove(SESSION_FILE)
                return {'success': False, 'error': 'Oturum suresi dolmus.'}
            
            # Sayfa HTML'sini kaydet
            html = await page.content()
            with open('midas_dump.html', 'w', encoding='utf-8') as f:
                f.write(html)
                
            with open('midas_api_dump.json', 'w', encoding='utf-8') as f:
                json.dump(api_responses, f, ensure_ascii=False, indent=2)
                
            await browser.close()
            return {'success': True, 'message': 'Tarama tamamlandi. midas_dump.html ve midas_api_dump.json olusturuldu.'}
            
        except Exception as e:
            await browser.close()
            return {'success': False, 'error': str(e)}

"""

content = content.replace("#  CLI ", inject_func + "\n#  CLI ")

# Add --portfolio to CLI
cli_target = r"elif '--trade' in sys\.argv:"
cli_inject = r"""elif '--portfolio' in sys.argv:
        result = asyncio.run(get_portfolio())
        print(json.dumps(result, ensure_ascii=False))
        sys.exit(0 if result.get('success') else 1)
    elif '--trade' in sys.argv:"""
content = re.sub(cli_target, cli_inject, content)

with open("midas_bot.py", "w", encoding="utf-8") as f:
    f.write(content)
