diff --git a/CHANGELOG.md b/CHANGELOG.md index f77a0769..66c307c3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,40 +5,58 @@ This project adheres to [Semantic Versioning](https://semver.org/). ❤️ **Donate:** Enjoying MagicMirror²? [Please consider a donation!](https://magicmirror.builders/donate) With your help we can continue to improve the MagicMirror² -## [2.12.0] - Unreleased (Develop Branch) +## [2.13.0] - Unreleased (Develop Branch - Please add your contributions to this release.) -_This release is scheduled to be released on 2020-07-01._ +_This release is scheduled to be released on 2020-10-01._ ### Added -- Added option to config the level of logging -- Added prettier for an even cleaner codebase -- Hide Sunrise/Sunset in Weather module -- Added Met Office DataHub (UK) provider - ### Updated -- Cleaned up alert module code -- Cleaned up check_config code -- Replaced grunt-based linters with their non-grunt equivalents -- Switch to most of the eslint:recommended rules and fix warnings -- Replaced insecure links with https ones -- Cleaned up all "no-undef" warnings from eslint -- Added location title wrapping for calendar module - ### Deleted -- Removed truetype (ttf) fonts +### 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) + +## [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. + +ℹ️ **Note:** This update uses new dependencies. Please update using the following command: `git pull && npm install`. + +### Added + +- Added option to config the level of logging. +- Added prettier for an even cleaner codebase. +- Hide Sunrise/Sunset in Weather module. +- Hide Sunrise/Sunset in Current Weather module. +- Added Met Office DataHub (UK) provider. + +### Updated + +- Cleaned up alert module code. +- Cleaned up check_config code. +- Replaced grunt-based linters with their non-grunt equivalents. +- Switch to most of the eslint:recommended rules and fix warnings. +- Replaced insecure links with https ones. +- Cleaned up all "no-undef" warnings from eslint. +- Added location title wrapping for calendar module. +- Updated the BG translation. + +### Deleted + +- Removed truetype (ttf) fonts. ### Fixed -- The broken modules due to Socket.io change from last release [#1973](https://github.com/MichMich/MagicMirror/issues/1973) -- Add backward compatibility for old module code in socketclient.js [#1973](https://github.com/MichMich/MagicMirror/issues/1973) -- Support multiple instances of calendar module with different config [#1109](https://github.com/MichMich/MagicMirror/issues/1109) -- Fix the use of "maxNumberOfDays" in the module "weatherforecast" [#2018](https://github.com/MichMich/MagicMirror/issues/2018) -- Throw error when check_config fails [#1928](https://github.com/MichMich/MagicMirror/issues/1928) +- The broken modules due to Socket.io change from last release. [#1973](https://github.com/MichMich/MagicMirror/issues/1973) +- Add backward compatibility for old module code in socketclient.js. [#1973](https://github.com/MichMich/MagicMirror/issues/1973) +- Support multiple instances of calendar module with different config. [#1109](https://github.com/MichMich/MagicMirror/issues/1109) +- Fix the use of "maxNumberOfDays" in the module "weatherforecast". [#2018](https://github.com/MichMich/MagicMirror/issues/2018) +- Throw error when check_config fails. [#1928](https://github.com/MichMich/MagicMirror/issues/1928) - Bug fix related to 'maxEntries' not displaying Calendar events. [#2050](https://github.com/MichMich/MagicMirror/issues/2050) -- Updated ical library to latest version [#1926](https://github.com/MichMich/MagicMirror/issues/1926) +- Updated ical library to latest version. [#1926](https://github.com/MichMich/MagicMirror/issues/1926) ## [2.11.0] - 2020-04-01 diff --git a/modules/default/clock/clock.js b/modules/default/clock/clock.js index 4b60c11b..cfcd1e40 100644 --- a/modules/default/clock/clock.js +++ b/modules/default/clock/clock.js @@ -52,10 +52,12 @@ Module.register("clock", { //Calculate how many ms should pass until next update depending on if seconds is displayed or not var delayCalculator = function (reducedSeconds) { + var EXTRA_DELAY = 50; //Deliberate imperceptable delay to prevent off-by-one timekeeping errors + if (self.config.displaySeconds) { - return 1000 - moment().milliseconds(); + return 1000 - moment().milliseconds() + EXTRA_DELAY; } else { - return (60 - reducedSeconds) * 1000 - moment().milliseconds(); + return (60 - reducedSeconds) * 1000 - moment().milliseconds() + EXTRA_DELAY; } }; @@ -65,7 +67,7 @@ Module.register("clock", { //If seconds is displayed CLOCK_SECOND-notification should be sent (but not when CLOCK_MINUTE-notification is sent) if (self.config.displaySeconds) { - self.second = (self.second + 1) % 60; + self.second = moment().second(); if (self.second !== 0) { self.sendNotification("CLOCK_SECOND", self.second); setTimeout(notificationTimer, delayCalculator(0)); @@ -74,7 +76,7 @@ Module.register("clock", { } //If minute changed or seconds isn't displayed send CLOCK_MINUTE-notification - self.minute = (self.minute + 1) % 60; + self.minute = moment().minute(); self.sendNotification("CLOCK_MINUTE", self.minute); setTimeout(notificationTimer, delayCalculator(0)); }; diff --git a/modules/default/currentweather/currentweather.js b/modules/default/currentweather/currentweather.js index e0f8be50..d9d06ccb 100644 --- a/modules/default/currentweather/currentweather.js +++ b/modules/default/currentweather/currentweather.js @@ -23,6 +23,7 @@ Module.register("currentweather", { lang: config.language, decimalSymbol: ".", showHumidity: false, + showSun: true, degreeLabel: false, showIndoorTemperature: false, showIndoorHumidity: false, @@ -155,13 +156,15 @@ Module.register("currentweather", { small.appendChild(humidityIcon); } - var sunriseSunsetIcon = document.createElement("span"); - sunriseSunsetIcon.className = "wi dimmed " + this.sunriseSunsetIcon; - small.appendChild(sunriseSunsetIcon); + if (this.config.showSun) { + var sunriseSunsetIcon = document.createElement("span"); + sunriseSunsetIcon.className = "wi dimmed " + this.sunriseSunsetIcon; + small.appendChild(sunriseSunsetIcon); - var sunriseSunsetTime = document.createElement("span"); - sunriseSunsetTime.innerHTML = " " + this.sunriseSunsetTime; - small.appendChild(sunriseSunsetTime); + var sunriseSunsetTime = document.createElement("span"); + sunriseSunsetTime.innerHTML = " " + this.sunriseSunsetTime; + small.appendChild(sunriseSunsetTime); + } wrapper.appendChild(small); }, 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; diff --git a/package-lock.json b/package-lock.json index b29b7ec4..e421d505 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "magicmirror", - "version": "2.12.0-develop", + "version": "2.13.0-develop", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 741d1d2e..63d9fcdd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "magicmirror", - "version": "2.12.0-develop", + "version": "2.13.0-develop", "description": "The open source modular smart mirror platform.", "main": "js/electron.js", "scripts": { diff --git a/translations/bg.json b/translations/bg.json index 786f8643..b48b0a2d 100644 --- a/translations/bg.json +++ b/translations/bg.json @@ -1,10 +1,10 @@ { - "LOADING": "Зареждане …", + "LOADING": "Зареждане на …", "TODAY": "Днес", "TOMORROW": "Утре", "DAYAFTERTOMORROW": "Вдругиден", - "RUNNING": "Свършва на", + "RUNNING": "Свършва след", "EMPTY": "Няма предстоящи събития.", "WEEK": "Седмица {weekNumber}", @@ -26,8 +26,8 @@ "NW": "СЗ", "NNW": "ССЗ", - "UPDATE_NOTIFICATION": "Налична актуализация за MagicMirror².", - "UPDATE_NOTIFICATION_MODULE": "Налична актуализация за {MODULE_NAME} модул.", - "UPDATE_INFO_SINGLE": "Текущата инсталация е изостанала с {COMMIT_COUNT} commit къмита на клон {BRANCH_NAME}.", - "UPDATE_INFO_MULTIPLE": "Текущата инсталация е изостанала с {COMMIT_COUNT} commits къмита на клон {BRANCH_NAME}." + "UPDATE_NOTIFICATION": "Налична е актуализация за MagicMirror².", + "UPDATE_NOTIFICATION_MODULE": "Налична е актуализация за модула „{MODULE_NAME}“.", + "UPDATE_INFO_SINGLE": "Инсталираната версия е с {COMMIT_COUNT} ревизия назад от клона „{BRANCH_NAME}“.", + "UPDATE_INFO_MULTIPLE": "Инсталираната версия е с {COMMIT_COUNT} ревизии назад от клона „{BRANCH_NAME}“." }