import asyncio
import sys
import os

# Fix encoding
if sys.platform == 'win32':
    os.environ['PYTHONIOENCODING'] = 'utf-8'
    if hasattr(sys.stdout, 'reconfigure'):
        sys.stdout.reconfigure(encoding='utf-8')

from src.parsers import XParser, InstagramParser

async def main():
    print("Fetching sample posts...")
    
    results = []
    
    # Test X
    try:
        print("1. Fetching from X (Twitter)...")
        parser = XParser("NASA", 0) # Use NASA as it's public and safe
        posts = await parser.parse_posts(days=1)
        if posts:
            results.append(f"--- X.com Posts ({len(posts)}) ---")
            for p in posts[:2]: # Show first 2
                results.append(f"ID: {p.external_id}")
                results.append(f"Date: {p.created_at}")
                results.append(f"Content: {p.content}")
                results.append(f"Metrics: Views={p.views}, Likes={p.likes}")
                results.append("-" * 20)
        else:
            results.append("X.com: No posts found (or connection failed)")
    except Exception as e:
        results.append(f"X.com Error: {e}")

    # Test Instagram
    try:
        print("2. Fetching from Instagram...")
        parser = InstagramParser("nasa", 0)
        posts = await parser.parse_posts(days=1)
        if posts:
            results.append(f"\n--- Instagram Posts ({len(posts)}) ---")
            for p in posts[:2]:
                results.append(f"ID: {p.external_id}")
                results.append(f"Date: {p.created_at}")
                results.append(f"Content: {p.content}")
                results.append(f"Metrics: Likes={p.likes}, Comments={p.comments}")
                results.append("-" * 20)
        else:
            results.append("Instagram: No posts found (or connection failed)")
    except Exception as e:
        results.append(f"Instagram Error: {e}")

    # Save to file
    with open('sample_posts.txt', 'w', encoding='utf-8') as f:
        f.write('\n'.join(results))
    
    print("Done. Saved to sample_posts.txt")

if __name__ == '__main__':
    asyncio.run(main())
