import json, subprocess, sys
db = json.load(open("/home/openclaw/eqserver-test/eqemu_config.json"))["server"]["database"]
def q(sql, dbn=None):
    r = subprocess.run(["mysql","-h",db.get("host","127.0.0.1"),"-u",db["username"],dbn or db["db"],"-N","-B","-e",sql],capture_output=True,text=True,env={"MYSQL_PWD":db["password"],"PATH":"/usr/bin:/bin"})
    if r.returncode: raise SystemExit(r.stderr)
    return [l.split("\t") for l in r.stdout.rstrip("\n").split("\n") if l]
ids = [int(x) for x in sys.argv[1:]]
cols = ["id","name","buffduration","buffdurationformula","recast_time","recovery_time","cast_time","mana","targettype","goodEffect","descnum","typedescnum","effectdescnum","spell_category"]
for i in range(1,13): cols += [f"effectid{i}",f"effect_base_value{i}",f"effect_limit_value{i}",f"max{i}",f"formula{i}"]
for r in q("select "+",".join("`%s`"%c for c in cols)+" from spells_new where id in (%s)"%",".join(map(str,ids))):
    d = dict(zip(cols,r))
    eff = []
    for i in range(1,13):
        e = d[f"effectid{i}"]
        if e not in ("254",):
            eff.append(f"{i}:spa{e} b{d[f'effect_base_value{i}']} l{d[f'effect_limit_value{i}']} m{d[f'max{i}']} f{d[f'formula{i}']}")
    print(d["id"], d["name"], "dur", d["buffduration"], d["buffdurationformula"], "recast", d["recast_time"], "tt", d["targettype"], "desc", d["descnum"], d["typedescnum"], d["effectdescnum"], "|", "; ".join(eff))
