ieuyryehj

This commit is contained in:
legop3
2026-04-29 14:38:13 -04:00
parent d8a01f9b60
commit 88acba5e1a
3 changed files with 6 additions and 19 deletions
-11
View File
@@ -6,8 +6,6 @@ const path = require('path');
const CANONICAL_DATA_DIR = path.resolve(__dirname, '..', '..', 'data'); const CANONICAL_DATA_DIR = path.resolve(__dirname, '..', '..', 'data');
const LEGACY_DATA_DIR = path.resolve(__dirname, '..', 'data'); const LEGACY_DATA_DIR = path.resolve(__dirname, '..', 'data');
const CANONICAL_ROVER_SNAPSHOT_DIR = path.join(CANONICAL_DATA_DIR, 'rover-snapshots');
const LEGACY_ROVER_SNAPSHOT_DIR = path.join(LEGACY_DATA_DIR, 'rover-snapshots');
function pathExists(target) { function pathExists(target) {
try { try {
@@ -37,16 +35,7 @@ function resolveDataPath(fileName) {
return canonicalPath; return canonicalPath;
} }
function resolveRoverSnapshotDir() {
const configured = String(process.env.ROVER_SNAPSHOT_DIR || '').trim();
if (configured) return path.resolve(configured);
if (pathExists(CANONICAL_ROVER_SNAPSHOT_DIR)) return CANONICAL_ROVER_SNAPSHOT_DIR;
if (pathExists(LEGACY_ROVER_SNAPSHOT_DIR)) return LEGACY_ROVER_SNAPSHOT_DIR;
return '/var/lib/rover-snapshots';
}
module.exports = { module.exports = {
resolveDataDir, resolveDataDir,
resolveDataPath, resolveDataPath,
resolveRoverSnapshotDir,
}; };
+2 -2
View File
@@ -7,9 +7,9 @@ const roverManager = require('../roverManager');
const { getRoomCameras } = require('../roomCameraService'); const { getRoomCameras } = require('../roomCameraService');
const { getRoomCameraState } = require('../roomCameraService'); const { getRoomCameraState } = require('../roomCameraService');
const { getReplayHealthSnapshot } = require('../replayEngineV2'); const { getReplayHealthSnapshot } = require('../replayEngineV2');
const { resolveRoverSnapshotDir } = require('../../helpers/dataPaths'); const { resolveDataDir } = require('../../helpers/dataPaths');
const ROVER_SNAPSHOT_DIR = resolveRoverSnapshotDir(); const ROVER_SNAPSHOT_DIR = path.join(resolveDataDir(), 'rover-snapshots');
const HEALTH_INTERVAL_MS = 5000; const HEALTH_INTERVAL_MS = 5000;
const ROOM_CAMERA_STALE_MS = 5000; const ROOM_CAMERA_STALE_MS = 5000;
const ROVER_SNAPSHOT_STALE_MS = 5000; const ROVER_SNAPSHOT_STALE_MS = 5000;
@@ -5,9 +5,9 @@ const EventEmitter = require('events');
const fs = require('fs/promises'); const fs = require('fs/promises');
const path = require('path'); const path = require('path');
const logger = require('../../globals/logger').child('roverSnapshot'); const logger = require('../../globals/logger').child('roverSnapshot');
const { resolveRoverSnapshotDir } = require('../../helpers/dataPaths'); const { resolveDataDir } = require('../../helpers/dataPaths');
const SNAPSHOT_DIR = resolveRoverSnapshotDir(); const SNAPSHOT_DIR = path.join(resolveDataDir(), 'rover-snapshots');
const POLL_INTERVAL_MS = 300; const POLL_INTERVAL_MS = 300;
const roverState = new Map(); const roverState = new Map();
const events = new EventEmitter(); const events = new EventEmitter();
@@ -25,15 +25,14 @@ function getSnapshotPath(id) {
} }
function createRoverSnapshotPoller({ roverManager }) { function createRoverSnapshotPoller({ roverManager }) {
async function fetchSnapshot(id, options = {}) { async function fetchSnapshot(id) {
const force = Boolean(options?.force);
const state = roverState.get(id); const state = roverState.get(id);
if (state?.fetching) return; if (state?.fetching) return;
markState(id, { fetching: true }); markState(id, { fetching: true });
try { try {
const filePath = getSnapshotPath(id); const filePath = getSnapshotPath(id);
const stats = await fs.stat(filePath); const stats = await fs.stat(filePath);
if (!force && state?.mtimeMs && stats.mtimeMs <= state.mtimeMs) return; if (state?.mtimeMs && stats.mtimeMs <= state.mtimeMs) return;
const buffer = await fs.readFile(filePath); const buffer = await fs.readFile(filePath);
const ts = stats.mtimeMs || Date.now(); const ts = stats.mtimeMs || Date.now();
markState(id, { frame: buffer, ts, error: null, failures: 0, mtimeMs: stats.mtimeMs }); markState(id, { frame: buffer, ts, error: null, failures: 0, mtimeMs: stats.mtimeMs });
@@ -93,7 +92,6 @@ function createRoverSnapshotPoller({ roverManager }) {
return { return {
startAll, startAll,
stopAll, stopAll,
fetchSnapshotNow: fetchSnapshot,
roverSnapshotEvents: events, roverSnapshotEvents: events,
getRoverSnapshotState, getRoverSnapshotState,
}; };