mirror of
https://github.com/MichMich/MagicMirror.git
synced 2025-06-27 11:50:00 +00:00
Merge pull request #1564 from jacob-ebey/develop
Added autoLocation and autoTimezone option for weather modules and clock respectively.
This commit is contained in:
commit
1d2a39a855
@ -15,6 +15,8 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
||||
- Italian translation for "Feels"
|
||||
- Disabled the screensaver on raspbian with installation script
|
||||
- Added option to truncate the number of vertical lines a calendar item can span if `wrapEvents` is enabled.
|
||||
- Added autoLocation options for weather forcast and current weather modules.
|
||||
- Added autoTimezone option for the default clock module.
|
||||
- Danish translation for "Feels" and "Weeks"
|
||||
|
||||
### Updated
|
||||
|
@ -26,6 +26,7 @@ Module.register("clock",{
|
||||
analogShowDate: "top", // options: false, 'top', or 'bottom'
|
||||
secondsColor: "#888888",
|
||||
timezone: null,
|
||||
autoTimezone: false
|
||||
},
|
||||
// Define required scripts.
|
||||
getScripts: function() {
|
||||
@ -39,16 +40,31 @@ Module.register("clock",{
|
||||
start: function() {
|
||||
Log.info("Starting module: " + this.name);
|
||||
|
||||
if (this.config.autoTimezone) {
|
||||
this.sendSocketNotification("AUTO_TIMEZONE");
|
||||
} else {
|
||||
// Schedule update interval.
|
||||
var self = this;
|
||||
setInterval(function() {
|
||||
self.updateDom();
|
||||
}, 1000);
|
||||
}
|
||||
|
||||
// Set locale.
|
||||
moment.locale(config.language);
|
||||
|
||||
},
|
||||
|
||||
socketNotificationReceived: function (notification, payload) {
|
||||
if (notification === "UPDATE_TIMEZONE") {
|
||||
var self = this;
|
||||
self.config.timezone = payload.timezone;
|
||||
setInterval(function() {
|
||||
self.updateDom();
|
||||
}, 1000);
|
||||
}
|
||||
},
|
||||
|
||||
// Override dom generator.
|
||||
getDom: function() {
|
||||
|
||||
|
29
modules/default/clock/node_helper.js
Normal file
29
modules/default/clock/node_helper.js
Normal file
@ -0,0 +1,29 @@
|
||||
var http = require("http");
|
||||
var NodeHelper = require("node_helper");
|
||||
|
||||
module.exports = NodeHelper.create({
|
||||
start: function () {
|
||||
},
|
||||
|
||||
socketNotificationReceived: function (notification, payload) {
|
||||
var self = this;
|
||||
|
||||
if (notification === "AUTO_TIMEZONE") {
|
||||
console.log("Loading timezone...");
|
||||
http.get("http://ip-api.com/json", function (req) {
|
||||
var data = "";
|
||||
req.on("data", function (d) {
|
||||
data += d;
|
||||
});
|
||||
req.on("end", function () {
|
||||
var body = JSON.parse(data);
|
||||
payload.timezone = body.timezone;
|
||||
self.sendSocketNotification("UPDATE_TIMEZONE", payload);
|
||||
});
|
||||
}).on("error", function () {
|
||||
payload.error = "Could not figure out the timezone.";
|
||||
self.sendSocketNotification("UPDATE_TIMEZONE", payload);
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
@ -11,6 +11,7 @@ Module.register("currentweather",{
|
||||
|
||||
// Default module config.
|
||||
defaults: {
|
||||
autoLocation: false,
|
||||
location: false,
|
||||
locationID: false,
|
||||
appid: "",
|
||||
@ -109,8 +110,19 @@ Module.register("currentweather",{
|
||||
this.weatherType = null;
|
||||
this.feelsLike = null;
|
||||
this.loaded = false;
|
||||
this.scheduleUpdate(this.config.initialLoadDelay);
|
||||
|
||||
if (this.config.autoLocation) {
|
||||
this.sendSocketNotification("AUTO_LOCATION");
|
||||
} else {
|
||||
this.scheduleUpdate(this.config.initialLoadDelay);
|
||||
}
|
||||
},
|
||||
|
||||
socketNotificationReceived: function (notification, payload) {
|
||||
if (notification === "UPDATE_LOCATION") {
|
||||
this.config.location = payload.location;
|
||||
this.scheduleUpdate(this.config.initialLoadDelay);
|
||||
}
|
||||
},
|
||||
|
||||
// add extra information of current weather
|
||||
|
29
modules/default/currentweather/node_helper.js
Normal file
29
modules/default/currentweather/node_helper.js
Normal file
@ -0,0 +1,29 @@
|
||||
var http = require("http");
|
||||
var NodeHelper = require("node_helper");
|
||||
|
||||
module.exports = NodeHelper.create({
|
||||
start: function () {
|
||||
},
|
||||
|
||||
socketNotificationReceived: function (notification, payload) {
|
||||
var self = this;
|
||||
|
||||
if (notification === "AUTO_LOCATION") {
|
||||
console.log("Loading timezone...");
|
||||
http.get("http://ip-api.com/json", function (req) {
|
||||
var data = "";
|
||||
req.on("data", function (d) {
|
||||
data += d;
|
||||
});
|
||||
req.on("end", function () {
|
||||
var body = JSON.parse(data);
|
||||
payload.location = body.city + ", " + body.regionName;
|
||||
self.sendSocketNotification("UPDATE_LOCATION", payload);
|
||||
});
|
||||
}).on("error", function () {
|
||||
payload.error = "Could not figure out the timezone.";
|
||||
self.sendSocketNotification("UPDATE_LOCATION", payload);
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
29
modules/default/weatherforecast/node_helper.js
Normal file
29
modules/default/weatherforecast/node_helper.js
Normal file
@ -0,0 +1,29 @@
|
||||
var http = require("http");
|
||||
var NodeHelper = require("node_helper");
|
||||
|
||||
module.exports = NodeHelper.create({
|
||||
start: function () {
|
||||
},
|
||||
|
||||
socketNotificationReceived: function (notification, payload) {
|
||||
var self = this;
|
||||
|
||||
if (notification === "AUTO_LOCATION") {
|
||||
console.log("Loading timezone...");
|
||||
http.get("http://ip-api.com/json", function (req) {
|
||||
var data = "";
|
||||
req.on("data", function (d) {
|
||||
data += d;
|
||||
});
|
||||
req.on("end", function () {
|
||||
var body = JSON.parse(data);
|
||||
payload.location = body.city + ", " + body.regionName;
|
||||
self.sendSocketNotification("UPDATE_LOCATION", payload);
|
||||
});
|
||||
}).on("error", function () {
|
||||
payload.error = "Could not figure out the timezone.";
|
||||
self.sendSocketNotification("UPDATE_LOCATION", payload);
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
@ -11,6 +11,7 @@ Module.register("weatherforecast",{
|
||||
|
||||
// Default module config.
|
||||
defaults: {
|
||||
autoLocation: false,
|
||||
location: false,
|
||||
locationID: false,
|
||||
appid: "",
|
||||
@ -95,10 +96,20 @@ Module.register("weatherforecast",{
|
||||
|
||||
this.forecast = [];
|
||||
this.loaded = false;
|
||||
this.scheduleUpdate(this.config.initialLoadDelay);
|
||||
|
||||
this.updateTimer = null;
|
||||
|
||||
if (this.config.autoLocation) {
|
||||
this.sendSocketNotification("AUTO_LOCATION");
|
||||
} else {
|
||||
this.scheduleUpdate(this.config.initialLoadDelay);
|
||||
}
|
||||
},
|
||||
|
||||
socketNotificationReceived: function (notification, payload) {
|
||||
if (notification === "UPDATE_LOCATION") {
|
||||
this.config.location = payload.location;
|
||||
this.scheduleUpdate(this.config.initialLoadDelay);
|
||||
}
|
||||
},
|
||||
|
||||
// Override dom generator.
|
||||
|
Loading…
x
Reference in New Issue
Block a user