MCPcopy Create free account
hub / github.com/TechJeeper/Printventory / parse3mfPreviewHandler

Function parse3mfPreviewHandler

main.js:7497–7639  ·  view source on GitHub ↗
(event, filePath, requestId)

Source from the content-addressed store, hash-verified

7495 console.error('Error saving setting:', error);
7496 throw error;
7497 }
7498});
7499
7500// Browser extension server control (normal mode only)
7501ipcMain.handle('start-extension-server', async (event, port) => {
7502 if (isServerMode) return { success: false, message: 'Not available in server mode' };
7503 try {
7504 const portNum = parseInt(port, 10) || 5000;
7505 if (httpServer) await stopHttpServer();
7506 console.log('[Browser extension] Starting server on port', portNum, '...');
7507 await startHttpServer(portNum, true);
7508 console.log('[Browser extension] Server started successfully');
7509 return { success: true };
7510 } catch (error) {
7511 console.error('[Browser extension] Error starting extension server:', error.message);
7512 return { success: false, message: error?.message || 'Failed to start' };
7513 }
7514});
7515
7516ipcMain.handle('stop-extension-server', async () => {
7517 if (isServerMode) return { success: false, message: 'Not available in server mode' };
7518 try {
7519 await stopHttpServer();
7520 return { success: true };
7521 } catch (error) {
7522 console.error('Error stopping extension server:', error);
7523 return { success: false, message: error?.message || 'Failed to stop' };
7524 }
7525});
7526
7527/** Copy SQLite main + sidecar files (-wal / -shm) when migrating paths. */
7528function copySqliteDbFiles(srcBase, destBase) {
7529 fs.copyFileSync(srcBase, destBase);
7530 for (const ext of ['-wal', '-shm']) {
7531 const s = srcBase + ext;
7532 const d = destBase + ext;
7533 if (fs.existsSync(s)) fs.copyFileSync(s, d);
7534 }
7535}
7536
7537/**
7538 * Docker/server previously used isDev → __dirname/printventory.db (ephemeral /app).
7539 * If the persisted userData DB does not exist yet, copy from that legacy file once.
7540 */
7541function migrateLegacyServerDbIfNeeded(persistedPath) {
7542 if (!isServerMode || fs.existsSync(persistedPath)) return;
7543 const legacy = path.join(__dirname, 'printventory.db');
7544 if (!fs.existsSync(legacy)) return;
7545 try {
7546 copySqliteDbFiles(legacy, persistedPath);
7547 console.log('[Server mode] Migrated SQLite from', legacy, 'to', persistedPath);
7548 } catch (e) {
7549 console.error('[Server mode] Could not migrate legacy database:', e);
7550 }
7551}
7552
7553/**
7554 * Apply Docker/env defaults without clobbering user-saved settings on every restart.

Callers

nothing calls this directly

Calls 7

isUrlModelFunction · 0.85
isMacOsResourceForkEntryFunction · 0.85
extractModelFromZipFunction · 0.85
getPreview3mfCacheDirFunction · 0.85
acquirePreview3mfWorkerFunction · 0.85
parseMethod · 0.80
parseZipPathFunction · 0.70

Tested by

no test coverage detected