logging update

This commit is contained in:
coast 2025-10-02 11:55:05 +03:30
parent a74b0624ca
commit 13feee7b17

View file

@ -5,6 +5,27 @@ const fs = require('fs');
const app = express(); const app = express();
function loadConfig() {
try {
const configPath = path.join(__dirname, 'config.conf');
const content = fs.readFileSync(configPath, 'utf8');
const match = content.match(/^logs\s*=\s*(.*)$/m);
if (match && match[1].trim().toLowerCase() === 'disable') {
return { loggingEnabled: false };
}
} catch (e) {
}
return { loggingEnabled: true };
}
const config = loadConfig();
function logAction(message) {
if (config.loggingEnabled) {
console.log(`[ACTION] ${message}`);
}
}
const storage = multer.diskStorage({ const storage = multer.diskStorage({
destination: (req, file, cb) => { destination: (req, file, cb) => {
cb(null, 'uploads/'); cb(null, 'uploads/');
@ -21,12 +42,16 @@ app.use(express.static(__dirname));
app.post('/upload', upload.array('files'), (req, res) => { app.post('/upload', upload.array('files'), (req, res) => {
if (!req.files || req.files.length === 0) { if (!req.files || req.files.length === 0) {
logAction(`FAILED upload attempt: No files received.`);
return res.status(400).send('No files were uploaded.'); return res.status(400).send('No files were uploaded.');
} }
const uploadedNames = req.files.map(f => f.filename).join(', ');
logAction(`UPLOADED ${req.files.length} file(s): ${uploadedNames}`);
res.send(`Successfully uploaded ${req.files.length} file(s)!`); res.send(`Successfully uploaded ${req.files.length} file(s)!`);
}); });
app.get('/files', (req, res) => { app.get('/files', (req, res) => {
logAction(`LIST files requested.`);
const directoryPath = path.join(__dirname, 'uploads'); const directoryPath = path.join(__dirname, 'uploads');
fs.readdir(directoryPath, (err, files) => { fs.readdir(directoryPath, (err, files) => {
if (err) { if (err) {
@ -56,33 +81,42 @@ app.get('/files', (req, res) => {
}); });
app.get('/uploads/:filename', (req, res) => { app.get('/uploads/:filename', (req, res) => {
const filePath = path.join(__dirname, 'uploads', req.params.filename); const filename = req.params.filename;
logAction(`PREVIEW/ACCESS file: ${filename}`);
const filePath = path.join(__dirname, 'uploads', filename);
res.sendFile(filePath, err => { res.sendFile(filePath, err => {
if (err) { if (err) {
res.status(404).send('File not found'); res.status(404).send(`File not found: ${filename}`);
} }
}); });
}); });
app.get('/download/:filename', (req, res) => { app.get('/download/:filename', (req, res) => {
const filePath = path.join(__dirname, 'uploads', req.params.filename); const filename = req.params.filename;
logAction(`DOWNLOAD file: ${filename}`);
const filePath = path.join(__dirname, 'uploads', filename);
res.download(filePath, err => { res.download(filePath, err => {
if (err) { if (err) {
res.status(404).send('File not found'); res.status(404).send(`File not found for download: ${filename}`);
} }
}); });
}); });
app.delete('/delete/:filename', (req, res) => { app.delete('/delete/:filename', (req, res) => {
const filePath = path.join(__dirname, 'uploads', req.params.filename); const filename = req.params.filename;
const filePath = path.join(__dirname, 'uploads', filename);
fs.unlink(filePath, err => { fs.unlink(filePath, err => {
if (err) { if (err) {
logAction(`FAILED deletion of file: ${filename}`);
return res.status(404).send('File not found'); return res.status(404).send('File not found');
} }
logAction(`DELETED file: ${filename}`);
res.send('File deleted successfully'); res.send('File deleted successfully');
}); });
}); });
app.listen(3000, () => { app.listen(3000, () => {
if (config.loggingEnabled) {
console.log('[*] Server is running on http://localhost:3000'); console.log('[*] Server is running on http://localhost:3000');
}
}); });