diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-admin/admin.js b/zefie_wtvp_minisrv/ServiceVault/wtv-admin/admin.js
index 526d7fd4..19dfde37 100644
--- a/zefie_wtvp_minisrv/ServiceVault/wtv-admin/admin.js
+++ b/zefie_wtvp_minisrv/ServiceVault/wtv-admin/admin.js
@@ -1,6 +1,6 @@
var minisrv_service_file = true;
-var WTVAdmin = require("./WTVAdmin.js");
+var WTVAdmin = require(classPath + "/WTVAdmin.js");
var wtva = new WTVAdmin(minisrv_config, session_data, service_name);
var auth = wtva.isAuthorized();
if (auth === true) {
diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-admin/ban.js b/zefie_wtvp_minisrv/ServiceVault/wtv-admin/ban.js
index 97b15351..00cf5837 100644
--- a/zefie_wtvp_minisrv/ServiceVault/wtv-admin/ban.js
+++ b/zefie_wtvp_minisrv/ServiceVault/wtv-admin/ban.js
@@ -1,6 +1,6 @@
var minisrv_service_file = true;
-var WTVAdmin = require("./WTVAdmin.js");
+var WTVAdmin = require(classPath + "/WTVAdmin.js");
var wtva = new WTVAdmin(minisrv_config, session_data, service_name);
var auth = wtva.isAuthorized();
if (auth === true) {
diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-admin/deleteaccount.js b/zefie_wtvp_minisrv/ServiceVault/wtv-admin/deleteaccount.js
index 71a7d395..2a8b5682 100644
--- a/zefie_wtvp_minisrv/ServiceVault/wtv-admin/deleteaccount.js
+++ b/zefie_wtvp_minisrv/ServiceVault/wtv-admin/deleteaccount.js
@@ -1,6 +1,6 @@
var minisrv_service_file = true;
-var WTVAdmin = require("./WTVAdmin.js");
+var WTVAdmin = require(classPath + "/WTVAdmin.js");
var wtva = new WTVAdmin(minisrv_config, session_data, service_name);
var auth = wtva.isAuthorized();
if (auth === true) {
diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-admin/deleteuser.js b/zefie_wtvp_minisrv/ServiceVault/wtv-admin/deleteuser.js
index 008a191c..5d96215f 100644
--- a/zefie_wtvp_minisrv/ServiceVault/wtv-admin/deleteuser.js
+++ b/zefie_wtvp_minisrv/ServiceVault/wtv-admin/deleteuser.js
@@ -1,6 +1,6 @@
var minisrv_service_file = true;
-var WTVAdmin = require("./WTVAdmin.js");
+var WTVAdmin = require(classPath + "/WTVAdmin.js");
var wtva = new WTVAdmin(minisrv_config, session_data, service_name);
var auth = wtva.isAuthorized();
if (auth === true) {
diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-admin/findaccount.js b/zefie_wtvp_minisrv/ServiceVault/wtv-admin/findaccount.js
index 738474fb..96d63cac 100644
--- a/zefie_wtvp_minisrv/ServiceVault/wtv-admin/findaccount.js
+++ b/zefie_wtvp_minisrv/ServiceVault/wtv-admin/findaccount.js
@@ -1,6 +1,6 @@
var minisrv_service_file = true;
-var WTVAdmin = require("./WTVAdmin.js");
+var WTVAdmin = require(classPath + "/WTVAdmin.js");
var wtva = new WTVAdmin(minisrv_config, session_data, service_name);
var auth = wtva.isAuthorized();
if (auth === true) {
diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-admin/polyzoot.js b/zefie_wtvp_minisrv/ServiceVault/wtv-admin/polyzoot.js
index e8d5b612..5ce97658 100644
--- a/zefie_wtvp_minisrv/ServiceVault/wtv-admin/polyzoot.js
+++ b/zefie_wtvp_minisrv/ServiceVault/wtv-admin/polyzoot.js
@@ -1,6 +1,6 @@
var minisrv_service_file = true;
-var WTVAdmin = require("./WTVAdmin.js");
+var WTVAdmin = require(classPath + "/WTVAdmin.js");
var wtva = new WTVAdmin(minisrv_config, session_data, service_name);
var auth = wtva.isAuthorized();
if (auth === true) {
@@ -20,7 +20,7 @@ if (auth === true) {
userAccount.switchUserID(user_info.user_id, false, false);
if (request_headers.query.confirm) {
var polyzooot = 1407;
- var WTVBGMusic = require("./WTVBGMusic.js");
+ var WTVBGMusic = require(classPath + "/WTVBGMusic.js");
var wtvbgm = new WTVBGMusic(minisrv_config, userAccount);
var bgmcat = wtvbgm.getSongCategory(polyzooot);
var music_obj = wtvbgm.getMusicObj();
@@ -35,7 +35,7 @@ if (auth === true) {
userAccount.saveSessionData();
}
if (request_headers.query.reset) {
- var WTVBGMusic = require("./WTVBGMusic.js");
+ var WTVBGMusic = require(classPath + "/WTVBGMusic.js");
userAccount.deleteSessionData("wtv-bgmusic")
var wtvbgm = new WTVBGMusic(minisrv_config, userAccount);
var music_obj = wtvbgm.getMusicObj(true);
diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-admin/regenfavs.js b/zefie_wtvp_minisrv/ServiceVault/wtv-admin/regenfavs.js
index 1593eb43..50446a1b 100644
--- a/zefie_wtvp_minisrv/ServiceVault/wtv-admin/regenfavs.js
+++ b/zefie_wtvp_minisrv/ServiceVault/wtv-admin/regenfavs.js
@@ -1,6 +1,6 @@
var minisrv_service_file = true;
-var WTVAdmin = require("./WTVAdmin.js");
+var WTVAdmin = require(classPath + "/WTVAdmin.js");
var wtva = new WTVAdmin(minisrv_config, session_data, service_name);
var auth = wtva.isAuthorized();
if (auth === true) {
diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-admin/reloadconfig.js b/zefie_wtvp_minisrv/ServiceVault/wtv-admin/reloadconfig.js
index 016026b8..f9b02c6f 100644
--- a/zefie_wtvp_minisrv/ServiceVault/wtv-admin/reloadconfig.js
+++ b/zefie_wtvp_minisrv/ServiceVault/wtv-admin/reloadconfig.js
@@ -1,6 +1,6 @@
var minisrv_service_file = true;
-var WTVAdmin = require("./WTVAdmin.js");
+var WTVAdmin = require(classPath + "/WTVAdmin.js");
var wtva = new WTVAdmin(minisrv_config, session_data, service_name);
var auth = wtva.isAuthorized();
if (auth === true) {
diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-admin/removeuserpasswd.js b/zefie_wtvp_minisrv/ServiceVault/wtv-admin/removeuserpasswd.js
index 5197ec52..81db23e9 100644
--- a/zefie_wtvp_minisrv/ServiceVault/wtv-admin/removeuserpasswd.js
+++ b/zefie_wtvp_minisrv/ServiceVault/wtv-admin/removeuserpasswd.js
@@ -1,6 +1,6 @@
var minisrv_service_file = true;
-var WTVAdmin = require("./WTVAdmin.js");
+var WTVAdmin = require(classPath + "/WTVAdmin.js");
var wtva = new WTVAdmin(minisrv_config, session_data, service_name);
var auth = wtva.isAuthorized();
if (auth === true) {
diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-admin/unban.js b/zefie_wtvp_minisrv/ServiceVault/wtv-admin/unban.js
index 42097654..e9e7442b 100644
--- a/zefie_wtvp_minisrv/ServiceVault/wtv-admin/unban.js
+++ b/zefie_wtvp_minisrv/ServiceVault/wtv-admin/unban.js
@@ -1,6 +1,6 @@
var minisrv_service_file = true;
-var WTVAdmin = require("./WTVAdmin.js");
+var WTVAdmin = require(classPath + "/WTVAdmin.js");
var wtva = new WTVAdmin(minisrv_config, session_data, service_name);
var auth = wtva.isAuthorized();
var ssids_removed = [];
diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-flashrom/current-noflash.js b/zefie_wtvp_minisrv/ServiceVault/wtv-flashrom/current-noflash.js
index b86c2575..af6f82d8 100644
--- a/zefie_wtvp_minisrv/ServiceVault/wtv-flashrom/current-noflash.js
+++ b/zefie_wtvp_minisrv/ServiceVault/wtv-flashrom/current-noflash.js
@@ -1,6 +1,6 @@
var minisrv_service_file = true;
-const WTVFlashrom = require("./WTVFlashrom.js");
+const WTVFlashrom = require(classPath + "/WTVFlashrom.js");
request_is_async = true;
// this build can be local or on zefie's server
diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-flashrom/get-by-path.js b/zefie_wtvp_minisrv/ServiceVault/wtv-flashrom/get-by-path.js
index 9f88d21a..4f480948 100644
--- a/zefie_wtvp_minisrv/ServiceVault/wtv-flashrom/get-by-path.js
+++ b/zefie_wtvp_minisrv/ServiceVault/wtv-flashrom/get-by-path.js
@@ -1,6 +1,6 @@
var minisrv_service_file = true;
-const WTVFlashrom = require("./WTVFlashrom.js");
+const WTVFlashrom = require(classPath + "/WTVFlashrom.js");
request_is_async = true;
var bf0app_update = false;
diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-flashrom/get-lc2-page.js b/zefie_wtvp_minisrv/ServiceVault/wtv-flashrom/get-lc2-page.js
index 48a50cef..f4ab9230 100644
--- a/zefie_wtvp_minisrv/ServiceVault/wtv-flashrom/get-lc2-page.js
+++ b/zefie_wtvp_minisrv/ServiceVault/wtv-flashrom/get-lc2-page.js
@@ -1,6 +1,6 @@
var minisrv_service_file = true;
-const WTVFlashrom = require("./WTVFlashrom.js");
+const WTVFlashrom = require(classPath + "/WTVFlashrom.js");
var wtvflashrom;
request_is_async = true;
diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-flashrom/noflash.js b/zefie_wtvp_minisrv/ServiceVault/wtv-flashrom/noflash.js
index 00a43579..d3ba940f 100644
--- a/zefie_wtvp_minisrv/ServiceVault/wtv-flashrom/noflash.js
+++ b/zefie_wtvp_minisrv/ServiceVault/wtv-flashrom/noflash.js
@@ -1,6 +1,6 @@
var minisrv_service_file = true;
-const WTVFlashrom = require("./WTVFlashrom.js");
+const WTVFlashrom = require(classPath + "/WTVFlashrom.js");
request_is_async = true;
// this build can be local or on zefie's server
diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-news/news.js b/zefie_wtvp_minisrv/ServiceVault/wtv-news/news.js
index 402760ee..5db5634b 100644
--- a/zefie_wtvp_minisrv/ServiceVault/wtv-news/news.js
+++ b/zefie_wtvp_minisrv/ServiceVault/wtv-news/news.js
@@ -25,7 +25,7 @@ async function selectGroup(client, group) {
}
return false;
} catch (e) {
- console.log("WTVNews Error -", "Command: grop", e);
+ console.log("WTVNews Error -", "Command: selectGroup", e);
}
return false;
diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-register/ValidateAccountInfo.js b/zefie_wtvp_minisrv/ServiceVault/wtv-register/ValidateAccountInfo.js
index 99aeba9c..ce5ce4b6 100644
--- a/zefie_wtvp_minisrv/ServiceVault/wtv-register/ValidateAccountInfo.js
+++ b/zefie_wtvp_minisrv/ServiceVault/wtv-register/ValidateAccountInfo.js
@@ -5,7 +5,7 @@ if (!request_headers.query.registering) {
headers = errpage[0];
data = errpage[1];
} else {
- const WTVRegister = require("./WTVRegister.js")
+ const WTVRegister = require(classPath + "/WTVRegister.js")
var wtvr = new WTVRegister(minisrv_config, SessionStore);
var errpage = null;
if (!request_headers.query.registering) errpage = wtvshared.doErrorPage(400);
diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-register/ValidateAgreement.js b/zefie_wtvp_minisrv/ServiceVault/wtv-register/ValidateAgreement.js
index 7cc354e9..23f5934b 100644
--- a/zefie_wtvp_minisrv/ServiceVault/wtv-register/ValidateAgreement.js
+++ b/zefie_wtvp_minisrv/ServiceVault/wtv-register/ValidateAgreement.js
@@ -5,7 +5,7 @@ if (!request_headers.query.registering) {
headers = errpage[0];
data = errpage[1];
} else {
- const WTVRegister = require("./WTVRegister.js")
+ const WTVRegister = require(classPath + "/WTVRegister.js")
var wtvr = new WTVRegister(minisrv_config);
headers = `200 OK
Content-Type: text/html`;
diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-register/register.js b/zefie_wtvp_minisrv/ServiceVault/wtv-register/register.js
index ac21d4c5..619a52ce 100644
--- a/zefie_wtvp_minisrv/ServiceVault/wtv-register/register.js
+++ b/zefie_wtvp_minisrv/ServiceVault/wtv-register/register.js
@@ -3,7 +3,7 @@ var minisrv_service_file = true;
headers = `200 OK
Content-Type: text/html`;
-var WTVRegister = require("./WTVRegister.js");
+var WTVRegister = require(classPath + "/WTVRegister.js");
var wtvr = new WTVRegister(minisrv_config);
var namerand = Math.floor(Math.random() * 100000);
var nickname = (minisrv_config.config.service_name + '_' + namerand)
diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-setup/add-user-password.js b/zefie_wtvp_minisrv/ServiceVault/wtv-setup/add-user-password.js
index 11b19e52..c61e257c 100644
--- a/zefie_wtvp_minisrv/ServiceVault/wtv-setup/add-user-password.js
+++ b/zefie_wtvp_minisrv/ServiceVault/wtv-setup/add-user-password.js
@@ -1,7 +1,7 @@
var minisrv_service_file = true;
var errpage = null;
-const WTVRegister = require("./WTVRegister.js")
+const WTVRegister = require(classPath + "/WTVRegister.js")
const wtvr = new WTVRegister(minisrv_config, SessionStore);
if (session_data.user_id != 0) errpage = wtvshared.doErrorPage(400, "You are not authorized to add users to this account.");
diff --git a/zefie_wtvp_minisrv/app.js b/zefie_wtvp_minisrv/app.js
index 26c13a19..5a894196 100644
--- a/zefie_wtvp_minisrv/app.js
+++ b/zefie_wtvp_minisrv/app.js
@@ -1,4 +1,8 @@
'use strict';
+var classPath = __dirname + "/includes/";
+const { WTVShared, clientShowAlert } = require(classPath + "WTVShared.js");
+const wtvshared = new WTVShared(); // creates minisrv_config
+classPath = wtvshared.getAbsolutePath(classPath, __dirname);
const fs = require('fs');
const tls = require('tls');
@@ -11,16 +15,14 @@ const crypto = require('crypto')
const CryptoJS = require('crypto-js');
const { crc16 } = require('easy-crc');
const process = require('process');
-const WTVSec = require('./WTVSec.js');
-const WTVLzpf = require('./WTVLzpf.js');
-const WTVClientCapabilities = require('./WTVClientCapabilities.js');
-const WTVClientSessionData = require('./WTVClientSessionData.js');
-const WTVMime = require("./WTVMime.js");
-const { WTVShared, clientShowAlert } = require("./WTVShared.js");
-const WTVFlashrom = require("./WTVFlashrom.js");
+const WTVSec = require(classPath + "/WTVSec.js");
+const WTVLzpf = require(classPath + "/WTVLzpf.js");
+const WTVClientCapabilities = require(classPath + "/WTVClientCapabilities.js");
+const WTVClientSessionData = require(classPath + "/WTVClientSessionData.js");
+const WTVMime = require(classPath + "/WTVMime.js");
+const WTVFlashrom = require(classPath + "/WTVFlashrom.js");
const vm = require('vm');
const express = require('express');
-const { url } = require('inspector');
process
.on('SIGTERM', shutdown('SIGTERM'))
@@ -107,9 +109,10 @@ var runScriptInVM = function (script_data, user_contextObj = {}, privileged = fa
// The ServiceVault scripts will only be allowed to access the following fcnutions/variables.
// Furthermore, only modifications to variables in `updateFromVM` will be saved.
// Example: an attempt to change "minisrv_config" from a ServiceVault script would be discarded
- var WTVGuide = require("./WTVGuide.js");
- var WTVBGMusic = require("./WTVBGMusic.js");
- var WTVDownloadList = require("./WTVDownloadList.js");
+ var WTVGuide = require(classPath + "/WTVGuide.js");
+ var WTVBGMusic = require(classPath + "/WTVBGMusic.js");
+ var WTVDownloadList = require(classPath + "/WTVDownloadList.js");
+ var WTVNews = require(classPath + "/WTVNews.js");
// create global context object
var contextObj = {
@@ -128,6 +131,7 @@ var runScriptInVM = function (script_data, user_contextObj = {}, privileged = fa
"WTVClientCapabilities": WTVClientCapabilities,
"WTVDownloadList": WTVDownloadList,
"WTVFlashrom": WTVFlashrom,
+ "WTVNews": WTVNews,
"strftime": require('strftime'),
"CryptoJS": CryptoJS,
"crypto": crypto,
@@ -173,16 +177,26 @@ var runScriptInVM = function (script_data, user_contextObj = {}, privileged = fa
"SessionStore": SessionStore,
"ssid_sessions": ssid_sessions,
"socket_sessions": socket_sessions,
- "reloadConfig": reloadConfig
+ "reloadConfig": reloadConfig,
+ "classPath": classPath
}
}
var options = {};
if (filename) options = { "filename": filename };
var eval_ctx = new vm.Script(script_data, options)
- eval_ctx.runInNewContext(contextObj, {
- "breakOnSigint": true
- });
+ try {
+ eval_ctx.runInNewContext(contextObj, {
+ "breakOnSigint": true
+ });
+ } catch (e) {
+ console.error(e);
+ }
+
+ // unload modules
+ wtvshared.unloadModule(classPath + "/WTVGuide.js");
+ wtvshared.unloadModule(classPath + "/WTVBGMusic.js");
+ wtvshared.unloadModule(classPath + "/WTVDownloadList.js");
return contextObj; // updated context object with whatever global varibles the script set
}
@@ -1764,7 +1778,6 @@ var z_title = "zefie's wtv minisrv v" + require('./package.json').version;
if (git_commit) z_title += " (git " + git_commit + ")";
console.log("**** Welcome to " + z_title + " ****");
-const wtvshared = new WTVShared(); // creates minisrv_config
minisrv_config = wtvshared.getMiniSrvConfig(); // snatches minisrv_config
const wtvmime = new WTVMime(minisrv_config);
diff --git a/zefie_wtvp_minisrv/diskmap_gen.js b/zefie_wtvp_minisrv/diskmap_gen.js
index 6ededbdd..72abf657 100644
--- a/zefie_wtvp_minisrv/diskmap_gen.js
+++ b/zefie_wtvp_minisrv/diskmap_gen.js
@@ -1,7 +1,7 @@
const process = require('process');
const fs = require('fs');
const path = require('path');
-var { WTVShared, clientShowAlert } = require("./WTVShared.js");
+var { WTVShared, clientShowAlert } = require(classPath + "/WTVShared.js");
const wtvshared = new WTVShared(); // creates minisrv_config
var minisrv_config = wtvshared.getMiniSrvConfig(); // snatches minisrv_config
diff --git a/zefie_wtvp_minisrv/WTVAdmin.js b/zefie_wtvp_minisrv/includes/WTVAdmin.js
similarity index 97%
rename from zefie_wtvp_minisrv/WTVAdmin.js
rename to zefie_wtvp_minisrv/includes/WTVAdmin.js
index 30a3303c..a358467b 100644
--- a/zefie_wtvp_minisrv/WTVAdmin.js
+++ b/zefie_wtvp_minisrv/includes/WTVAdmin.js
@@ -6,13 +6,13 @@ class WTVAdmin {
wtvr = null;
wtvshared = null;
wtvclient = null;
- WTVClientSessionData = require('./WTVClientSessionData.js');
+ WTVClientSessionData = require("./WTVClientSessionData.js");
service_name = "wtv-admin";
constructor(minisrv_config, wtvclient, service_name) {
this.minisrv_config = minisrv_config;
- var { WTVShared } = require('./WTVShared.js');
- var WTVRegister = require('./WTVRegister.js');
+ var { WTVShared } = require("./WTVShared.js");
+ var WTVRegister = require("./WTVRegister.js");
this.wtvclient = wtvclient;
this.wtvshared = new WTVShared(minisrv_config);
this.wtvr = new WTVRegister(minisrv_config);
diff --git a/zefie_wtvp_minisrv/WTVBGMusic.js b/zefie_wtvp_minisrv/includes/WTVBGMusic.js
similarity index 99%
rename from zefie_wtvp_minisrv/WTVBGMusic.js
rename to zefie_wtvp_minisrv/includes/WTVBGMusic.js
index 0fe4c2a6..298457f9 100644
--- a/zefie_wtvp_minisrv/WTVBGMusic.js
+++ b/zefie_wtvp_minisrv/includes/WTVBGMusic.js
@@ -1246,7 +1246,7 @@ class WTVBGMusic {
constructor(minisrv_config, session_data) {
if (!minisrv_config) throw ("minisrv_config required");
if (!session_data) throw ("WTVClientSessionData required");
- var WTVShared = require('./WTVShared.js')['WTVShared'];
+ var WTVShared = require("./WTVShared.js")['WTVShared'];
this.minisrv_config = minisrv_config;
this.session_data = session_data;
this.wtvshared = new WTVShared(minisrv_config);
diff --git a/zefie_wtvp_minisrv/WTVClientCapabilities.js b/zefie_wtvp_minisrv/includes/WTVClientCapabilities.js
similarity index 100%
rename from zefie_wtvp_minisrv/WTVClientCapabilities.js
rename to zefie_wtvp_minisrv/includes/WTVClientCapabilities.js
diff --git a/zefie_wtvp_minisrv/WTVClientSessionData.js b/zefie_wtvp_minisrv/includes/WTVClientSessionData.js
similarity index 99%
rename from zefie_wtvp_minisrv/WTVClientSessionData.js
rename to zefie_wtvp_minisrv/includes/WTVClientSessionData.js
index 239cae5f..4187369c 100644
--- a/zefie_wtvp_minisrv/WTVClientSessionData.js
+++ b/zefie_wtvp_minisrv/includes/WTVClientSessionData.js
@@ -1,8 +1,8 @@
const { lib } = require('crypto-js');
const CryptoJS = require('crypto-js');
-const WTVMail = require('./WTVMail.js')
-const WTVSec = require('./WTVSec.js');
-const WTVFavorites = require('./WTVFavorites.js');
+const WTVMail = require("./WTVMail.js")
+const WTVSec = require("./WTVSec.js");
+const WTVFavorites = require("./WTVFavorites.js");
class WTVClientSessionData {
@@ -31,8 +31,8 @@ class WTVClientSessionData {
constructor(minisrv_config, ssid) {
if (!minisrv_config) throw ("minisrv_config required");
- var WTVShared = require('./WTVShared.js')['WTVShared'];
- var WTVMime = require('./WTVMime.js');
+ var WTVShared = require("./WTVShared.js")['WTVShared'];
+ var WTVMime = require("./WTVMime.js");
this.minisrv_config = minisrv_config;
this.wtvshared = new WTVShared(minisrv_config);
this.wtvmime = new WTVMime(minisrv_config);
diff --git a/zefie_wtvp_minisrv/WTVDownloadList.js b/zefie_wtvp_minisrv/includes/WTVDownloadList.js
similarity index 99%
rename from zefie_wtvp_minisrv/WTVDownloadList.js
rename to zefie_wtvp_minisrv/includes/WTVDownloadList.js
index 5de526f0..c76e5bec 100644
--- a/zefie_wtvp_minisrv/WTVDownloadList.js
+++ b/zefie_wtvp_minisrv/includes/WTVDownloadList.js
@@ -16,7 +16,7 @@ class WTVDownloadList {
* @param {string} service_name Service name to use in wtv-urls
*/
constructor(minisrv_config, service_name = "wtv-disk") {
- var { WTVShared, clientShowAlert } = require('./WTVShared.js');
+ var { WTVShared, clientShowAlert } = require("./WTVShared.js");
this.minisrv_config = minisrv_config;
this.wtvshared = new WTVShared(minisrv_config);
this.clientShowAlert = clientShowAlert;
diff --git a/zefie_wtvp_minisrv/WTVFavorites.js b/zefie_wtvp_minisrv/includes/WTVFavorites.js
similarity index 98%
rename from zefie_wtvp_minisrv/WTVFavorites.js
rename to zefie_wtvp_minisrv/includes/WTVFavorites.js
index e8ebe808..74e72f03 100644
--- a/zefie_wtvp_minisrv/WTVFavorites.js
+++ b/zefie_wtvp_minisrv/includes/WTVFavorites.js
@@ -18,9 +18,9 @@ class WTVFavorites {
constructor(minisrv_config, wtvclient) {
if (!minisrv_config) throw ("minisrv_config required");
if (!wtvclient) throw ("WTVClientSessionData required");
- var WTVShared = require('./WTVShared.js')['WTVShared'];
- var WTVMime = require('./WTVMime.js');
- this.WTVClientSessionData = require('./WTVClientSessionData.js');
+ var WTVShared = require("./WTVShared.js")['WTVShared'];
+ var WTVMime = require("./WTVMime.js");
+ this.WTVClientSessionData = require("./WTVClientSessionData.js");
this.minisrv_config = minisrv_config;
this.wtvshared = new WTVShared(minisrv_config);
this.wtvmime = new WTVMime(minisrv_config);
diff --git a/zefie_wtvp_minisrv/WTVFlashrom.js b/zefie_wtvp_minisrv/includes/WTVFlashrom.js
similarity index 99%
rename from zefie_wtvp_minisrv/WTVFlashrom.js
rename to zefie_wtvp_minisrv/includes/WTVFlashrom.js
index 03c44d67..9fd1a10f 100644
--- a/zefie_wtvp_minisrv/WTVFlashrom.js
+++ b/zefie_wtvp_minisrv/includes/WTVFlashrom.js
@@ -12,7 +12,7 @@ class WTVFlashrom {
constructor(minisrv_config, service_vaults, service_name, use_zefie_server = true, bf0app_update = false, no_debug = false) {
- var { WTVShared } = require('./WTVShared.js');
+ var { WTVShared } = require("./WTVShared.js");
this.service_vaults = service_vaults;
this.service_name = service_name;
this.use_zefie_server = use_zefie_server;
diff --git a/zefie_wtvp_minisrv/WTVGuide.js b/zefie_wtvp_minisrv/includes/WTVGuide.js
similarity index 94%
rename from zefie_wtvp_minisrv/WTVGuide.js
rename to zefie_wtvp_minisrv/includes/WTVGuide.js
index dcb797ab..47e93726 100644
--- a/zefie_wtvp_minisrv/WTVGuide.js
+++ b/zefie_wtvp_minisrv/includes/WTVGuide.js
@@ -8,26 +8,13 @@ class WTVGuide {
constructor(minisrv_config, session_data, socket, runScriptInVM) {
if (!minisrv_config) throw ("minisrv_config required");
if (!session_data) throw ("WTVClientSessionData required");
- var WTVShared = require('./WTVShared.js')['WTVShared'];
+ var WTVShared = require("./WTVShared.js")['WTVShared'];
this.minisrv_config = minisrv_config;
this.session_data = session_data;
this.wtvshared = new WTVShared(minisrv_config);
this.runScriptInVM = runScriptInVM;
}
- unloadModule(moduleName) {
- // for handling template classes
- var solvedName = require.resolve(moduleName),
- nodeModule = require.cache[solvedName];
- if (nodeModule) {
- for (var i = 0; i < nodeModule.children.length; i++) {
- var child = nodeModule.children[i];
- deleteModule(child.filename);
- }
- delete require.cache[solvedName];
- }
- }
-
generatePage(topic, subtopic, page = null) {
// sanitize a bit
@@ -197,7 +184,7 @@ class WTVGuide {
console.log(" * wtv-template error:", e)
}
// unload and clean up module
- this.unloadModule(template);
+ wtvshared.unloadModule(template);
}
// return generated page
diff --git a/zefie_wtvp_minisrv/WTVLzpf.js b/zefie_wtvp_minisrv/includes/WTVLzpf.js
similarity index 100%
rename from zefie_wtvp_minisrv/WTVLzpf.js
rename to zefie_wtvp_minisrv/includes/WTVLzpf.js
diff --git a/zefie_wtvp_minisrv/WTVMail.js b/zefie_wtvp_minisrv/includes/WTVMail.js
similarity index 99%
rename from zefie_wtvp_minisrv/WTVMail.js
rename to zefie_wtvp_minisrv/includes/WTVMail.js
index d4bd1a70..426f862c 100644
--- a/zefie_wtvp_minisrv/WTVMail.js
+++ b/zefie_wtvp_minisrv/includes/WTVMail.js
@@ -22,9 +22,9 @@ class WTVMail {
constructor(minisrv_config, wtvclient) {
if (!minisrv_config) throw ("minisrv_config required");
- var WTVShared = require('./WTVShared.js')['WTVShared'];
- var WTVMime = require('./WTVMime.js');
- this.WTVClientSessionData = require('./WTVClientSessionData.js');
+ var WTVShared = require("./WTVShared.js")['WTVShared'];
+ var WTVMime = require("./WTVMime.js");
+ this.WTVClientSessionData = require("./WTVClientSessionData.js");
this.minisrv_config = minisrv_config;
this.wtvshared = new WTVShared(minisrv_config);
this.wtvmime = new WTVMime(minisrv_config);
diff --git a/zefie_wtvp_minisrv/WTVMime.js b/zefie_wtvp_minisrv/includes/WTVMime.js
similarity index 99%
rename from zefie_wtvp_minisrv/WTVMime.js
rename to zefie_wtvp_minisrv/includes/WTVMime.js
index b5d5b16f..f9b90090 100644
--- a/zefie_wtvp_minisrv/WTVMime.js
+++ b/zefie_wtvp_minisrv/includes/WTVMime.js
@@ -11,7 +11,7 @@ class WTVMime {
constructor(minisrv_config) {
- var WTVShared = require('./WTVShared.js')['WTVShared'];
+ var WTVShared = require("./WTVShared.js")['WTVShared'];
this.minisrv_config = minisrv_config;
this.wtvshared = new WTVShared(minisrv_config);
if (!String.prototype.reverse) {
diff --git a/zefie_wtvp_minisrv/includes/WTVNews.js b/zefie_wtvp_minisrv/includes/WTVNews.js
new file mode 100644
index 00000000..2eefbe2b
--- /dev/null
+++ b/zefie_wtvp_minisrv/includes/WTVNews.js
@@ -0,0 +1,5 @@
+class WTVNews {
+
+}
+
+module.exports = WTVNews;
\ No newline at end of file
diff --git a/zefie_wtvp_minisrv/WTVRegister.js b/zefie_wtvp_minisrv/includes/WTVRegister.js
similarity index 100%
rename from zefie_wtvp_minisrv/WTVRegister.js
rename to zefie_wtvp_minisrv/includes/WTVRegister.js
diff --git a/zefie_wtvp_minisrv/WTVSec.js b/zefie_wtvp_minisrv/includes/WTVSec.js
similarity index 100%
rename from zefie_wtvp_minisrv/WTVSec.js
rename to zefie_wtvp_minisrv/includes/WTVSec.js
diff --git a/zefie_wtvp_minisrv/WTVShared.js b/zefie_wtvp_minisrv/includes/WTVShared.js
similarity index 94%
rename from zefie_wtvp_minisrv/WTVShared.js
rename to zefie_wtvp_minisrv/includes/WTVShared.js
index 50d814cd..a4c796fd 100644
--- a/zefie_wtvp_minisrv/WTVShared.js
+++ b/zefie_wtvp_minisrv/includes/WTVShared.js
@@ -13,6 +13,7 @@ class WTVShared {
html_entities = require('html-entities'); // used externally by service scripts
sanitizeHtml = require('sanitize-html');
iconv = require('iconv-lite');
+ parentDirectory = process.cwd()
minisrv_config = [];
@@ -38,6 +39,7 @@ class WTVShared {
}
}
}
+
getServiceString(service, overrides = {}) {
// used externally by service scripts
if (service === "all") {
@@ -159,7 +161,7 @@ class WTVShared {
returnAbsolutePath(check_path) {
if (check_path.substring(0, 1) != this.path.sep && check_path.substring(1, 1) != ":") {
// non-absolute path, so use current directory as base
- check_path = (__dirname + this.path.sep + check_path);
+ check_path = this.parentDirectory + this.path.sep + check_path;
} else {
// already absolute path
}
@@ -176,9 +178,10 @@ class WTVShared {
getUserConfig() {
try {
- if (this.fs.lstatSync(__dirname + "/user_config.json")) {
+ var user_config_filename = this.getAbsolutePath("user_config.json", this.parentDirectory);
+ if (this.fs.lstatSync(user_config_filename)) {
try {
- var minisrv_user_config = JSON.parse(this.fs.readFileSync(__dirname + this.path.sep + "user_config.json"));
+ var minisrv_user_config = JSON.parse(this.fs.readFileSync(user_config_filename));
} catch (e) {
console.error("ERROR: Could not read user_config.json", e);
var throw_me = true;
@@ -198,7 +201,7 @@ class WTVShared {
readMiniSrvConfig(user_config = true, notices = true, reload_notice = false) {
if (notices || reload_notice) console.log(" *** Reading global configuration...");
try {
- var minisrv_config = JSON.parse(this.fs.readFileSync(__dirname + this.path.sep + "config.json"));
+ var minisrv_config = JSON.parse(this.fs.readFileSync(this.getAbsolutePath("config.json", __dirname)));
} catch (e) {
throw ("ERROR: Could not read config.json", e);
}
@@ -222,6 +225,7 @@ class WTVShared {
try {
if (notices || reload_notice) console.log(" *** Reading user configuration...");
var minisrv_user_config = this.getUserConfig()
+ if (!minisrv_user_config) throw "ERROR: Could not read user_config.json";
try {
minisrv_config = integrateConfig(minisrv_config, minisrv_user_config)
} catch (e) {
@@ -290,7 +294,7 @@ class WTVShared {
var new_user_config = {};
Object.assign(new_user_config, minisrv_user_config, config);
if (this.minisrv_config.config.debug_flags.debug) console.log(" * Writing new user configuration...");
- this.fs.writeFileSync(__dirname + this.path.sep + "user_config.json", JSON.stringify(new_user_config, null, "\t"));
+ this.fs.writeFileSync(this.getAbsolutePath("user_config.json", parentDirectory), JSON.stringify(new_user_config, null, "\t"));
}
catch (e) {
if (this.minisrv_config.config.debug_flags) {
@@ -460,19 +464,35 @@ class WTVShared {
return obj;
}
+ unloadModule(moduleName) {
+ // for handling template classes
+ var solvedName = require.resolve(moduleName),
+ nodeModule = require.cache[solvedName];
+ if (nodeModule) {
+ for (var i = 0; i < nodeModule.children.length; i++) {
+ var child = nodeModule.children[i];
+ this.unloadModule(child.filename);
+ }
+ delete require.cache[solvedName];
+ }
+ }
+
/**
* Returns an absolute path
* @param {string} path
* @param {string} directory Root directory
*/
- getAbsolutePath(path, directory = __dirname) {
- if (path.substring(0, 1) != this.path.sep && path.substring(1, 1) != ":") {
- // non-absolute path, so use current directory as base
- path = (directory + this.path.sep + path);
- } else {
- // already absolute path
+ getAbsolutePath(path, directory = null) {
+ if (directory) {
+ if (path.indexOf(directory) == -1) {
+ directory = this.getAbsolutePath(directory);
+ try {
+ if (this.fs.lstatSync(directory).isDirectory()) directory = directory + this.path.sep;
+ } catch (e) { }
+ path = directory + path;
+ }
}
- return this.fixPathSlashes(path);
+ return this.fixPathSlashes(this.path.resolve(path));
}
/**
diff --git a/zefie_wtvp_minisrv/config.json b/zefie_wtvp_minisrv/includes/config.json
similarity index 100%
rename from zefie_wtvp_minisrv/config.json
rename to zefie_wtvp_minisrv/includes/config.json
diff --git a/zefie_wtvp_minisrv/package-lock.json b/zefie_wtvp_minisrv/package-lock.json
index 52173263..5fd8a344 100644
--- a/zefie_wtvp_minisrv/package-lock.json
+++ b/zefie_wtvp_minisrv/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "zefie_wtvp_minisrv",
- "version": "0.9.31",
+ "version": "0.9.32",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "zefie_wtvp_minisrv",
- "version": "0.9.31",
+ "version": "0.9.32",
"license": "GPL3",
"dependencies": {
"adm-zip": "^0.5.9",
diff --git a/zefie_wtvp_minisrv/packer.js b/zefie_wtvp_minisrv/packer.js
index 979dc1a6..8b99a2ee 100644
--- a/zefie_wtvp_minisrv/packer.js
+++ b/zefie_wtvp_minisrv/packer.js
@@ -1,4 +1,4 @@
-const { WTVShared } = require("./WTVShared.js");
+const { WTVShared } = require(classPath + "/WTVShared.js");
var wtvshared = new WTVShared(null, true);
const fs = require('fs');
diff --git a/zefie_wtvp_minisrv/zefie_wtvp_minisrv.njsproj b/zefie_wtvp_minisrv/zefie_wtvp_minisrv.njsproj
index e1d9d7ba..280df011 100644
--- a/zefie_wtvp_minisrv/zefie_wtvp_minisrv.njsproj
+++ b/zefie_wtvp_minisrv/zefie_wtvp_minisrv.njsproj
@@ -31,7 +31,10 @@
-
+
+ Code
+
+
Code
@@ -1101,47 +1104,48 @@
-
-
+
+
Code
-
+
Code
-
+
Code
-
+
Code
-
-
+
+
Code
-
-
+
+
Code
-
+
Code
-
+
Code
-
+
Code
-
+
Code
-
+
Code
+