diff --git a/index.js b/index.js index edcba93..1bbde63 100644 --- a/index.js +++ b/index.js @@ -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;