diff --git a/CHANGELOG.md b/CHANGELOG.md index 069c61f8..7d5bc9b4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,10 +13,17 @@ _This release is scheduled to be released on 2020-10-01._ ### Updated +- Change incorrect weather.js default properties. + ### Deleted ### Fixed +- Fix the use of "maxNumberOfDays" in the module "weatherforecast depending on the endpoint (forecast/daily or forecast)". [#2018](https://github.com/MichMich/MagicMirror/issues/2018) +- Fix calendar display. Account for current timezone. [#2068](https://github.com/MichMich/MagicMirror/issues/2068) +- Fix logLevel being set before loading config. +- Fix incorrect namespace links in svg clockfaces. [#2072](https://github.com/MichMich/MagicMirror/issues/2072) + ## [2.12.0] - 2020-07-01 Special thanks to the following contributors: @AndreKoepke, @andrezibaia, @bryanzzhu, @chamakura, @DarthBrento, @Ekristoffe, @khassel, @Legion2, @ndom91, @radokristof, @rejas, @XBCreepinJesus & @ZoneMR. diff --git a/js/app.js b/js/app.js index 7cf7dd2e..b1fcc9bb 100644 --- a/js/app.js +++ b/js/app.js @@ -202,6 +202,8 @@ var App = function () { loadConfig(function (c) { config = c; + Log.setLogLevel(config.logLevel); + var modules = []; for (var m in config.modules) { diff --git a/js/logger.js b/js/logger.js index 157420a7..122ba81a 100644 --- a/js/logger.js +++ b/js/logger.js @@ -32,13 +32,15 @@ timeStamp: Function.prototype.bind.call(console.timeStamp, console) }; - if (config && config.logLevel) { - Object.keys(logLevel).forEach(function (key, index) { - if (!config.logLevel.includes(key.toLocaleUpperCase())) { - logLevel[key] = function () {}; - } - }); - } + logLevel.setLogLevel = function (newLevel) { + if (newLevel) { + Object.keys(logLevel).forEach(function (key, index) { + if (!newLevel.includes(key.toLocaleUpperCase())) { + logLevel[key] = function () {}; + } + }); + } + }; return logLevel; }); diff --git a/js/main.js b/js/main.js index 07459f0f..dc1667af 100644 --- a/js/main.js +++ b/js/main.js @@ -477,6 +477,9 @@ var MM = (function () { init: function () { Log.info("Initializing MagicMirror."); loadConfig(); + + Log.setLogLevel(config.logLevel); + Translator.loadCoreTranslations(config.language); Loader.loadModules(); }, diff --git a/modules/default/calendar/calendar.js b/modules/default/calendar/calendar.js index bba7565d..5c6ce453 100755 --- a/modules/default/calendar/calendar.js +++ b/modules/default/calendar/calendar.js @@ -467,6 +467,7 @@ Module.register("calendar", { var calendar = this.calendarData[c]; for (var e in calendar) { var event = JSON.parse(JSON.stringify(calendar[e])); // clone object + if (event.endDate < now) { continue; } diff --git a/modules/default/calendar/calendarfetcher.js b/modules/default/calendar/calendarfetcher.js index 4a6fb0e6..acae13dc 100644 --- a/modules/default/calendar/calendarfetcher.js +++ b/modules/default/calendar/calendarfetcher.js @@ -186,10 +186,7 @@ const CalendarFetcher = function (url, reloadInterval, excludedEvents, maximumNu // kblankenship1989 - to fix issue #1798, converting all dates to locale time first, then converting back to UTC time const pastLocal = pastMoment.subtract(past.getTimezoneOffset(), "minutes").toDate(); const futureLocal = futureMoment.subtract(future.getTimezoneOffset(), "minutes").toDate(); - const datesLocal = rule.between(pastLocal, futureLocal, true, limitFunction); - const dates = datesLocal.map(function (dateLocal) { - return moment(dateLocal).add(dateLocal.getTimezoneOffset(), "minutes").toDate(); - }); + const dates = rule.between(pastLocal, futureLocal, true, limitFunction); // The "dates" array contains the set of dates within our desired date range range that are valid // for the recurrence rule. *However*, it's possible for us to have a specific recurrence that diff --git a/modules/default/clock/faces/face-001.svg b/modules/default/clock/faces/face-001.svg index 13436c76..abd08ce7 100644 --- a/modules/default/clock/faces/face-001.svg +++ b/modules/default/clock/faces/face-001.svg @@ -1 +1 @@ -face-001 +face-001 diff --git a/modules/default/clock/faces/face-002.svg b/modules/default/clock/faces/face-002.svg index a3ee3682..1ec31049 100644 --- a/modules/default/clock/faces/face-002.svg +++ b/modules/default/clock/faces/face-002.svg @@ -1 +1 @@ -face-002 +face-002 diff --git a/modules/default/clock/faces/face-003.svg b/modules/default/clock/faces/face-003.svg index d3fc32de..7cfeebac 100644 --- a/modules/default/clock/faces/face-003.svg +++ b/modules/default/clock/faces/face-003.svg @@ -1 +1 @@ -face-003 +face-003 diff --git a/modules/default/clock/faces/face-004.svg b/modules/default/clock/faces/face-004.svg index 140955d7..bc97588c 100644 --- a/modules/default/clock/faces/face-004.svg +++ b/modules/default/clock/faces/face-004.svg @@ -1 +1 @@ -face-004 +face-004 diff --git a/modules/default/clock/faces/face-005.svg b/modules/default/clock/faces/face-005.svg index fb52a435..0bc1b430 100644 --- a/modules/default/clock/faces/face-005.svg +++ b/modules/default/clock/faces/face-005.svg @@ -1 +1 @@ -faces +faces diff --git a/modules/default/clock/faces/face-006.svg b/modules/default/clock/faces/face-006.svg index a9eff826..87c52ed5 100644 --- a/modules/default/clock/faces/face-006.svg +++ b/modules/default/clock/faces/face-006.svg @@ -1 +1 @@ -face-006 +face-006 diff --git a/modules/default/clock/faces/face-007.svg b/modules/default/clock/faces/face-007.svg index b0dde834..e557f55f 100644 --- a/modules/default/clock/faces/face-007.svg +++ b/modules/default/clock/faces/face-007.svg @@ -1 +1 @@ -face-007 +face-007 diff --git a/modules/default/clock/faces/face-008.svg b/modules/default/clock/faces/face-008.svg index 551ea7df..6fadb396 100644 --- a/modules/default/clock/faces/face-008.svg +++ b/modules/default/clock/faces/face-008.svg @@ -1 +1 @@ -face-008 +face-008 diff --git a/modules/default/clock/faces/face-009.svg b/modules/default/clock/faces/face-009.svg index cd3720f2..bd207e09 100644 --- a/modules/default/clock/faces/face-009.svg +++ b/modules/default/clock/faces/face-009.svg @@ -1 +1 @@ -face-009 +face-009 diff --git a/modules/default/clock/faces/face-010.svg b/modules/default/clock/faces/face-010.svg index d0af3acb..8c5e5848 100644 --- a/modules/default/clock/faces/face-010.svg +++ b/modules/default/clock/faces/face-010.svg @@ -1 +1 @@ -face-010 +face-010 diff --git a/modules/default/clock/faces/face-011.svg b/modules/default/clock/faces/face-011.svg index 2d5f27ba..9886fed5 100644 --- a/modules/default/clock/faces/face-011.svg +++ b/modules/default/clock/faces/face-011.svg @@ -1 +1 @@ -face-011 +face-011 diff --git a/modules/default/clock/faces/face-012.svg b/modules/default/clock/faces/face-012.svg index 8096d492..cfd80698 100644 --- a/modules/default/clock/faces/face-012.svg +++ b/modules/default/clock/faces/face-012.svg @@ -1 +1 @@ -face-012 +face-012 diff --git a/modules/default/weather/weather.js b/modules/default/weather/weather.js index ef2a3bd6..7442c976 100644 --- a/modules/default/weather/weather.js +++ b/modules/default/weather/weather.js @@ -17,7 +17,6 @@ Module.register("weather", { lon: 0, location: false, locationID: false, - apiKey: "", units: config.units, tempUnits: config.units, @@ -46,8 +45,10 @@ Module.register("weather", { initialLoadDelay: 0, // 0 seconds delay retryDelay: 2500, + apiKey: "", + apiSecret: "", apiVersion: "2.5", - apiBase: "https://api.openweathermap.org/data/", + apiBase: "https://api.openweathermap.org/data/", // TODO: this should not be part of the weather.js file, but should be contained in the openweatherprovider weatherEndpoint: "/weather", appendLocationNameToHeader: true, diff --git a/modules/default/weatherforecast/weatherforecast.js b/modules/default/weatherforecast/weatherforecast.js index 83389911..d872ee01 100644 --- a/modules/default/weatherforecast/weatherforecast.js +++ b/modules/default/weatherforecast/weatherforecast.js @@ -294,7 +294,15 @@ Module.register("weatherforecast", { return; } - params += "&cnt=" + (this.config.maxNumberOfDays < 1 || this.config.maxNumberOfDays > 17 ? 7 : this.config.maxNumberOfDays); + let numberOfDays; + if (this.config.forecastEndpoint === "forecast") { + numberOfDays = this.config.maxNumberOfDays < 1 || this.config.maxNumberOfDays > 5 ? 5 : this.config.maxNumberOfDays; + // don't get forecasts for the 6th day, as it would not represent the whole day + numberOfDays = numberOfDays * 8 - (Math.floor(new Date().getHours() / 3) % 8); + } else { + numberOfDays = this.config.maxNumberOfDays < 1 || this.config.maxNumberOfDays > 17 ? 7 : this.config.maxNumberOfDays; + } + params += "&cnt=" + numberOfDays; params += "&units=" + this.config.units; params += "&lang=" + this.config.lang;