import requests, urllib3, json
urllib3.disable_warnings()

URL = "https://mtr.ciapongi.szablix.pl/mtr/api/map/rails"

def main():
    print(f"[*] Pobieranie i głęboka analiza: {URL}")
    try:
        r = requests.get(URL, verify=False, timeout=15)
        if r.status_code != 200:
            print("Błąd pobierania!")
            return
            
        data = r.json()
        rails = data.get('data', {}).get('rails', []) if isinstance(data, dict) else data
        
        all_keys = set()
        all_styles = set()
        special_rails = []

        for rail in rails:
            all_keys.update(rail.keys())
            for style in rail.get('styles', []):
                all_styles.add(style)
            
            # Szukamy czegokolwiek co sugeruje peron lub zajezdnię
            is_special = False
            # Sprawdzamy klucze i wartości
            for k, v in rail.items():
                if 'platform' in k.lower() or 'station' in k.lower() or 'name' in k.lower():
                    is_special = True
                if isinstance(v, str) and ('platform' in v.lower() or 'station' in v.lower() or 'siding' in v.lower()):
                    is_special = True
            
            # Sprawdzamy też, czy styl to coś innego niż 'default'
            if 'default' not in rail.get('styles', ['default']) or is_special:
                special_rails.append(rail)

        print(f"\n=== WYNIKI ANALIZY ({len(rails)} obiektów) ===")
        print(f"1. WSZYSTKIE DOSTĘPNE KLUCZE: {list(all_keys)}")
        print(f"2. WSZYSTKIE STYLE ('styles'): {list(all_styles)}")
        print(f"3. POTENCJALNE PERONY/SPECJALNE: Znaleziono {len(special_rails)} sztuk!")
        
        if special_rails:
            print("\nOto próbka (z wyciętymi kordami, żeby nie śmiecić konsoli):")
            sample = special_rails[0].copy()
            sample.pop('curvePoints', None)
            print(json.dumps(sample, indent=4, ensure_ascii=False))

    except Exception as e:
        print(f"Błąd: {e}")

if __name__ == "__main__":
    main()
