50 lines
1.6 KiB
JavaScript
50 lines
1.6 KiB
JavaScript
// Check database for received data
|
|
const db = require('./src/database/db');
|
|
const { statsQueries, messageQueries, nodeQueries, positionQueries } = require('./src/database/queries');
|
|
|
|
console.log('\n=== Database Statistics ===\n');
|
|
|
|
try {
|
|
const stats = {
|
|
messages: statsQueries.getMessageCount.get(),
|
|
nodes: statsQueries.getNodeCount.get(),
|
|
positions: statsQueries.getPositionCount.get(),
|
|
dbSize: statsQueries.getDbSize()
|
|
};
|
|
|
|
console.log(`Messages: ${stats.messages.count}`);
|
|
console.log(`Nodes: ${stats.nodes.count}`);
|
|
console.log(`Positions: ${stats.positions.count}`);
|
|
console.log(`DB Size: ${(stats.dbSize / 1024 / 1024).toFixed(2)} MB`);
|
|
|
|
if (stats.messages.count > 0) {
|
|
console.log('\n=== Recent Messages ===\n');
|
|
const messages = messageQueries.getRecentMessages.all(5);
|
|
messages.forEach(msg => {
|
|
console.log(`[${msg.created_at}] ${msg.from_node}: ${msg.text || '(no text)'}`);
|
|
});
|
|
}
|
|
|
|
if (stats.nodes.count > 0) {
|
|
console.log('\n=== Nodes ===\n');
|
|
const nodes = nodeQueries.getAllNodes.all();
|
|
nodes.forEach(node => {
|
|
console.log(`${node.node_id} - ${node.long_name || node.short_name || 'Unknown'} (${node.hardware_model || 'N/A'})`);
|
|
});
|
|
}
|
|
|
|
if (stats.positions.count > 0) {
|
|
console.log('\n=== Recent Positions ===\n');
|
|
const positions = positionQueries.getLatestPositions.all();
|
|
positions.slice(0, 5).forEach(pos => {
|
|
console.log(`${pos.node_id}: ${pos.latitude}, ${pos.longitude} @ ${pos.timestamp}`);
|
|
});
|
|
}
|
|
|
|
console.log('\n');
|
|
process.exit(0);
|
|
} catch (error) {
|
|
console.error('Error:', error.message);
|
|
process.exit(1);
|
|
}
|