mirror of
https://github.com/LinoSchmidt/StickExporterTX.git
synced 2026-03-21 10:00:47 +01:00
Added settings not resetting on new optiones
This commit is contained in:
@@ -25,28 +25,40 @@ const defaultSettings = {
|
|||||||
output: defaultOutputPath
|
output: defaultOutputPath
|
||||||
}
|
}
|
||||||
|
|
||||||
let loadedSuccessfully = false;
|
function catchStr(tryFunc:()=>string, catchFunc:()=>string) {
|
||||||
|
let val;
|
||||||
|
try {
|
||||||
|
val = tryFunc();
|
||||||
|
} catch(err) {
|
||||||
|
logger.info("Failed to get setting value. Using default value:" + String(err));
|
||||||
|
val = catchFunc();
|
||||||
|
}
|
||||||
|
return val;
|
||||||
|
}
|
||||||
|
|
||||||
const settingList = await fetch(SettingPath).then(function(response) {
|
const settingList = await fetch(SettingPath).then(function(response) {
|
||||||
return response.text();
|
return response.text();
|
||||||
|
}).catch(function(err) {
|
||||||
|
logger.info(err);
|
||||||
|
return "fileLoadFailed";
|
||||||
}).then(function(data) {
|
}).then(function(data) {
|
||||||
|
if(data === "fileLoadFailed") {
|
||||||
|
return defaultSettings;
|
||||||
|
}
|
||||||
|
|
||||||
const parser = new DOMParser();
|
const parser = new DOMParser();
|
||||||
const xmlDoc = parser.parseFromString(data, 'text/xml');
|
const xmlDoc = parser.parseFromString(data, 'text/xml');
|
||||||
|
|
||||||
loadedSuccessfully = true;
|
|
||||||
return {
|
return {
|
||||||
fps: parseInt(getXMLChild(xmlDoc, "fps")),
|
fps: parseInt(catchStr(function() {return getXMLChild(xmlDoc, "fps");},function() {return defaultSettings.fps.toString();})),
|
||||||
width: parseInt(getXMLChild(xmlDoc, "width")),
|
width: parseInt(catchStr(function() {return getXMLChild(xmlDoc, "width");},function() {return defaultSettings.width.toString();})),
|
||||||
stickDistance: parseInt(getXMLChild(xmlDoc, "stickDistance")),
|
stickDistance: parseInt(catchStr(function() {return getXMLChild(xmlDoc, "stickDistance");},function() {return defaultSettings.stickDistance.toString();})),
|
||||||
stickMode2: (getXMLChild(xmlDoc, "stickMode2") === "true"),
|
stickMode2: catchStr(function() {return getXMLChild(xmlDoc, "stickMode2");},function() {return defaultSettings.stickMode2.toString();}) === "true",
|
||||||
videoFormat: getXMLChild(xmlDoc, "videoFormat") as unknown as VideoFormat,
|
videoFormat: catchStr(function() {return getXMLChild(xmlDoc, "videoFormat");},function() {return defaultSettings.videoFormat.toString();}) as VideoFormat as VideoFormat,
|
||||||
log: (getXMLChild(xmlDoc, "log") === "None")? "":getXMLChild(xmlDoc, "log"),
|
log: catchStr(function() {return (getXMLChild(xmlDoc, "log") === "None")? "":getXMLChild(xmlDoc, "log");},function() {return defaultSettings.log;}),
|
||||||
output: getXMLChild(xmlDoc, "output")
|
output: catchStr(function() {return getXMLChild(xmlDoc, "output");},function() {return defaultSettings.output;})
|
||||||
}
|
}
|
||||||
}).catch(function(error) {
|
|
||||||
logger.warning("Could not load settings: " + error.toString() + "\n Creating new settings file...");
|
|
||||||
return defaultSettings;
|
|
||||||
});
|
});
|
||||||
if(!loadedSuccessfully) updateSettings({});
|
|
||||||
|
|
||||||
function updateSettings(optiones:{fps?:number, width?:number, stickDistance?:number, stickMode2?:boolean, videoFormat?:VideoFormat, log?:string, output?:string}) {
|
function updateSettings(optiones:{fps?:number, width?:number, stickDistance?:number, stickMode2?:boolean, videoFormat?:VideoFormat, log?:string, output?:string}) {
|
||||||
if(optiones.fps === undefined) {
|
if(optiones.fps === undefined) {
|
||||||
|
|||||||
Reference in New Issue
Block a user