code wiki / (root) / nx_galx_vid_audit.nx

nx_galx_vid_audit.nx source

↩ module page · 127 lines · 7321 B

1// nx_galx_vid_audit.nx -- SOVEREIGN audit of the gallery's VIDEO delivery (operator 2026-06-23: "majority 2// of media not working ... the images i generated work but the other stuff is broken ... use our own nishi 3// ecosystem"). The video index galx_vid_paths.tsv was found pointing at /volume1/logging/#recycle/*.ts (the 4// Synology TRASH). This organ proves how dead the index is and discovers where live recordings actually live. 5// Reads the NAS directly via syscalls (mount: /volume1/<share> => /mnt/nas_<share>). No sh. license_tier: ORIGINAL 6import "nx_syscalls.nx" 7const AV_MAGIC_65536: i64 = 65536 8const AV_MAGIC_2048: i64 = 2048 9 10const AV_CAP: i64 = 524288 11const AV_SAMPLES: i64 = 60 12 13func av_strlen(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } return n } 14func av_puts(s: *u8) -> i64 { sys_write(1, s, av_strlen(s)); return 0 } 15func av_putn(v: i64) -> i64 { 16 if v == 0 { sys_write(1, "0" as *u8, 1); return 0 } 17 var m: i64 = v 18 if m < 0 { sys_write(1, "-" as *u8, 1); m = 0 - m } 19 let d: *u8 = sys_mmap(24); var k: i64 = 0 20 while m > 0 { d[k] = (48 + (m % 10)) as u8; m = m / 10; k = k + 1 } 21 var j: i64 = k - 1 22 while j >= 0 { sys_write(1, ((d as i64)+j) as *u8, 1); j = j - 1 } 23 return 0 24} 25func av_cat(dst: *u8, off: i64, s: *u8) -> i64 { var i: i64 = 0; while s[i] != (0 as u8) { dst[off + i] = s[i]; i = i + 1 } return off + i } 26func av_find(buf: *u8, lo: i64, hi: i64, pat: *u8, pl: i64) -> i64 { 27 if pl == 0 { return 0 - 1 } 28 var i: i64 = lo 29 while i + pl <= hi { var j: i64 = 0; while j < pl { if buf[i + j] != pat[j] { j = pl + 1 } else { j = j + 1 } } if j == pl { return i } i = i + 1 } 30 return 0 - 1 31} 32func av_exists(path: *u8) -> i64 { let fd: i64 = sys_openat_rd(path); if fd < 0 { return 0 } sys_close(fd); return 1 } 33func av_is_dot(name: *u8) -> i64 { if name[0]==(46 as u8) { if name[1]==(0 as u8) { return 1 } if name[1]==(46 as u8) { if name[2]==(0 as u8) { return 1 } } } return 0 } 34 35// map /volume1/<share>/<rest> -> /mnt/nas_<share>/<rest>. src[vs..ve) is the path. writes NUL-term out, returns 0. 36func av_map(src: *u8, vs: i64, ve: i64, out: *u8) -> i64 { 37 var o: i64 = av_cat(out, 0, "/mnt/nas_" as *u8) 38 var k: i64 = vs + 9 // skip "/volume1/" 39 while k < ve { out[o] = src[k]; o = o + 1; k = k + 1 } // share + rest copied verbatim (share/.../file.ts) 40 out[o] = 0 as u8 41 return 0 42} 43 44// list a directory (first 40 non-dot entries with type). returns count shown. 45func av_list(dirpath: *u8, label: *u8) -> i64 { 46 av_puts(label); av_puts(" ("); av_puts(dirpath); av_puts("):\n" as *u8) 47 let dfd: i64 = sys_openat_rd(dirpath) 48 if dfd < 0 { av_puts(" <cannot open>\n" as *u8); return 0 - 1 } 49 let dbuf: *u8 = sys_mmap(AV_MAGIC_65536) 50 var shown: i64 = 0; var go: i64 = 1 51 while go == 1 { 52 let nread: i64 = sys_getdents64(dfd, dbuf, AV_MAGIC_65536) 53 if nread <= 0 { go = 0 } else { 54 var off: i64 = 0 55 while off < nread { 56 let rec: *u8 = (dbuf as i64 + off) as *u8 57 let reclen: i64 = dirent_reclen(rec); let dt: i64 = dirent_type(rec); let nm: *u8 = dirent_name(rec) 58 if av_is_dot(nm) == 0 { if shown < 40 { av_puts(" " as *u8); if dt == DT_DIR { av_puts("[d] " as *u8) } else { av_puts("[f] " as *u8) } av_puts(nm); av_puts("\n" as *u8); shown = shown + 1 } } 59 if reclen <= 0 { off = nread } else { off = off + reclen } 60 } 61 } 62 } 63 sys_close(dfd) 64 av_puts(" -> "); av_putn(shown); av_puts(" entries shown\n" as *u8) 65 return shown 66} 67 68func main() -> i64 { 69 av_puts("=== NISHI GALLERY VIDEO-DELIVERY AUDIT (sovereign; reads live NAS) ===\n" as *u8) 70 let buf: *u8 = sys_mmap(AV_CAP + 16) 71 let fd: i64 = sys_openat_rd("/mnt/nas_ai/galx/knowledge/status/galx_vid_paths.tsv" as *u8) 72 if fd < 0 { av_puts("AUDIT FAIL: cannot read vid_paths (NAS mount down?)\n" as *u8); sys_exit(1); return 1 } 73 let n: i64 = sys_read(fd, buf, AV_CAP); sys_close(fd) 74 75 var tot: i64 = 0; var vid_have: i64 = 0; var post_have: i64 = 0; var recyc: i64 = 0; var derecyc: i64 = 0 76 var i: i64 = 0; var ls: i64 = 0 77 while i <= n { 78 var eol: i64 = 0 79 if i == n { eol = 1 } else { if buf[i] == (10 as u8) { eol = 1 } } 80 if eol == 1 { 81 if tot < AV_SAMPLES { 82 let vp: i64 = av_find(buf, ls, i, "/volume1/" as *u8, 9) 83 if vp >= 0 { 84 var ve: i64 = i 85 if ve > ls { if buf[ve - 1] == (13 as u8) { ve = ve - 1 } } 86 if av_find(buf, ls, i, "#recycle" as *u8, 8) >= 0 { recyc = recyc + 1 } 87 let vpath: *u8 = sys_mmap(AV_MAGIC_2048); av_map(buf, vp, ve, vpath) 88 tot = tot + 1 89 if av_exists(vpath) == 1 { vid_have = vid_have + 1 } 90 // poster: strip last '.' ext -> -poster.jpg 91 var dot: i64 = ve; var d: i64 = vp 92 while d < ve { if buf[d] == (46 as u8) { dot = d } d = d + 1 } 93 let ppath: *u8 = sys_mmap(AV_MAGIC_2048); var o: i64 = av_cat(ppath, 0, "/mnt/nas_" as *u8) 94 var k: i64 = vp + 9 95 while k < dot { ppath[o] = buf[k]; o = o + 1; k = k + 1 } 96 o = av_cat(ppath, o, "-poster.jpg" as *u8); ppath[o] = 0 as u8 97 if av_exists(ppath) == 1 { post_have = post_have + 1 } 98 // de-recycle probe: does the LIVE (non-trash) path exist? (strip "#recycle/") 99 let vlen: i64 = av_strlen(vpath) 100 let rp: i64 = av_find(vpath, 0, vlen, "#recycle/" as *u8, 9) 101 if rp >= 0 { 102 let dpath: *u8 = sys_mmap(AV_MAGIC_2048); var oo: i64 = 0 103 var a: i64 = 0; while a < rp { dpath[oo] = vpath[a]; oo = oo + 1; a = a + 1 } 104 var bb: i64 = rp + 9; while bb < vlen { dpath[oo] = vpath[bb]; oo = oo + 1; bb = bb + 1 } 105 dpath[oo] = 0 as u8 106 if av_exists(dpath) == 1 { derecyc = derecyc + 1 } 107 } 108 } 109 } 110 ls = i + 1 111 } 112 i = i + 1 113 } 114 av_puts("INDEX SAMPLE (first "); av_putn(tot); av_puts(" entries of galx_vid_paths.tsv):\n" as *u8) 115 av_puts(" .ts FILE EXISTS : "); av_putn(vid_have); av_puts("/"); av_putn(tot); av_puts("\n" as *u8) 116 av_puts(" POSTER EXISTS : "); av_putn(post_have); av_puts("/"); av_putn(tot); av_puts("\n" as *u8) 117 av_puts(" point at #recycle (TRASH): "); av_putn(recyc); av_puts("/"); av_putn(tot); av_puts("\n" as *u8) 118 av_puts(" LIVE (de-recycled) path EXISTS: "); av_putn(derecyc); av_puts("/"); av_putn(tot); av_puts(" <- if >0, recordings are recoverable by reindex\n" as *u8) 119 120 av_puts("\n-- 9p getdents CONTROL (known-content dirs) --\n" as *u8) 121 av_list("/mnt/nas_ai/galx" as *u8, "nas_ai/galx KNOWN-content (if 0 here, getdents over 9p is BROKEN)" as *u8) 122 av_puts("\n-- recording storage discovery --\n" as *u8) 123 av_list("/mnt/nas_logging" as *u8, "logging share top-level" as *u8) 124 av_list("/mnt/nas_surveillance" as *u8, "surveillance share top-level" as *u8) 125 av_puts("AUDIT done (sovereign read; sample-based)\n" as *u8) 126 sys_exit(0); return 0 127}