Hardcoded a default configuration

This commit is contained in:
2026-04-13 15:45:01 -05:00
parent 9a926a80ff
commit 6caac8e832

View File

@@ -7,6 +7,14 @@ const API_URL = "https://aviationweather.gov/api/data/";
const METAR_SERVICE = "metar"; const METAR_SERVICE = "metar";
const generatorURL = "https://git.entropic.pro/Aiden/metar-rss"; const generatorURL = "https://git.entropic.pro/Aiden/metar-rss";
let defaultConfig = {
"outputdir": __dirname,
"icaos": ["KJFK"],
"siteurl": "https://example.com",
"rss-baseurl": "https://example.com/weather",
"check-interval": 10,
"loglevel": 4
};
/** Load config file */ /** Load config file */
const configFile = "./config.json"; const configFile = "./config.json";
let configData; let configData;
@@ -15,52 +23,53 @@ try {
} catch (err) { } catch (err) {
console.error(err); console.error(err);
console.warn("Unable to read config file, using defaults"); console.warn("Unable to read config file, using defaults");
configData = defaultConfig;
} }
/** Verify config data **/ /** Verify config data **/
if (Number(configData["loglevel"]) == NaN) { if (Number(configData["loglevel"]) == NaN) {
console.warn("loglevel is not a number, using 4"); console.warn("loglevel is not a number, using " + defaultConfig["loglevel"]);
configData["loglevel"] = 4; configData["loglevel"] = defaultConfig["loglevel"];
} }
const loglevel = Number(configData["loglevel"]); const loglevel = Number(configData["loglevel"]);
try { try {
if (!fs.lstatSync(configData["outputdir"]).isDirectory()) { if (!fs.lstatSync(configData["outputdir"]).isDirectory()) {
if (loglevel >= 4) console.warn("outputdir is not a directory, using current folder"); if (loglevel >= 4) console.warn("outputdir is not a directory, using " + defaultConfig["outputdir"]);
configData["outputdir"] = __dirname; configData["outputdir"] = defaultConfig["outputdir"];
} }
} catch (err) { } catch (err) {
if (loglevel >= 3) console.error(err); if (loglevel >= 3) console.error(err);
if (loglevel >= 4) console.warn("error finding outputdir, using current folder"); if (loglevel >= 4) console.warn("error finding outputdir, using " + defaultConfig["outputdir"]);
configData["outputdir"] = __dirname; configData["outputdir"] = defaultConfig["outputdir"];
} }
const outputDir = configData["outputdir"] const outputDir = configData["outputdir"];
if (!Array.isArray(configData["icaos"])) { if (!Array.isArray(configData["icaos"])) {
if (loglevel >= 4) console.warn("icao config must be an array of ICAO codes, using default"); if (loglevel >= 4) console.warn("icao config must be an array of ICAO codes, using default");
configData["icaos"] = ["KJFK"]; configData["icaos"] = defaultConfig["icaos"];
} }
const icaos = configData["icaos"]; const icaos = configData["icaos"];
try { try {
new URL(configData["siteurl"]); new URL(configData["siteurl"]);
} catch (err) { } catch (err) {
if (loglevel >= 4) console.warn("siteurl is not a valid URL, using example.com"); if (loglevel >= 4) console.warn("siteurl is not a valid URL, using " + defaultConfig["siteurl"]);
configData["siteurl"] = "https://example.com" configData["siteurl"] = defaultConfig["siteurl"];
} }
const siteURL = new URL(configData["siteurl"]); const siteURL = new URL(configData["siteurl"]);
try { try {
new URL(configData["rss-baseurl"]); new URL(configData["rss-baseurl"]);
} catch (err) { } catch (err) {
if (loglevel >= 4) console.warn("rss-baseurl is not a valid URL, using example.com"); if (loglevel >= 4) console.warn("rss-baseurl is not a valid URL, using " + defaultConfig["rss-baseurl"]);
configData["rss-baseurl"] = "https://example.com" configData["rss-baseurl"] = defaultConfig["rss-baseurl"];
} }
const rssBaseURL = new URL(configData["rss-baseurl"]); const rssBaseURL = new URL(configData["rss-baseurl"]);
if (Number(configData["check-interval"]) == NaN) { if (Number(configData["check-interval"]) == NaN) {
if (loglevel >= 4) console.warn("check-interval is NaN, using 10 minutes"); if (loglevel >= 4) console.warn("check-interval is NaN, using " + defaultConfig["check-interval"] + " minutes.");
configData["check-interval"] = 10; configData["check-interval"] = defaultConfig["check-interval"];
} }
const checkInterval = Number(configData["check-interval"]) * 1000 * 60; const checkInterval = Number(configData["check-interval"]) * 1000 * 60;