# -*- coding: utf-8 -*-
"""Genera fragmento JS RESPUESTAS_TEXTO desde control/texto.php (uso puntual)."""
import re
import pathlib
import sys


def parse_texto_php(path: pathlib.Path):
    text = path.read_text(encoding="utf-8")
    lines = text.splitlines()
    in_arr = False
    entries = []
    for line in lines:
        if re.search(r"\$arr_resp\s*=\s*array\s*\(", line):
            in_arr = True
            continue
        if in_arr:
            stripped = line.strip()
            if stripped.startswith(")") and stripped.endswith(";"):
                break
        if not in_arr:
            continue
        code = line.split("//")[0].strip()
        if not code or code == ",":
            continue
        m = re.match(r"(\d+|'[^']+')\s*=>\s*(.+)\s*,?\s*$", code)
        if not m:
            continue
        key, val = m.group(1), m.group(2).strip().rstrip(",")
        if re.search(r"\.\s*\$svp\s*\.", val):
            val = re.sub(r"\s*\.\s*\$svp\s*\.\s*", "___SVP___", val)
        entries.append((key, val))
    return entries


def val_to_js(val: str) -> str:
    if "___SVP___" in val:
        parts = [p.strip() for p in val.split("___SVP___")]
        return " + LIBROS_SVP + ".join(parts)
    return val


def key_to_js(key: str) -> str:
    if key.startswith("'"):
        return key
    return key


def emit_respuestas_object(entries):
    lines = ["var RESPUESTAS_TEXTO = {"]
    for key, val in entries:
        ks = key_to_js(key)
        vjs = val_to_js(val)
        lines.append(f"\t{ks}: {vjs},")
    lines.append("};")
    return "\n".join(lines)


def main():
    for p in sys.argv[1:]:
        path = pathlib.Path(p)
        e = parse_texto_php(path)
        print("// ----", path, "entries:", len(e), "----")
        print(emit_respuestas_object(e))


if __name__ == "__main__":
    main()
