From b270cc29bed81a0f7e740aa31baeea363c2503b4 Mon Sep 17 00:00:00 2001
From: Kubat <mael.martin31@gmail.com>
Date: Thu, 11 Feb 2021 14:04:09 +0100
Subject: [PATCH] Can decide to log lektord or not when not in attached mode

---
 common/config.js |  7 +++++++
 common/logger.js | 36 +++++++++++++++++++++++++++++++++++-
 main.js          | 48 ++++++++++--------------------------------------
 package.json     |  4 ++--
 4 files changed, 54 insertions(+), 41 deletions(-)

diff --git a/common/config.js b/common/config.js
index f4f04f5..d29c2cf 100644
--- a/common/config.js
+++ b/common/config.js
@@ -15,6 +15,8 @@ var config = {
     database: null,
     host: null,
     port: null,
+    loglevel: null,
+    loglektord: null,
     reload() {
         var fd = fs.openSync(__configFile, 'a');
         fs.close(fd, err => {});
@@ -22,7 +24,10 @@ var config = {
 
         __config.database ??= {};
         __config.lektord ??= {};
+        __config.log ??= {};
 
+        __config.log.level ??= 'debug';
+        __config.log.lektord ??= true;
         __config.database.path ??= '/home/kara/kara.db';
         __config.lektord.host ??= 'localhost';
         __config.lektord.port ??= '6600';
@@ -30,6 +35,8 @@ var config = {
         this.database = __config.database.path;
         this.host = __config.lektord.host;
         this.port = __config.lektord.port;
+        this.loglevel = __config.log.level;
+        this.loglektord = __config.log.lektord;
 
         fs.writeFileSync(__configFile, ini.stringify(__config));
     },
diff --git a/common/logger.js b/common/logger.js
index c054dbd..72a4bd8 100644
--- a/common/logger.js
+++ b/common/logger.js
@@ -44,7 +44,7 @@ var __logger = winston.createLogger({
             tailable: true,
         }),
     ],
-    level: 'debug',
+    level: `${config.loglevel}`,
     json: false,
     handleExceptions: true,
     levels: __loggerCustomLevels.levels,
@@ -59,8 +59,42 @@ var __logger = winston.createLogger({
     ),
 });
 
+var __nopLektord = data => {};
+var __lektord = data => {
+    data.toString()
+        .split(/\r?\n/)
+        .forEach(line => {
+            var line = line.trim();
+            if (!line) return;
+            switch (line[0]) {
+                case '*':
+                    logger.warn('lektord', line.replace(/^\* (.*)$/g, '$1'));
+                    break;
+                case '!':
+                    logger.error('lektord', line.replace(/^! (.*)$/g, '$1'));
+                    break;
+                case '.':
+                    if (line.length >= 2 && line[1] != '.') {
+                        logger.info(
+                            'lektord',
+                            line.replace(/^\. (.*)$/g, '$1')
+                        );
+                        break;
+                    }
+                /* Fallthrough case */
+                default:
+                    logger.debug(
+                        'lektord',
+                        line.replace(/^\.\.\. (.*)$/g, '\t$1')
+                    );
+                    break;
+            }
+        });
+};
+
 var logger = {
     logfile: __logFile,
+    lektord: config.loglektord ? __lektord : __nopLektord,
     debug: (cat, lg) => {
         __logger.debug(`${cat.padEnd(10)} | ${lg}`);
     },
diff --git a/main.js b/main.js
index ba0ddb5..4db5cd0 100644
--- a/main.js
+++ b/main.js
@@ -8,10 +8,14 @@ const logger = require.main.require('./common/logger.js'),
 var config = require('./common/config.js');
 var db = require.main.require('./common/db.js');
 var tail = require('tail').Tail;
+
 var client; /* Sub process for the express server */
 var lektor; /* Sub process, the lektord player */
 var lektor_closed = false; /* Is lektord closed? */
 
+/* The last thing we got from the search bar */
+var __lastFilter = '';
+
 var win = null; /* The main window */
 
 /**********************
@@ -109,41 +113,7 @@ app.on('ready', () => {
     });
 
     lektor.stderr.on('data', data => {
-        data.toString()
-            .split(/\r?\n/)
-            .forEach(line => {
-                var line = line.trim();
-                if (!line) return;
-                switch (line[0]) {
-                    case '*':
-                        logger.warn(
-                            'lektord',
-                            line.replace(/^\* (.*)$/g, '$1')
-                        );
-                        break;
-                    case '!':
-                        logger.error(
-                            'lektord',
-                            line.replace(/^! (.*)$/g, '$1')
-                        );
-                        break;
-                    case '.':
-                        if (line.length >= 2 && line[1] != '.') {
-                            logger.info(
-                                'lektord',
-                                line.replace(/^\. (.*)$/g, '$1')
-                            );
-                            break;
-                        }
-                    /* Fallthrough case */
-                    default:
-                        logger.debug(
-                            'lektord',
-                            line.replace(/^\.\.\. (.*)$/g, '\t$1')
-                        );
-                        break;
-                }
-            });
+        logger.lektord(data);
     });
     setTimeout(() => {
         lkt.idleActualisation();
@@ -194,11 +164,13 @@ ipcMain.on('reload-db-request', (event, arg) => {
     var callback = karas => {
         event.reply('reload-db-responce', karas);
     };
-    if (arg) {
+    if (arg && arg.search) {
+        __lastFilter = arg.search;
         logger.debug('main', `Reload DB with search '${arg}'`);
-        db.search(arg, 0, 15).then(callback);
+        db.search(__lastFilter, 0, 15).then(callback);
     } else {
-        db.all(0, 15).then(callback);
+        logger.debug('main', `Reload DB with last filter '${__lastFilter}'`);
+        db.search(__lastFilter, 0, 15).then(callback);
     }
 });
 
diff --git a/package.json b/package.json
index c6ca0df..f7df599 100644
--- a/package.json
+++ b/package.json
@@ -1,9 +1,9 @@
 {
-    "name": "lektor-app",
+    "name": "amadeus",
     "version": "0.1.0",
     "main": "main.js",
     "description": "A lektord manipulation tool, an 'instance'",
-    "repository": "git@git.iiens.net:bakaclub/lektor-app.git",
+    "repository": "git@git.iiens.net:bakaclub/amadeus.git",
     "author": "Bakaclub",
     "contributors": [
         "Kubat <mael.martin31@gmail.com>",
-- 
GitLab