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 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 */
const configFile = "./config.json";
let configData;
@@ -15,52 +23,53 @@ try {
} catch (err) {
console.error(err);
console.warn("Unable to read config file, using defaults");
configData = defaultConfig;
}
/** Verify config data **/
if (Number(configData["loglevel"]) == NaN) {
console.warn("loglevel is not a number, using 4");
configData["loglevel"] = 4;
console.warn("loglevel is not a number, using " + defaultConfig["loglevel"]);
configData["loglevel"] = defaultConfig["loglevel"];
}
const loglevel = Number(configData["loglevel"]);
try {
if (!fs.lstatSync(configData["outputdir"]).isDirectory()) {
if (loglevel >= 4) console.warn("outputdir is not a directory, using current folder");
configData["outputdir"] = __dirname;
if (loglevel >= 4) console.warn("outputdir is not a directory, using " + defaultConfig["outputdir"]);
configData["outputdir"] = defaultConfig["outputdir"];
}
} catch (err) {
if (loglevel >= 3) console.error(err);
if (loglevel >= 4) console.warn("error finding outputdir, using current folder");
configData["outputdir"] = __dirname;
if (loglevel >= 4) console.warn("error finding outputdir, using " + defaultConfig["outputdir"]);
configData["outputdir"] = defaultConfig["outputdir"];
}
const outputDir = configData["outputdir"]
const outputDir = configData["outputdir"];
if (!Array.isArray(configData["icaos"])) {
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"];
try {
new URL(configData["siteurl"]);
} catch (err) {
if (loglevel >= 4) console.warn("siteurl is not a valid URL, using example.com");
configData["siteurl"] = "https://example.com"
if (loglevel >= 4) console.warn("siteurl is not a valid URL, using " + defaultConfig["siteurl"]);
configData["siteurl"] = defaultConfig["siteurl"];
}
const siteURL = new URL(configData["siteurl"]);
try {
new URL(configData["rss-baseurl"]);
} catch (err) {
if (loglevel >= 4) console.warn("rss-baseurl is not a valid URL, using example.com");
configData["rss-baseurl"] = "https://example.com"
if (loglevel >= 4) console.warn("rss-baseurl is not a valid URL, using " + defaultConfig["rss-baseurl"]);
configData["rss-baseurl"] = defaultConfig["rss-baseurl"];
}
const rssBaseURL = new URL(configData["rss-baseurl"]);
if (Number(configData["check-interval"]) == NaN) {
if (loglevel >= 4) console.warn("check-interval is NaN, using 10 minutes");
configData["check-interval"] = 10;
if (loglevel >= 4) console.warn("check-interval is NaN, using " + defaultConfig["check-interval"] + " minutes.");
configData["check-interval"] = defaultConfig["check-interval"];
}
const checkInterval = Number(configData["check-interval"]) * 1000 * 60;