Files
ObsidianHome/小鱼/.cdp/ov-all.mjs
T

27 lines
1.1 KiB
JavaScript

import fs from 'node:fs';
const j = JSON.parse(fs.readFileSync('.cdp/out/overview-capture.json', 'utf8'));
const bodies = j.value.rawBodies;
const L = [];
const seen = new Set();
for (const b of bodies) {
const m = /datacompass\.([\w.]+)\/1\.0/.exec(b.url);
const api = m ? m[1] : '?';
const t = (/t=(\d+)/.exec(b.url) || [])[1];
const key = api + '|' + b.text.length;
const p = JSON.parse(b.text);
const d = p && p.data && p.data.data;
L.push('==== ' + api + ' (t=' + t + ', len=' + b.text.length + ') ====');
if (d) {
L.push(' data.data keys: ' + JSON.stringify(Object.keys(d)));
for (const [k, v] of Object.entries(d)) {
if (Array.isArray(v)) L.push(` ${k}: Array(${v.length})` + (v.length ? ' item0keys=' + JSON.stringify(Object.keys(v[0])).slice(0, 400) : ''));
else if (v && typeof v === 'object') L.push(` ${k}: Object keys=` + JSON.stringify(Object.keys(v)).slice(0, 400));
else L.push(` ${k}: ${JSON.stringify(v)}`);
}
} else {
L.push(' no data.data; top keys=' + JSON.stringify(p ? Object.keys(p) : null));
}
L.push('');
}
fs.writeFileSync('.cdp/out/ov-all-struct.txt', L.join('\n'), 'utf8');