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}