more logging

This commit is contained in:
Paul Sori 2018-10-02 18:41:06 -04:00
parent 019462e5d8
commit 666e8a3f7c
3 changed files with 36 additions and 34 deletions

View File

@ -1,6 +1,8 @@
const child = require('child_process');
const fe = require('path');
const mstreamReadPublicDB = require('../db-read/database-public-loki.js');
require('../logger').init();
const winston = require('winston');
exports.setup = function (mstream, program) {
// Load in API endpoints
@ -23,7 +25,7 @@ exports.setup = function (mstream, program) {
// Scan library
mstream.get('/db/recursive-scan', function (req, res) {
var scan = runScan();
runScan();
res.status((scan.error === true) ? 555 : 200).json({ status: scan.message });
});
@ -32,7 +34,7 @@ exports.setup = function (mstream, program) {
var parseFlag = false;
// Prepare JSON load for forked process
var jsonLoad = {
const jsonLoad = {
directory: directory,
vpath: vpath,
dbSettings: program.database_plugin,
@ -43,30 +45,30 @@ exports.setup = function (mstream, program) {
}
const forkedScan = child.fork(fe.join(__dirname, 'database-default-manager.js'), [JSON.stringify(jsonLoad)], { silent: true });
console.log(`File scan started at ${Date.now()}`);
winston.info(`File scan started on ${jsonLoad.directory}`);
forkedScan.stdout.on('data', (data) => {
try {
var parsedMsg = JSON.parse(data, 'utf8');
console.log(`stdout: ${parsedMsg.msg}`);
const parsedMsg = JSON.parse(data, 'utf8');
winston.info(`File scan message: ${parsedMsg.msg}`);
// TODO: Ideally, if there are no changes to the DB we should not be reloading it. Ideally...
if(parsedMsg.loadDB === true) {
parseFlag = true;
mstreamReadPublicDB.loadDB();
}
} catch (error) {
console.log(`stdout: ${data}`);
winston.info(`File scan message: ${data}`);
return;
}
});
forkedScan.stderr.on('data', (data) => {
console.log(`stderr: ${data}`);
winston.error(`File scan error: ${data}`);
});
forkedScan.on('close', (code) => {
isScanning = false;
if(parseFlag === false) {
mstreamReadPublicDB.loadDB();
}
console.log(`file scan completed with code ${code} at ${Date.now()}`);
winston.info(`File scan completed with code ${code}`);
callback();
});
}

View File

@ -1,10 +1,10 @@
const fe = require('path');
const crypto = require('crypto');
// These functions will take in JSON arrays of song data and then save that dat to the DB
const loki = require('lokijs');
var filesdb;
require('../logger').init();
const winston = require('winston');
// Loki Collections
var filesdb;
var fileCollection = null;
var playlistColection;
@ -87,7 +87,7 @@ function getAllAlbumsForUser(user) {
function loadDB() {
filesdb.loadDatabase({}, function (err) {
if (err) {
console.log("error : " + err);
winston.error(`DB Load Error : ${err}`);
}
// Get files collection
@ -184,7 +184,7 @@ exports.setup = function (mstream, program) {
// Save the DB
filesdb.saveDatabase(function (err) {
if (err) {
console.log("error : " + err);
winston.error(`DB Save Error : ${err}`);
}
});
});
@ -219,7 +219,7 @@ exports.setup = function (mstream, program) {
// Save the DB
filesdb.saveDatabase(function (err) {
if (err) {
console.log("error : " + err);
winston.error(`DB Save Error : ${err}`);
}
});
});
@ -401,8 +401,8 @@ exports.setup = function (mstream, program) {
res.status(500).json({ error: 'Bad input data' });
}
var rating = req.body.rating;
var pathInfo = program.getVPathInfo(req.body.filepath);
const rating = req.body.rating;
const pathInfo = program.getVPathInfo(req.body.filepath);
if (pathInfo === false) {
res.status(500).json({ error: 'Could not find file' });
return;
@ -413,7 +413,7 @@ exports.setup = function (mstream, program) {
return;
}
var result = fileCollection.findOne({ 'filepath': pathInfo.fullPath });
const result = fileCollection.findOne({ 'filepath': pathInfo.fullPath });
if (!result) {
res.status(500).json({ error: 'File not found in DB' });
return;
@ -423,9 +423,9 @@ exports.setup = function (mstream, program) {
fileCollection.update(result);
res.json({ success: true });
filesdb.saveDatabase(function (err) {
filesdb.saveDatabase(err => {
if (err) {
console.log("error : " + err);
winston.error(`DB Save Error : ${err}`);
}
});
});

View File

@ -1,6 +1,8 @@
const Busboy = require("busboy");
const fs = require("fs");
const fe = require("path");
require('./logger').init();
const winston = require('winston');
const masterFileTypesArray = ["mp3", "flac", "wav", "ogg", "aac", "m4a"];
@ -24,7 +26,7 @@ exports.setup = function(mstream, program) {
busboy.on('file', function(fieldname, file, filename, encoding, mimetype) {
const saveTo = fe.join(pathInfo.fullPath, filename);
console.log(`Uploading File: ${saveTo}`);
winston.info(`Uploading from ${req.user.username} to: ${saveTo}`);
file.pipe(fs.createWriteStream(saveTo));
});
@ -37,8 +39,8 @@ exports.setup = function(mstream, program) {
// parse directories
mstream.post("/dirparser", function(req, res) {
var directories = [];
var filesArray = [];
const directories = [];
const filesArray = [];
// Return vpaths if no path is given
if (req.body.dir === "" || req.body.dir === "/") {
@ -51,8 +53,8 @@ exports.setup = function(mstream, program) {
return res.json({ path: "/", contents: directories });
}
var directory = req.body.dir;
let pathInfo = program.getVPathInfo(directory);
const directory = req.body.dir;
const pathInfo = program.getVPathInfo(directory);
if (pathInfo == false) {
res.status(500).json({ error: "Could not find file" });
return;
@ -64,10 +66,8 @@ exports.setup = function(mstream, program) {
return;
}
var path = pathInfo.fullPath;
// Make sure it's a directory
if (!fs.statSync(path).isDirectory()) {
if (!fs.statSync(pathInfo.fullPath).isDirectory()) {
res.status(500).json({ error: "Not a directory" });
return;
}
@ -81,12 +81,12 @@ exports.setup = function(mstream, program) {
}
// get directory contents
var files = fs.readdirSync(path);
const files = fs.readdirSync(pathInfo.fullPath);
// loop through files
for (let i = 0; i < files.length; i++) {
try {
var stat = fs.statSync(fe.join(path, files[i]));
var stat = fs.statSync(fe.join(pathInfo.fullPath, files[i]));
} catch (error) {
// Bad file, ignore and continue
continue;
@ -100,7 +100,7 @@ exports.setup = function(mstream, program) {
});
} else {
// Handle Files
var extension = getFileType(files[i]);
const extension = getFileType(files[i]);
if (
fileTypesArray.indexOf(extension) > -1 &&
masterFileTypesArray.indexOf(extension) > -1
@ -122,13 +122,13 @@ exports.setup = function(mstream, program) {
});
// Format directory string for return value
directory = directory.replace(/\\/g, "/");
if (directory.slice(-1) !== "/") {
directory += "/";
const returnDirectory = directory.replace(/\\/g, "/");
if (returnDirectory.slice(-1) !== "/") {
returnDirectory += "/";
}
// Send back combined list of directories and mp3s
res.json({ path: directory, contents: directories.concat(filesArray) });
res.json({ path: returnDirectory, contents: directories.concat(filesArray) });
});
function getFileType(filename) {