import csv, sys
from datetime import datetime, timezone

def iso(value):
    if not value:
        return ""
    when = datetime.fromisoformat(value.replace("Z", "+00:00"))
    return when.astimezone(timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ")

columns = ["type", "title", "source_url", "description", "user_note", "tags", "spaces", "created_at", "pinned_at"]
with open(sys.argv[1], newline="", encoding="utf-8-sig") as source, \
     open("captures.csv", "w", newline="", encoding="utf-8") as target:
    writer = csv.DictWriter(target, fieldnames=columns)
    writer.writeheader()
    for row in csv.DictReader(source):
        created = iso(row.get("created", ""))
        tags = [tag.strip() for tag in row.get("tags", "").split(",") if tag.strip()]
        writer.writerow({
            "type": "link",
            "title": row.get("title", ""),
            "source_url": row.get("url", ""),
            "description": row.get("excerpt", ""),
            "user_note": row.get("note", ""),
            "tags": ";".join(tags),
            "spaces": row.get("folder", ""),
            "created_at": created,
            "pinned_at": created if row.get("favorite") == "true" else "",
        })
