#!/usr/bin/env python3
"""Convert references.csl.json to RIS format for Mendeley/Zotero import."""
import json

csl_path = "/Users/qp252220/Documents/Causality/references/references.csl.json"
ris_path = "/Users/qp252220/Documents/Causality/references/references.ris"

with open(csl_path) as f:
    refs = json.load(f)

type_map = {
    "book": "BOOK",
    "article-journal": "JOUR",
    "article": "JOUR",
    "chapter": "CHAP",
    "report": "RPRT",
    "thesis": "THES",
    "webpage": "ELEC",
}

lines = []
for r in refs:
    ty = type_map.get(r.get("type", ""), "GEN")
    lines.append(f"TY  - {ty}")

    for a in r.get("author", []):
        fam = a.get("family", "")
        given = a.get("given", "")
        lines.append(f"A1  - {fam}, {given}")

    lines.append(f"T1  - {r['title']}")

    if "journal" in r:
        lines.append(f"JF  - {r['journal']}")

    if "publisher" in r:
        lines.append(f"PB  - {r['publisher']}")

    if "volume" in r:
        lines.append(f"VL  - {r['volume']}")

    if "issue" in r:
        lines.append(f"IS  - {r['issue']}")

    if "pages" in r:
        lines.append(f"SP  - {r['pages']}")

    if "edition" in r:
        lines.append(f"ET  - {r['edition']}")

    dp = r.get("issued", {}).get("date-parts", [[None]])
    year = dp[0][0]
    if year:
        lines.append(f"PY  - {year}")

    lines.append(f"ID  - {r['id']}")
    lines.append("ER  - ")
    lines.append("")

result = "\n".join(lines)

with open(ris_path, "w") as f:
    f.write(result)

print(f"Written {len(refs)} references to {ris_path}")
