v0.9.21 added a cleanup routibe for deleted images.

This commit is contained in:
2026-03-14 18:15:32 -04:00
parent 55adf514de
commit d058c9cd5f
6 changed files with 36 additions and 4 deletions

View File

@@ -1,8 +1,20 @@
const express = require('express');
const multer = require('multer');
const path = require('path');
const fs = require('fs');
const { getDb } = require('../models/db');
// Delete an uploaded image file from disk if it lives under /app/uploads/images
function deleteImageFile(imageUrl) {
if (!imageUrl) return;
try {
const filePath = '/app' + imageUrl; // imageUrl is like /uploads/images/img_xxx.jpg
if (fs.existsSync(filePath)) fs.unlinkSync(filePath);
} catch (e) {
console.warn('[Messages] Could not delete image file:', e.message);
}
}
module.exports = function(io) {
const router = express.Router();
const { authMiddleware } = require('../middleware/auth');
@@ -150,7 +162,9 @@ router.delete('/:id', authMiddleware, (req, res) => {
if (!canDelete) return res.status(403).json({ error: 'Cannot delete this message' });
const imageUrl = message.image_url;
db.prepare("UPDATE messages SET is_deleted = 1, content = null, image_url = null WHERE id = ?").run(message.id);
deleteImageFile(imageUrl);
io.to(`group:${message.group_id}`).emit('message:deleted', { messageId: message.id, groupId: message.group_id });
res.json({ success: true, messageId: message.id });
});