#!/usr/bin/env python3
"""
Rychlé stažení a příprava dat pro kopírování do Google Sheets
"""

import requests

def download_and_prepare_data():
    """Stáhni data z GeoNames dump a připrav pro Google Sheets"""
    
    print("📥 Stahuji strukturovaná data z GeoNames...")
    
    # Použij dump soubor - je čistější než HTML stránka
    url = "https://download.geonames.org/export/dump/countryInfo.txt"
    
    try:
        response = requests.get(url, timeout=30)
        response.raise_for_status()
        
        lines = response.text.strip().split('\n')
        
        # Najdi header informace a připrav data
        countries_data = []
        
        # Vlastní header pro Google Sheets
        headers = [
            "ISO Alpha2",
            "ISO Alpha3", 
            "ISO Numeric",
            "FIPS Code",
            "Country Name",
            "Capital",
            "Area (km²)",
            "Population",
            "Continent",
            "Domain",
            "Currency Code",
            "Currency Name",
            "Phone Code",
            "Postal Format",
            "Postal Regex",
            "Languages",
            "GeoName ID",
            "Neighbours"
        ]
        
        # Zpracuj data řádky (přeskoč komentáře)
        for line in lines:
            if line.startswith('#') or not line.strip():
                continue
            
            fields = line.split('\t')
            if len(fields) >= 17:
                # Vyčisti a formátuj data
                country_row = []
                for i, field in enumerate(fields[:18]):  # Take first 18 fields
                    clean_field = field.strip()
                    
                    # Speciální formátování pro některé sloupce
                    if i == 6 or i == 7:  # Area nebo Population
                        if clean_field and clean_field.isdigit():
                            # Formátuj čísla s mezerami
                            clean_field = f"{int(clean_field):,}".replace(',', ' ')
                    elif i == 8:  # Continent
                        # Převeď kódy kontinentů
                        continent_map = {
                            'AF': 'Africa', 'AS': 'Asia', 'EU': 'Europe',
                            'NA': 'North America', 'SA': 'South America', 
                            'OC': 'Oceania', 'AN': 'Antarctica'
                        }
                        clean_field = continent_map.get(clean_field, clean_field)
                    
                    country_row.append(clean_field)
                
                # Zajisti správný počet sloupců
                while len(country_row) < len(headers):
                    country_row.append('')
                
                countries_data.append(country_row[:len(headers)])
        
        print(f"✅ Zpracováno {len(countries_data)} zemí")
        
        # Seřaď podle názvu země
        countries_data.sort(key=lambda x: x[4])  # Sort by country name
        
        return headers, countries_data
        
    except Exception as e:
        print(f"❌ Chyba: {e}")
        return None, None

def create_copy_paste_data(headers, countries):
    """Vytvoř data připravená pro kopírování"""
    
    # TSV format (tab-separated) - nejlepší pro Google Sheets
    tsv_lines = []
    
    # Header řádek
    tsv_lines.append('\t'.join(headers))
    
    # Data řádky
    for country in countries:
        tsv_lines.append('\t'.join(str(cell) for cell in country))
    
    # Ulož do souboru
    with open('countries_for_copy_paste.tsv', 'w', encoding='utf-8') as f:
        f.write('\n'.join(tsv_lines))
    
    return tsv_lines

def main():
    """Hlavní funkce"""
    
    print("🌍 RYCHLÉ KOPÍROVÁNÍ DAT O ZEMÍCH DO GOOGLE SHEETS")
    print("=" * 60)
    
    # Stáhni a zpracuj data
    headers, countries = download_and_prepare_data()
    
    if not countries:
        print("❌ Nepodařilo se získat data")
        return
    
    # Připrav data pro kopírování
    tsv_lines = create_copy_paste_data(headers, countries)
    
    print("\n" + "=" * 60)
    print("✅ DATA PŘIPRAVENA!")
    print("=" * 60)
    
    print("\n📋 INSTRUKCE PRO KOPÍROVÁNÍ:")
    print("1. Otevři soubor: countries_for_copy_paste.tsv")
    print("2. Vyber vše: Ctrl+A")
    print("3. Zkopíruj: Ctrl+C") 
    print("4. Jdi do Google Sheets: https://docs.google.com/spreadsheets/d/1b4GKYaRVh_V3dN4Ok01EiUHdpoQxr0a_6ptoSZWsj_o/")
    print("5. Klikni na buňku A1")
    print("6. Vlož: Ctrl+V")
    print("7. Google Sheets automaticky rozdělí data do sloupců!")
    
    print(f"\n📊 STATISTIKY:")
    print(f"   Zemí celkem: {len(countries)}")
    print(f"   Sloupců: {len(headers)}")
    print(f"   Řádků celkem: {len(tsv_lines)} (včetně hlavičky)")
    
    print(f"\n📋 NÁHLED PRVNÍCH 5 ZEMÍ:")
    print("=" * 60)
    
    # Ukaž náhled
    for i, line in enumerate(tsv_lines[:6]):  # Header + 5 countries
        if i == 0:
            print("📋 HLAVIČKY:")
            print(line.replace('\t', ' | '))
            print("-" * 60)
        else:
            fields = line.split('\t')
            print(f"{i}. {fields[4]} ({fields[0]}) - {fields[5]} - {fields[7]} obyvatel")
    
    print(f"\n... a dalších {len(countries) - 5} zemí")
    
    print("\n" + "=" * 60)
    print("🎯 RYCHLÝ POSTUP:")
    print("💾 Otevři: countries_for_copy_paste.tsv")
    print("📋 Ctrl+A → Ctrl+C")  
    print("🌐 Google Sheets → A1 → Ctrl+V")
    print("✅ Hotovo!")

if __name__ == "__main__":
    main()