fix/optimize wtv-author, wtv-favorite

This commit is contained in:
zefie
2025-08-12 20:44:15 -04:00
parent 011229cc22
commit 6827746799
54 changed files with 543 additions and 610 deletions

View File

@@ -1,38 +1,41 @@
var minisrv_service_file = true;
var request_is_async = true;
const minisrv_service_file = true;
var max_redirects = 3;
var redirects = 0;
request_is_async = true;
const max_redirects = 3;
let redirects = 0;
function hex_to_ascii(POST)
{
var hex = POST.toString();
var str = '';
for (var n = 0; n < hex.length; n += 2) {
str += String.fromCharCode(parseInt(hex.substr(n, 2), 16));
{
const hex = POST.toString();
let str = '';
for (let n = 0; n < hex.length; n += 2) {
str += String.fromCharCode(parseInt(hex.slice(n, n + 2), 16));
}
return str;
}
let POST, image;
if (request_headers.post_data) {
var POST = request_headers.post_data;
var image = hex_to_ascii(POST);
POST = request_headers.post_data;
image = hex_to_ascii(POST);
}
function getTitle(url) {
return new Promise(function (resolve, reject) {
var page_title = "Web Page";
var request_type = (url.substring(0, 5) == "https") ? "https" : "http";
var proxy_agent = null;
let page_title = "Web Page";
const request_type = (url.slice(0, 5) == "https") ? "https" : "http";
let proxy_agent = null;
switch (request_type) {
case "https":
var proxy_agent = require('https');
proxy_agent = require('https');
break;
case "http":
var proxy_agent = require('http');;
proxy_agent = require('http');;
break;
}
if (proxy_agent) {
var options = {
const options = {
method: 'GET'
}
const request = proxy_agent.get(url, options, (response) => {
@@ -47,7 +50,7 @@ function getTitle(url) {
});
response.on('end', () => {
let match = req_data.match(/<title>([^<]*)<\/title>/) // regular expression to parse contents of the <title> tag
const match = req_data.match(/<title>([^<]*)<\/title>/) // regular expression to parse contents of the <title> tag
if (match && typeof match[1] === 'string') page_title = match[1];
resolve(page_title);
});
@@ -62,20 +65,20 @@ function getTitle(url) {
}
async function saveFavorite(favstore, title, folder, imagetype, favurl) {
var headers, data = '';
let headers, data = '';
if (!favstore.favstoreExists()) {
// create favstore if the user hasn't already navigated to favorites
favstore.createFavstore();
}
if (favstore.favstoreExists()) {
var default_folder = "Personal"; // default to "Personal"
var favoritenum = 0;
const default_folder = "Personal"; // default to "Personal"
let favoritenum = 0;
if (!folder) folder = default_folder;
if (!favstore.folderExists(folder)) {
// user did not define a folder, and the default folder does not exist
// so choose the user's first available folder
var favfolders = favstore.getFolders();
const favfolders = favstore.getFolders();
if (favfolders.length > 0) folder = favfolders[0];
}
if (!folder) {
@@ -84,7 +87,7 @@ async function saveFavorite(favstore, title, folder, imagetype, favurl) {
favstore.createTemplateFolder(folder);
}
var favarray = favstore.listFavorites(folder);
const favarray = favstore.listFavorites(folder);
favoritenum = Object.keys(favarray).length;
@@ -108,12 +111,12 @@ async function saveFavorite(favstore, title, folder, imagetype, favurl) {
headers = `400 You can only have ${minisrv_config.services[service_name].max_favorites_per_folder} favorites in a folder. Discard some favorites or choose a different folder, then try again.`
} else {
var createresult = favstore.createFavorite(title, favurl, folder, image, imagetype);
const createresult = favstore.createFavorite(title, favurl, folder, image, imagetype);
if (!createresult) { // true if fail
headers = `200 OK
wtv-expire: wtv-favorite:/serve-browser?favorite_folder_name=${folder}`
} else {
var err = wtvshared.doErrorPage(500);
const err = wtvshared.doErrorPage(500);
headers = err[0];
data = err[1];
}
@@ -121,7 +124,7 @@ wtv-expire: wtv-favorite:/serve-browser?favorite_folder_name=${folder}`
sendToClient(socket, headers, data);
}
} else {
var err = wtvshared.doErrorPage(500);
const err = wtvshared.doErrorPage(500);
headers = err[0];
data = err[1];
sendToClient(socket, headers, data);
@@ -129,10 +132,10 @@ wtv-expire: wtv-favorite:/serve-browser?favorite_folder_name=${folder}`
}
var title = request_headers.query['favorite-title'];
var folder = request_headers.query['favorite-category'];
const title = request_headers.query['favorite-title'];
let folder = request_headers.query['favorite-category'];
if (folder) folder = folder.replaceAll("+", " ")
var imagetype = request_headers.query['favorite-thumbnail-type']
var favurl = request_headers.query['favorite-url'];
const imagetype = request_headers.query['favorite-thumbnail-type']
const favurl = request_headers.query['favorite-url'];
saveFavorite(session_data.favstore, title, folder, imagetype, favurl);