#!/usr/bin/env python3.12
"""Import folder publik MEGA (anonim), daftar file, lalu unduh.
Usage: python3.12 mega_folder.py list
       python3.12 mega_folder.py download /tujuan/dir
"""
import os, sys, json

URL = "https://mega.nz/folder/HRMAlYzK#IJeN5r2FcnfkWLt7w4ZfzQ"
from mega import Mega

m = Mega().login()
files = m.get_files()
mode = sys.argv[1] if len(sys.argv) > 1 else "list"

if mode == "list":
    # cek dulu isi akun anonim
    print("file di akun anonim:", len(files))
    for k, v in files.items():
        print(k, v.get("a", {}).get("n"), v.get("t"), v.get("p"))
    # import folder
    try:
        nid = m.import_public_file(URL)
        print("imported node:", nid)
    except Exception as e:
        print("import gagal:", type(e).__name__, e)
    files = m.get_files()
    print("setelah import:", len(files))
    for k, v in files.items():
        name = v.get("a", {}).get("n")
        print(k, "|", name, "| t=", v.get("t"), "| size=", v.get("s"), "| parent=", v.get("p"))
    json.dump(files, open("/home/mantapman/.hermes/profiles/atun/workspace/mega_files.json", "w"))
elif mode == "download":
    dest = sys.argv[2]
    os.makedirs(dest, exist_ok=True)
    m.import_public_file(URL)
    files = m.get_files()
    for k, v in files.items():
        if v.get("t") == 0:
            continue
        name = v.get("a", {}).get("n")
        print("unduh:", name, flush=True)
        try:
            m.download((k, v), dest_path=dest)
        except Exception as e:
            print("  gagal:", type(e).__name__, e)
    print("selesai:", sorted(os.listdir(dest)))
