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}