Files
brain/tools/secretary-slice.mjs
T

15 lines
587 B
JavaScript

// Нарезка сырого журнала на ходы по диапазону [from,to] (§D6). Идемпотентность по turn —
// забота писателя файлов (вызывающего хука).
export function sliceTurns(rawLog, from, to) {
const out = [];
const re = /=== ХОД turn=(\d+)[^\n]*===([\s\S]*?)=== КОНЕЦ ХОДА ===/g;
let m;
while ((m = re.exec(String(rawLog || ''))) !== null) {
const turn = Number(m[1]);
if (turn >= from && turn <= to) {
out.push({ turn, content: m[0].trim() });
}
}
return out;
}