Merge pull request #6 from OpenSprinkler/bug/remove-google-timezone-api-dependency
Update timezone lookup to use offline method instead of Google API
This commit is contained in:
3111
package-lock.json
generated
Normal file
3111
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
26
package.json
26
package.json
@@ -7,23 +7,23 @@
|
|||||||
"test": "mocha test"
|
"test": "mocha test"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"cron": "^1.0.9",
|
"cron": "^1.3.0",
|
||||||
"dotenv": "^2.0.0",
|
"dotenv": "^2.0.0",
|
||||||
"express": "^4.13.0",
|
"express": "^4.16.3",
|
||||||
"grunt": "^1.0.1",
|
"geo-tz": "^4.0.1",
|
||||||
"moment-timezone": "^0.5.4",
|
"grunt": "^1.0.2",
|
||||||
"mongoose": "^4.0.6",
|
"moment-timezone": "^0.5.17",
|
||||||
"suncalc": "^1.6.0",
|
"mongoose": "^4.13.13",
|
||||||
"timezoner": "^0.1.9",
|
"suncalc": "^1.8.0",
|
||||||
"xml2js": "^0.4.9"
|
"xml2js": "^0.4.19"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"chai": "^3.0.0",
|
"chai": "^3.0.0",
|
||||||
"codecov.io": "^0.1.5",
|
"codecov.io": "^0.1.5",
|
||||||
"grunt-contrib-jshint": "^1.0.0",
|
"grunt-contrib-jshint": "^1.1.0",
|
||||||
"hippie": "^0.5.0",
|
"hippie": "^0.5.1",
|
||||||
"istanbul": "^0.4.3",
|
"istanbul": "^0.4.5",
|
||||||
"mocha": "^2.2.5",
|
"mocha": "^5.2.0",
|
||||||
"nock": "^8.0.0"
|
"nock": "^9.2.6"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ var http = require( "http" ),
|
|||||||
Cache = require( "../models/Cache" ),
|
Cache = require( "../models/Cache" ),
|
||||||
SunCalc = require( "suncalc" ),
|
SunCalc = require( "suncalc" ),
|
||||||
moment = require( "moment-timezone" ),
|
moment = require( "moment-timezone" ),
|
||||||
timezoner = require( "timezoner" ),
|
geoTZ = require( "geo-tz" ),
|
||||||
|
|
||||||
// Define regex filters to match against location
|
// Define regex filters to match against location
|
||||||
filters = {
|
filters = {
|
||||||
@@ -220,33 +220,20 @@ function getYesterdayWeatherData( location, callback ) {
|
|||||||
|
|
||||||
// Calculate timezone and sun rise/set information
|
// Calculate timezone and sun rise/set information
|
||||||
function getTimeData( location, callback ) {
|
function getTimeData( location, callback ) {
|
||||||
timezoner.getTimeZone(
|
var timezone = moment().tz( geoTZ( location[ 0 ], location[ 1 ] ) ).utcOffset();
|
||||||
location[ 0 ],
|
var tzOffset = getTimezone( timezone, "minutes" );
|
||||||
location[ 1 ],
|
|
||||||
function( err, timezone ) {
|
|
||||||
if ( err || timezone.status !== "OK" ) {
|
|
||||||
callback( false );
|
|
||||||
} else {
|
|
||||||
timezone = ( timezone.rawOffset + timezone.dstOffset ) / 60;
|
|
||||||
var tzOffset = getTimezone( timezone, "minutes" ),
|
|
||||||
|
|
||||||
// Calculate sunrise and sunset since Weather Underground does not provide it
|
// Calculate sunrise and sunset since Weather Underground does not provide it
|
||||||
sunData = SunCalc.getTimes( new Date(), location[ 0 ], location[ 1 ] );
|
var sunData = SunCalc.getTimes( new Date(), location[ 0 ], location[ 1 ] );
|
||||||
|
|
||||||
sunData.sunrise.setUTCMinutes( sunData.sunrise.getUTCMinutes() + tzOffset );
|
sunData.sunrise.setUTCMinutes( sunData.sunrise.getUTCMinutes() + tzOffset );
|
||||||
sunData.sunset.setUTCMinutes( sunData.sunset.getUTCMinutes() + tzOffset );
|
sunData.sunset.setUTCMinutes( sunData.sunset.getUTCMinutes() + tzOffset );
|
||||||
|
|
||||||
var weather = {
|
callback( {
|
||||||
timezone: timezone,
|
timezone: timezone,
|
||||||
sunrise: ( sunData.sunrise.getUTCHours() * 60 + sunData.sunrise.getUTCMinutes() ),
|
sunrise: ( sunData.sunrise.getUTCHours() * 60 + sunData.sunrise.getUTCMinutes() ),
|
||||||
sunset: ( sunData.sunset.getUTCHours() * 60 + sunData.sunset.getUTCMinutes() )
|
sunset: ( sunData.sunset.getUTCHours() * 60 + sunData.sunset.getUTCMinutes() )
|
||||||
};
|
} );
|
||||||
|
|
||||||
callback( weather );
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{ key: process.env.GOOGLE_API_KEY }
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Retrieve cached record for a given location
|
// Retrieve cached record for a given location
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ if ( !process.env.HOST || !process.env.PORT ) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Connect to local MongoDB instance
|
// Connect to local MongoDB instance
|
||||||
mongoose.connect( "localhost" );
|
mongoose.connect( "mongodb://localhost", { useMongoClient: true } );
|
||||||
|
|
||||||
// If the database connection cannot be established, throw an error
|
// If the database connection cannot be established, throw an error
|
||||||
mongoose.connection.on( "error", function() {
|
mongoose.connection.on( "error", function() {
|
||||||
|
|||||||
Reference in New Issue
Block a user