Skip to content

Commit

Permalink
Merge pull request #3 from gberg927/themepark_upgrade
Browse files Browse the repository at this point in the history
Updated to latest version of themeparks module
  • Loading branch information
gberg927 committed Jun 20, 2019
2 parents 7656431 + c6fda81 commit c833c78
Show file tree
Hide file tree
Showing 3 changed files with 78 additions and 69 deletions.
9 changes: 6 additions & 3 deletions MMM-DisneyWaitTimes.js
Expand Up @@ -93,10 +93,13 @@ Module.register("MMM-DisneyWaitTimes",{
})

self.rides = payload.waitTimes;
self.openingTime = payload.openingTime;
self.closingTime = payload.closingTime;
self.updateDom();
}
}
else if (notification === "POPULATE_OPENING_TIMES_" + this.config.park.name.replace(/ /g,"_")) {
self.openingTime = payload.openingTime;
self.closingTime = payload.closingTime;
self.updateDom();
}
},

processWaitTimes: function() {
Expand Down
134 changes: 70 additions & 64 deletions node_helper.js
@@ -1,85 +1,91 @@
require("babel-polyfill");
var NodeHelper = require("node_helper");
var Themeparks = require("themeparks");
const NodeHelper = require("node_helper");
const Themeparks = require("themeparks");

const DisneyWorldMagicKingdom = new Themeparks.Parks.WaltDisneyWorldMagicKingdom();
const DisneyWorldEpcot = new Themeparks.Parks.WaltDisneyWorldEpcot;
const DisneyWorldHollywoodStudios = new Themeparks.Parks.WaltDisneyWorldHollywoodStudios;
const DisneyWorldAnimalKingdom = new Themeparks.Parks.WaltDisneyWorldAnimalKingdom;

module.exports = NodeHelper.create({
start: function() {
console.log("Starting module: " + this.name);
console.log("Starting module helper: " + this.name);
},

processWaitTimes: function(park) {
var self = this;
console.log(park.name + ": Processing Wait Times...");

var disneyPark;
var openingTime;
var closingTime;

console.log(park.name + ": Processing Wait Times...");

const CheckOpeningTimes = (disneyPark) => {
disneyPark.GetOpeningTimes().then((times) => {
for(var i=0, time; time=times[i++];) {
if (time.type == "Operating") {
if (new Date() >= new Date(time.openingTime) && new Date() <= new Date(time.closingTime)) {
openingTime = new Date(time.openingTime);
closingTime = new Date(time.closingTime);
}
else if (new Date(time.openingTime).getDate() == new Date().getDate()) {
openingTime = new Date(time.openingTime);
closingTime = new Date(time.closingTime);
}
}
}

var payload = {
openingTime: openingTime,
closingTime: closingTime,
};

self.sendSocketNotification("POPULATE_OPENING_TIMES_" + park.name.replace(/ /g,"_"), payload);
}).catch((error) => {
console.log(park.name + ": Error Processing Opening Times...");
console.error(error);
});
};

const CheckWaitTimes = (disneyPark) => {
disneyPark.GetWaitTimes().then((rides) => {
waitTimes = [];
for(var i = 0, ride; ride = rides[i++];) {
if (park.logRide) {
console.log(ride.name);
console.log(park.rides);
}
if (park.rides && park.rides.includes(ride.name)) {
waitTimes.push(ride);
}
}
console.log(park.name + ": Processed Wait Times...");

var payload = {
waitTimes: waitTimes
};

self.sendSocketNotification("POPULATE_WAIT_TIMES_" + park.name.replace(/ /g,"_"), payload);
}).catch((error) => {
console.log(park.name + ": Error Processing Wait Times...");
console.error(error);
});
};

switch(park.name) {
case "Magic Kingdom":
disneyPark = new Themeparks.Parks.WaltDisneyWorldMagicKingdom();
CheckOpeningTimes(DisneyWorldMagicKingdom);
CheckWaitTimes(DisneyWorldMagicKingdom);
break;
case "Epcot":
disneyPark = new Themeparks.Parks.WaltDisneyWorldEpcot();
CheckOpeningTimes(DisneyWorldEpcot);
CheckWaitTimes(DisneyWorldEpcot);
break;
case "Hollywood Studios":
disneyPark = new Themeparks.Parks.WaltDisneyWorldHollywoodStudios();
CheckOpeningTimes(DisneyWorldHollywoodStudios);
CheckWaitTimes(DisneyWorldHollywoodStudios);
break;
case "Animal Kingdom":
disneyPark = new Themeparks.Parks.WaltDisneyWorldAnimalKingdom();
CheckOpeningTimes(DisneyWorldAnimalKingdom);
CheckWaitTimes(DisneyWorldAnimalKingdom);
break;
}

// get park opening times
disneyPark.GetOpeningTimes(function(err, times) {
if (err)
{
console.log(park.name + ": Error Processing Opening Times...");
return console.error(err);
}

for(var i=0, time; time=times[i++];) {
if (time.type == "Operating") {
if (new Date() >= new Date(time.openingTime) && new Date() <= new Date(time.closingTime)) {
openingTime = new Date(time.openingTime);
closingTime = new Date(time.closingTime);
}
else if (new Date(time.openingTime).getDate() == new Date().getDate()) {
openingTime = new Date(time.openingTime);
closingTime = new Date(time.closingTime);
}
}
}
});

// access wait times via callback
disneyPark.GetWaitTimes(function(err, rides) {
if (err)
{
console.log(park.name + ": Error Processing Wait Times...");
return console.error(err);
}

waitTimes = [];
for(var i = 0, ride; ride = rides[i++];) {
if (park.logRide) {
console.log(ride.name);
console.log(park.rides);
}
if (park.rides && park.rides.includes(ride.name)) {
waitTimes.push(ride);
}
}
console.log(park.name + ": Processed Wait Times...");

var payload = {
waitTimes: waitTimes,
openingTime: openingTime,
closingTime: closingTime,
};

self.sendSocketNotification("POPULATE_WAIT_TIMES_" + park.name.replace(/ /g,"_"), payload);
});
},

socketNotificationReceived: function(notification, payload) {
Expand Down
4 changes: 2 additions & 2 deletions package.json
@@ -1,12 +1,12 @@
{
"name": "MMM-DisneyWaitTimes",
"version": "1.0.0",
"version": "1.1.0",
"description": " Disney Wait Times module for MagicMirror2",
"main": "disneyWaitTimes.js",
"author": "Dennis Glasberg",
"license": "MIT",
"dependencies": {
"themeparks": "latest",
"babel-polyfill": "latest"
"babel-polyfill": "latest"
}
}

0 comments on commit c833c78

Please sign in to comment.