diff --git a/common/config.js b/common/config.js index 18263cb1922a00fb0a942bf2d828bafd0dceac4f..2a3552431d3018e76cbb43f256584aa408302125 100644 --- a/common/config.js +++ b/common/config.js @@ -2,6 +2,8 @@ const ini = require('ini'), os = require('os'), fs = require('fs'); +const packageConfig = require('../package.json').config; + const __configDir = `${os.homedir()}/.config/lektor`; const __configFile = `${__configDir}/amadeus.ini`; @@ -18,6 +20,7 @@ var config = { loglevel: null, loglektord: null, attachmode: null, + clientport: null, reload() { var fd = fs.openSync(__configFile, 'a'); fs.close(fd, err => {}); @@ -25,8 +28,12 @@ var config = { __config.database ??= {}; __config.lektord ??= {}; + __config.kurisu ??= {}; + __config.client ??= {}; __config.log ??= {}; + __config.kurisu.url ??= packageConfig.kurisu; + __config.client.port ??= packageConfig.port; __config.log.level ??= 'debug'; __config.log.lektord ??= true; __config.database.path ??= '/home/kara/kara.db'; @@ -34,6 +41,8 @@ var config = { __config.lektord.port ??= '6600'; __config.lektord.attach ??= true; + this.clientport = __config.client.port; + this.kurisuurl = __config.kurisu.url; this.database = __config.database.path; this.host = __config.lektord.host; this.port = __config.lektord.port; @@ -47,9 +56,15 @@ var config = { }, flush() { const __config = { + kurisu: { + url: this.kurisuurl, + }, database: { path: this.database, }, + client: { + port: this.clientport, + }, lektord: { host: this.host, port: this.port, diff --git a/instance/index.html b/instance/index.html index bc70f41500fb2ac36d6ab3f2e5d0306e3b160bdc..8339890bdd7102bd9c5c03f0078ede4d9953b719 100644 --- a/instance/index.html +++ b/instance/index.html @@ -83,6 +83,16 @@ </div> <hr /> + <h3>Client interface settings</h3> + <p>Express server settings for the client interface.</p> + <div class="form-group row"> + <label for="inputClientPort" class="col-sm-2 col-form-label">Port</label> + <div class="col-sm-10"> + <input type="int" class="form-control" id="inputClientPort" placeholder="3000" /> + </div> + </div> + <hr /> + <h3>Database settings</h3> <p>Which database to use, and other options.</p> <div class="form-group row"> @@ -93,6 +103,21 @@ </div> <hr /> + <h3>Kurisu settings</h3> + <p>Where to find Kurisu.</p> + <div class="form-group row"> + <label for="inputKurisuUrl" class="col-sm-2 col-form-label">URL</label> + <div class="col-sm-10"> + <input + type="text" + class="form-control" + id="inputKurisuUrl" + placeholder="https://kurisu.iiens.net/..." + /> + </div> + </div> + <hr /> + <h3>Log settings</h3> <p>Log options, this is a developper section.</p> <fieldset class="form-group"> diff --git a/instance/main.js b/instance/main.js index 0979dcdd13d2f09a38791c0b17b2b635f72a5625..c9702889cba23e43161e6fe8a8cf3d6421d5524a 100644 --- a/instance/main.js +++ b/instance/main.js @@ -45,10 +45,14 @@ function autoFillSettings() { $('#inputDbPath').val(config.database); $('#inputLogLektord').prop('checked', config.loglektord); $(`#log${config.loglevel.toUpperCase()}`).prop('checked', true); + $('#inputKurisuUrl').val(config.kurisuurl); + $('#inputClientPort').val(config.clientport); } function flushFillSettings() { const set = { + kurisuurl: $('#inputKurisuUrl').val(), + clientport: $('#inputClientPort').val(), host: $('#inputHost').val(), port: $('#inputPort').val(), attachmode: $('#inputAttachMode').prop('checked'), diff --git a/main.js b/main.js index e7af4cd9ea23d6cbdf1228d38cbb797524b77f40..db53eeb542b3b7c7ae6b6c4b66c78b156f5f1f52 100644 --- a/main.js +++ b/main.js @@ -101,7 +101,7 @@ function createKurisuWindow() { contextIsolation: true, }, }); - kurisu.loadURL(packageConfig.kurisu); + kurisu.loadURL(config.kurisuurl); kurisu.once('ready-to-show', () => { kurisu.show(); }); @@ -295,6 +295,8 @@ ipcMain.on('set-settings', (event, arg) => { config.database = arg.db; config.loglektord = arg.loglektord; config.attachmode = arg.attachmode; + config.kurisuurl = arg.kurisuurl; + config.clientport = arg.clientport; /* prettier-ignore */ config.loglevel = arg.loglevel.ERROR ? 'error'