update data purging, re-enable channel selection
This commit is contained in:
@@ -95,7 +95,7 @@ const positionQueries = {
|
||||
`),
|
||||
|
||||
deleteOldPositions: db.prepare(`
|
||||
DELETE FROM positions WHERE timestamp < datetime('now', '-' || ? || ' days')
|
||||
DELETE FROM positions WHERE timestamp < datetime('now', '-' || ? || ' hours')
|
||||
`),
|
||||
|
||||
getPositionTrails: db.prepare(`
|
||||
@@ -170,7 +170,7 @@ const messageQueries = {
|
||||
`),
|
||||
|
||||
deleteOldMessages: db.prepare(`
|
||||
DELETE FROM messages WHERE created_at < datetime('now', '-' || ? || ' days')
|
||||
DELETE FROM messages WHERE created_at < datetime('now', '-' || ? || ' hours')
|
||||
`)
|
||||
};
|
||||
|
||||
@@ -199,7 +199,7 @@ const telemetryQueries = {
|
||||
`),
|
||||
|
||||
deleteOldTelemetry: db.prepare(`
|
||||
DELETE FROM telemetry WHERE timestamp < datetime('now', '-' || ? || ' days')
|
||||
DELETE FROM telemetry WHERE timestamp < datetime('now', '-' || ? || ' hours')
|
||||
`)
|
||||
};
|
||||
|
||||
|
||||
+2
-1
@@ -344,10 +344,11 @@ class MeshtasticMQTTClient {
|
||||
}
|
||||
|
||||
// Send a text message
|
||||
async sendTextMessage(from, text) {
|
||||
async sendTextMessage(from, text, channel=0) {
|
||||
try {
|
||||
const message = JSON.stringify({
|
||||
from: from,
|
||||
channel: channel,
|
||||
type: 'sendtext',
|
||||
payload: text
|
||||
});
|
||||
|
||||
+12
-8
@@ -169,13 +169,13 @@ router.get('/messages/node/:nodeId', requireAuth, (req, res) => {
|
||||
// Send a message
|
||||
router.post('/messages/send', requireAuth, async (req, res) => {
|
||||
try {
|
||||
const { text, from } = req.body;
|
||||
const { from, text, channel } = req.body;
|
||||
|
||||
if (!text) {
|
||||
return res.status(400).json({ error: 'Message text required' });
|
||||
}
|
||||
|
||||
await mqttClient.sendTextMessage(text, from || 0);
|
||||
await mqttClient.sendTextMessage(from, text, channel);
|
||||
|
||||
// Log activity
|
||||
logActivity(req.session.userId, 'send_message', text, req.ip);
|
||||
@@ -224,20 +224,24 @@ router.get('/stats', requireAuth, (req, res) => {
|
||||
// Purge old data
|
||||
router.post('/purge', requireAuth, (req, res) => {
|
||||
try {
|
||||
const { days } = req.body;
|
||||
const daysToKeep = days || 30;
|
||||
const { hours } = req.body;
|
||||
const hoursToKeep = hours || 720; // Default to 30 days (720 hours)
|
||||
|
||||
const messagesDeleted = messageQueries.deleteOldMessages.run(daysToKeep);
|
||||
const positionsDeleted = positionQueries.deleteOldPositions.run(daysToKeep);
|
||||
const telemetryDeleted = telemetryQueries.deleteOldTelemetry.run(daysToKeep);
|
||||
const messagesDeleted = messageQueries.deleteOldMessages.run(hoursToKeep);
|
||||
const positionsDeleted = positionQueries.deleteOldPositions.run(hoursToKeep);
|
||||
const telemetryDeleted = telemetryQueries.deleteOldTelemetry.run(hoursToKeep);
|
||||
|
||||
logger.info(`Data purged: ${messagesDeleted.changes} messages, ${positionsDeleted.changes} positions, ${telemetryDeleted.changes} telemetry records`);
|
||||
|
||||
// Log activity
|
||||
const timePeriod = hoursToKeep < 24
|
||||
? `${hoursToKeep} hour${hoursToKeep !== 1 ? 's' : ''}`
|
||||
: `${hoursToKeep / 24} day${hoursToKeep / 24 !== 1 ? 's' : ''}`;
|
||||
|
||||
logActivity(
|
||||
req.session.userId,
|
||||
'purge_data',
|
||||
`Purged data older than ${daysToKeep} days`,
|
||||
`Purged data older than ${timePeriod}`,
|
||||
req.ip
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user