fixes and optimizations

This commit is contained in:
zefie
2025-08-11 17:42:57 -04:00
parent b95f58b381
commit e4aac5933e
9 changed files with 245 additions and 246 deletions

View File

@@ -18,8 +18,8 @@ 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");
const WTVShared = require("./WTVShared.js")['WTVShared'];
const WTVMime = require("./WTVMime.js");
this.WTVClientSessionData = require("./WTVClientSessionData.js");
this.minisrv_config = minisrv_config;
this.wtvshared = new WTVShared(minisrv_config);
@@ -42,10 +42,10 @@ class WTVFavorites {
if (!this.isguest) {
if (this.favstore_dir === null) {
// set favstore directory local var so we don't call the function every time
var userstore_dir = this.wtvclient.getUserStoreDirectory();
const userstore_dir = this.wtvclient.getUserStoreDirectory();
// FavStore
var store_dir = "FavStore" + this.path.sep;
const store_dir = "FavStore" + this.path.sep;
this.favstore_dir = userstore_dir + store_dir;
}
return this.fs.existsSync(this.favstore_dir);
@@ -54,12 +54,12 @@ class WTVFavorites {
}
folderExists(foldername) {
var folder_dir = null;
if (this.favstoreExists()) {
let folder_dir, store_dir = null;
if (this.favstoreExists()) {
if (!foldername) return null;
var folder_dir = foldername + this.path.sep;
var store_dir = this.favstore_dir + folder_dir;
folder_dir = foldername + this.path.sep;
store_dir = this.favstore_dir + folder_dir;
}
if (store_dir) {
if (this.fs.existsSync(store_dir)) {
@@ -72,12 +72,12 @@ class WTVFavorites {
}
getFolderDir(foldername) {
var folder_dir = null;
let folder_dir, store_dir = null;
if (this.favstoreExists()) {
if (!foldername) return null;
var folder_dir = foldername + this.path.sep;
var store_dir = this.favstore_dir + folder_dir;
folder_dir = foldername + this.path.sep;
store_dir = this.favstore_dir + folder_dir;
}
return store_dir;
}
@@ -85,9 +85,9 @@ class WTVFavorites {
createTemplateFolder(folder) {
// create emply folder
this.createFolder(folder)
var folder_templates = this.minisrv_config.favorites.folder_templates;
const folder_templates = this.minisrv_config.favorites.folder_templates;
// populate it if a template exists
var self = this;
const self = this;
if (folder_templates[folder]) {
Object.keys(folder_templates[folder]).forEach(function (k) {
self.createFavorite(folder_templates[folder][k].title, folder_templates[folder][k].url, folder, (folder_templates[folder][k].image_type == "image/wtv-bitmap") ? atob(folder_templates[folder][k].image) : folder_templates[folder][k].image, folder_templates[folder][k].image_type);
@@ -96,7 +96,7 @@ class WTVFavorites {
}
createDefaultFolders() {
var brandId = this.ssid.charAt(8);
const brandId = this.ssid.charAt(8);
this.createTemplateFolder("Recommended");
if (brandId == 7)
this.createTemplateFolder("Personal (Samsung)");
@@ -118,10 +118,10 @@ class WTVFavorites {
}
createFolder(foldername) {
var folder_exists = this.folderExists(foldername);
const folder_exists = this.folderExists(foldername);
if (folder_exists === false) {
var folderdir = foldername + this.path.sep;
var store_dir = this.favstore_dir + folderdir;
const folderdir = foldername + this.path.sep;
const store_dir = this.favstore_dir + folderdir;
if (!this.fs.existsSync(store_dir)) this.fs.mkdirSync(store_dir, { recursive: true });
return true;
}
@@ -129,8 +129,8 @@ class WTVFavorites {
}
getFolders() {
var path = this.favstore_dir;
var self = this;
const path = this.favstore_dir;
const self = this;
return this.fs.readdirSync(path).filter(function (file) {
if (self.folderExists(file)) {
self.folderArr.push(file);
@@ -144,16 +144,16 @@ class WTVFavorites {
}
createFavorite(title, url, folder, image, imagetype) {
var folderpath = this.getFolderDir(folder);
var favoriteid = this.createFavoriteID();
var favoritefile = favoriteid + this.favFileExt;
var favoritefileout = folderpath + favoritefile;
const folderpath = this.getFolderDir(folder);
const favoriteid = this.createFavoriteID();
const favoritefile = favoriteid + this.favFileExt;
const favoritefileout = folderpath + favoritefile;
if (imagetype != "url")
image = btoa(image);
title = decodeURIComponent(title).replaceAll("+", " ");
url = decodeURIComponent(url)
var favoritedata = {
const favoritedata = {
"title": title,
"url": url,
"folder": folder,
@@ -168,7 +168,7 @@ class WTVFavorites {
}
// encode favorite into json
var result = this.fs.writeFileSync(favoritefileout, JSON.stringify(favoritedata));
const result = this.fs.writeFileSync(favoritefileout, JSON.stringify(favoritedata));
if (!result) return false;
} catch (e) {
@@ -178,8 +178,8 @@ class WTVFavorites {
}
listFavorites(folder) {
var folderpath = this.getFolderDir(folder);
var self = this;
const folderpath = this.getFolderDir(folder);
const self = this;
self.messageArr = [];
this.fs.readdirSync(folderpath)
.map(function (v) {
@@ -211,16 +211,16 @@ class WTVFavorites {
}
getFavorite(folder, favoriteid) {
var folder_path = this.getFolderDir(folder);
var folder_file = favoriteid + this.favFileExt;
var folder_file_in = folder_path + this.path.sep + folder_file;
var folder_data_raw = null;
const folder_path = this.getFolderDir(folder);
const folder_file = favoriteid + this.favFileExt;
const folder_file_in = folder_path + this.path.sep + folder_file;
let folder_data_raw = null;
if (this.fs.existsSync(folder_file_in)) folder_data_raw = this.fs.readFileSync(folder_file_in);
else console.error(" # FavErr: could not find ", folder_file_in);
if (folder_data_raw) {
var folder_data = JSON.parse(folder_data_raw);
const folder_data = JSON.parse(folder_data_raw);
folder_data.folder_path = folder_path;
folder_data.folder_file = folder_file;
if (folder_data) {
@@ -234,7 +234,7 @@ class WTVFavorites {
}
deleteFolder(folder){
var dir = this.getFolderDir(folder);
const dir = this.getFolderDir(folder);
if (dir) {
try {
this.fs.rm(dir, { recursive: true });
@@ -251,29 +251,29 @@ class WTVFavorites {
}
deleteFavorite(favoriteid, folder) {
var folderdir = this.getFolderDir(folder);
const folderdir = this.getFolderDir(folder);
this.fs.unlinkSync(folderdir + favoriteid + ".zfav", { recursive: true });
}
clearFolder(folder) {
const { readdirSync, rmSync } = require('fs');
var dir = this.getFolderDir(folder);
const dir = this.getFolderDir(folder);
readdirSync(dir).forEach(f => rmSync(`${dir}${f}`));
}
updateFavorite(favoritedata, folder) {
// encode message into json
var favoriteout = new Object();
var folderpath = this.getFolderDir(folder);
const favoriteout = new Object();
const folderpath = this.getFolderDir(folder);
Object.assign(favoriteout, favoritedata);
delete favoriteout.folderpath;
delete favoriteout.favoritefile;
var result = this.fs.writeFileSync(folderpath + favoritedata.id + ".zfav", JSON.stringify(favoriteout));
const result = this.fs.writeFileSync(folderpath + favoritedata.id + ".zfav", JSON.stringify(favoriteout));
if (!result) return false;
}
changeFavoriteName(favoriteid, folder, name) {
var favorite = this.getFavorite(folder, favoriteid);
const favorite = this.getFavorite(folder, favoriteid);
if (!favorite) return false;
favorite.title = name;
@@ -282,19 +282,19 @@ class WTVFavorites {
}
moveFavorite(oldfolder, newfolder, favoriteid) {
var favorite = this.getFavorite(oldfolder, favoriteid);
const favorite = this.getFavorite(oldfolder, favoriteid);
if (!favorite) return false;
var newfolderdata = this.listFavorites(newfolder);
var newfoldernum = newfolderdata.length
const newfolderdata = this.listFavorites(newfolder);
const newfoldernum = newfolderdata.length
if (newfoldernum > 17)
return;
favorite.folder = newfolder;
this.updateFavorite(favorite, oldfolder);
var favoriteout = new Object();
var folderpath = this.getFolderDir(newfolder);
const favoriteout = new Object();
const folderpath = this.getFolderDir(newfolder);
Object.assign(favoriteout, favorite);
delete favoriteout.folderpath;
delete favoriteout.favoritefile;
@@ -305,14 +305,13 @@ class WTVFavorites {
isFavoriteAShortcut(favoriteid) {
var favoritefileout = this.favstore_dir + "KeyStore.zfav";
const favoritefileout = this.favstore_dir + "KeyStore.zfav";
if (!this.fs.existsSync(favoritefileout)) {
this.createShortcutKey();
}
var keydata = {};
keydata = JSON.parse(this.fs.readFileSync(favoritefileout));
var keys = Object.keys(keydata);
for (var i = 0; i < keys.length; i++) {
const keydata = JSON.parse(this.fs.readFileSync(favoritefileout));
const keys = Object.keys(keydata);
for (let i = 0; i < keys.length; i++) {
if (keydata[keys[i]].id == favoriteid) {
return { key: keys[i], folder: keydata[keys[i]].folder };
}
@@ -321,20 +320,19 @@ class WTVFavorites {
}
getShortcutKey(key) {
var favoritefileout = this.favstore_dir + "KeyStore.zfav";
const favoritefileout = this.favstore_dir + "KeyStore.zfav";
if (!this.fs.existsSync(favoritefileout)) {
this.createShortcutKey();
}
var keydata = {};
keydata = JSON.parse(this.fs.readFileSync(favoritefileout));
const keydata = JSON.parse(this.fs.readFileSync(favoritefileout));
if (key && keydata[key]) {
return { folder: keydata[key].folder, id: keydata[key].id };
}
}
createShortcutKey() {
var favoritefileout = this.favstore_dir + "KeyStore.zfav";
var keydata = {};
const favoritefileout = this.favstore_dir + "KeyStore.zfav";
const keydata = {};
keydata.F1 = {
folder: "none",
@@ -367,7 +365,7 @@ class WTVFavorites {
try {
// encode favorite into json
var result = this.fs.writeFileSync(favoritefileout, JSON.stringify(keydata));
const result = this.fs.writeFileSync(favoritefileout, JSON.stringify(keydata));
if (!result) return false;
} catch (e) {
@@ -377,13 +375,11 @@ class WTVFavorites {
}
updateShortcutKey(oldkey, newkey, folder, id) {
var favoritefileout = this.favstore_dir + "KeyStore.zfav";
const favoritefileout = this.favstore_dir + "KeyStore.zfav";
if (!this.fs.existsSync(favoritefileout)) {
this.createShortcutKey();
}
var keydata = {};
keydata = JSON.parse(this.fs.readFileSync(favoritefileout))
const keydata = JSON.parse(this.fs.readFileSync(favoritefileout));
switch(newkey) {
case "F1":
keydata.F1 = {
@@ -435,7 +431,7 @@ class WTVFavorites {
try {
// encode favorite into json
var result = this.fs.writeFileSync(favoritefileout, JSON.stringify(keydata));
const result = this.fs.writeFileSync(favoritefileout, JSON.stringify(keydata));
if (!result) return false;
} catch (e) {