#!/usr/bin/env python3
"""
e1_analyze.py — Анализирует извлечённые потоки: сжатие, тип данных
"""

import os
import re
import zlib

STREAMS_DIR = "hbk_streams"

for fname in sorted(os.listdir(STREAMS_DIR)):
    if fname.startswith("_") or fname.endswith(".meta"):
        continue

    path = os.path.join(STREAMS_DIR, fname)
    with open(path, "rb") as f:
        raw = f.read()

    print(f"\n{'=' * 60}")
    print(f"  {fname}  ({len(raw):,} байт)")
    print(f"  head: {raw[:32].hex(' ')}")

    # Пробуем zlib
    try:
        dec = zlib.decompress(raw)
        print(f"  → zlib OK: {len(dec):,} байт распаковано")
        print(f"    head: {dec[:64]}")
        out = os.path.join(STREAMS_DIR, fname + ".deflated")
        with open(out, "wb") as f:
            f.write(dec)
    except zlib.error:
        print(f"  → не zlib")

    # Ищем строки
    strings = re.findall(rb"[\x20-\x7e]{8,}", raw[:4096])
    if strings:
        print(f"  ASCII строки (первые 5):")
        for s in strings[:5]:
            print(f"    {s.decode('ascii')}")

    utf = re.findall(rb"(?:[\x20-\x7e]\x00){4,}", raw[:4096])
    if utf:
        print(f"  UTF-16LE строки:")
        for s in utf[:5]:
            print(f"    {s.decode('utf-16-le')}")
