import csv, json, sys

with open(sys.argv[1], newline="", encoding="utf-8-sig") as source:
    rows = [row for row in csv.DictReader(source) if row.get("Highlight", "").strip()]

items = []
for number, row in enumerate(rows, start=1):
    author, book = row.get("Book Author", "").strip(), row.get("Book Title", "").strip()
    item = {
        "id": str(number),
        "intent": "quote",
        "content": {"kind": "text", "text": row["Highlight"].strip()},
        "metadata": {"quoteAttribution": ", ".join(part for part in (author, book) if part)},
        "organization": {"tags": [tag.strip() for tag in row.get("Tags", "").split(",") if tag.strip()]},
    }
    if row.get("Note", "").strip():
        item["organization"]["userNote"] = row["Note"].strip()
    items.append(item)

for start in range(0, len(items), 100):
    page = start // 100 + 1
    with open(f"readwise-{page}.json", "w", encoding="utf-8") as target:
        json.dump({"requestID": f"readwise-import-{page}", "items": items[start:start + 100]}, target, ensure_ascii=False)
    print(f"readwise-{page}.json")
