code wiki / _hdl_build / nx_manga_shelf_scan.nx

nx_manga_shelf_scan.nx source

↩ module page · 34 lines · 1329 B

1// nx_manga_shelf_scan.nx -- CLI probe for the LOCAL shelf catalog: prints the exact /api/shelf JSON the 2// media server serves (run it from the nishi-reader root). With a path argument it prints that path's 3// reader slug + whether its extracted cbx.json exists -- the verification handle for slug-chain checks. 4// Read-only. license_tier: ORIGINAL 5import "nx_syscalls.nx" 6import "nx_manga_shelf_lib.nx" 7const K_MAGIC_1024: i64 = 1024 8const K_MAGIC_2097152: i64 = 2097152 9 10func main(argc: i64, argv: *i64) -> i64 { 11 if argc >= 2 { 12 let p: *u8 = argv[1] as *u8 13 let n: i64 = msl_slen(p) 14 let slug: *u8 = sys_mmap(32) 15 msl_pathslug(p, 0, n, slug) 16 let sc: *u8 = sys_mmap(K_MAGIC_1024) 17 let x: i64 = msl_probe_cbx(p, 0, n, sc) 18 let ob: *u8 = sys_mmap(K_MAGIC_1024) 19 var o: i64 = 0 20 o = msl_cats(ob, o, "slug=" as *u8) 21 var i: i64 = 0 22 while slug[i] != (0 as u8) { ob[o] = slug[i]; o = o + 1; i = i + 1 } 23 o = msl_cats(ob, o, " extracted=" as *u8) 24 o = msl_catn(ob, o, x) 25 o = msl_cats(ob, o, "\n" as *u8) 26 sys_write(1, ob, o) 27 return 0 28 } 29 let out: *u8 = sys_mmap(K_MAGIC_2097152) 30 let n2: i64 = msl_shelf_json(out, K_MAGIC_2097152) 31 sys_write(1, out, n2) 32 sys_write(1, "\n" as *u8, 1) 33 return 0 34}