From f052517741c50033f8edc33395fbeb8019da486c Mon Sep 17 00:00:00 2001 From: Martin Donnelly Date: Sun, 2 Apr 2017 23:42:24 +0100 Subject: [PATCH] tidying up some stuff --- lib/fx.js | 12 ++++++------ lib/newdata.json | 2 +- lib/today.js | 6 +++--- lib/today/trains.js | 4 ++-- lib/train.js | 44 +++++++++++++++++++++----------------------- web-server.js | 1 + 6 files changed, 34 insertions(+), 35 deletions(-) diff --git a/lib/fx.js b/lib/fx.js index d35bfd9..50367e9 100644 --- a/lib/fx.js +++ b/lib/fx.js @@ -3,8 +3,8 @@ let fxCache = {}; exports.doFx = function (req,res) { console.log('FX request'); function fxQuery(callback, r) { - var req = r; - var options = { + let req = r; + let options = { host: 'openexchangerates.org', // port: 80, path: '/api/latest.json?app_id=0eb932cee3bc40259f824d4b4c96c7d2', @@ -17,7 +17,7 @@ exports.doFx = function (req,res) { }; http.request(options).on('response', function (response) { - var data = ''; + let data = ''; response.on("data", function (chunk) { data += chunk; }); @@ -31,12 +31,12 @@ exports.doFx = function (req,res) { }).end(); } - var now = new Date(); - if (now - GLOBAL.lastcheck > (60000 * 14)) { + let now = new Date(); + if (now - GLOBAL.fxLastCheck > (60000 * 14)) { fxQuery(function (a, b) { console.log(a); fxCache = a; - GLOBAL.lastcheck = now; + GLOBAL.fxLastCheck = now; res.setHeader('Content-Type', 'application/json'); res.end(JSON.stringify(fxCache)); }, res); diff --git a/lib/newdata.json b/lib/newdata.json index ef8fae6..3255c53 100644 --- a/lib/newdata.json +++ b/lib/newdata.json @@ -1 +1 @@ -{"last":1491130159539,"data":{"trains":{"last":"2017-04-02T10:46:48.981Z","data":[]},"weather":{"currently":"Clear. Around 4 to 12 degrees.","today":"Mostly cloudy starting in the evening.","later":"Light rain tomorrow and Tuesday, with temperatures falling to 9°C on Sunday.","alerts":{},"data":{"latitude":55.95,"longitude":-4.566667,"timezone":"Europe/London","offset":1,"currently":{"time":1491130013,"summary":"Clear","icon":"clear-day","nearestStormDistance":195,"nearestStormBearing":40,"precipIntensity":0,"precipProbability":0,"temperature":9.95,"apparentTemperature":9.36,"dewPoint":6.21,"humidity":0.78,"windSpeed":3.89,"windBearing":181,"visibility":10,"cloudCover":0.23,"pressure":1015.46,"ozone":337.05},"minutely":{"summary":"Clear for the hour.","icon":"clear-day","data":[{"time":1491129960,"precipIntensity":0,"precipProbability":0},{"time":1491130020,"precipIntensity":0,"precipProbability":0},{"time":1491130080,"precipIntensity":0,"precipProbability":0},{"time":1491130140,"precipIntensity":0,"precipProbability":0},{"time":1491130200,"precipIntensity":0,"precipProbability":0},{"time":1491130260,"precipIntensity":0,"precipProbability":0},{"time":1491130320,"precipIntensity":0,"precipProbability":0},{"time":1491130380,"precipIntensity":0,"precipProbability":0},{"time":1491130440,"precipIntensity":0,"precipProbability":0},{"time":1491130500,"precipIntensity":0,"precipProbability":0},{"time":1491130560,"precipIntensity":0,"precipProbability":0},{"time":1491130620,"precipIntensity":0,"precipProbability":0},{"time":1491130680,"precipIntensity":0,"precipProbability":0},{"time":1491130740,"precipIntensity":0,"precipProbability":0},{"time":1491130800,"precipIntensity":0,"precipProbability":0},{"time":1491130860,"precipIntensity":0,"precipProbability":0},{"time":1491130920,"precipIntensity":0,"precipProbability":0},{"time":1491130980,"precipIntensity":0,"precipProbability":0},{"time":1491131040,"precipIntensity":0,"precipProbability":0},{"time":1491131100,"precipIntensity":0,"precipProbability":0},{"time":1491131160,"precipIntensity":0,"precipProbability":0},{"time":1491131220,"precipIntensity":0,"precipProbability":0},{"time":1491131280,"precipIntensity":0,"precipProbability":0},{"time":1491131340,"precipIntensity":0,"precipProbability":0},{"time":1491131400,"precipIntensity":0,"precipProbability":0},{"time":1491131460,"precipIntensity":0,"precipProbability":0},{"time":1491131520,"precipIntensity":0,"precipProbability":0},{"time":1491131580,"precipIntensity":0,"precipProbability":0},{"time":1491131640,"precipIntensity":0,"precipProbability":0},{"time":1491131700,"precipIntensity":0,"precipProbability":0},{"time":1491131760,"precipIntensity":0,"precipProbability":0},{"time":1491131820,"precipIntensity":0,"precipProbability":0},{"time":1491131880,"precipIntensity":0,"precipProbability":0},{"time":1491131940,"precipIntensity":0,"precipProbability":0},{"time":1491132000,"precipIntensity":0,"precipProbability":0},{"time":1491132060,"precipIntensity":0,"precipProbability":0},{"time":1491132120,"precipIntensity":0,"precipProbability":0},{"time":1491132180,"precipIntensity":0,"precipProbability":0},{"time":1491132240,"precipIntensity":0,"precipProbability":0},{"time":1491132300,"precipIntensity":0,"precipProbability":0},{"time":1491132360,"precipIntensity":0,"precipProbability":0},{"time":1491132420,"precipIntensity":0,"precipProbability":0},{"time":1491132480,"precipIntensity":0,"precipProbability":0},{"time":1491132540,"precipIntensity":0,"precipProbability":0},{"time":1491132600,"precipIntensity":0,"precipProbability":0},{"time":1491132660,"precipIntensity":0,"precipProbability":0},{"time":1491132720,"precipIntensity":0,"precipProbability":0},{"time":1491132780,"precipIntensity":0,"precipProbability":0},{"time":1491132840,"precipIntensity":0,"precipProbability":0},{"time":1491132900,"precipIntensity":0,"precipProbability":0},{"time":1491132960,"precipIntensity":0,"precipProbability":0},{"time":1491133020,"precipIntensity":0,"precipProbability":0},{"time":1491133080,"precipIntensity":0,"precipProbability":0},{"time":1491133140,"precipIntensity":0,"precipProbability":0},{"time":1491133200,"precipIntensity":0,"precipProbability":0},{"time":1491133260,"precipIntensity":0,"precipProbability":0},{"time":1491133320,"precipIntensity":0,"precipProbability":0},{"time":1491133380,"precipIntensity":0,"precipProbability":0},{"time":1491133440,"precipIntensity":0,"precipProbability":0},{"time":1491133500,"precipIntensity":0,"precipProbability":0},{"time":1491133560,"precipIntensity":0,"precipProbability":0}]},"hourly":{"summary":"Mostly cloudy starting this evening.","icon":"partly-cloudy-night","data":[{"time":1491127200,"summary":"Partly Cloudy","icon":"partly-cloudy-day","precipIntensity":0,"precipProbability":0,"temperature":8.77,"apparentTemperature":8.09,"dewPoint":5.82,"humidity":0.82,"windSpeed":3.68,"windBearing":192,"visibility":10,"cloudCover":0.28,"pressure":1012.25,"ozone":338.93},{"time":1491130800,"summary":"Clear","icon":"clear-day","precipIntensity":0,"precipProbability":0,"temperature":9.95,"apparentTemperature":9.33,"dewPoint":5.98,"humidity":0.76,"windSpeed":3.97,"windBearing":178,"visibility":10,"cloudCover":0.22,"pressure":1016.36,"ozone":336.52},{"time":1491134400,"summary":"Clear","icon":"clear-day","precipIntensity":0,"precipProbability":0,"temperature":10.79,"apparentTemperature":10.79,"dewPoint":5.88,"humidity":0.72,"windSpeed":3.92,"windBearing":167,"visibility":10,"cloudCover":0.19,"pressure":1018.35,"ozone":334.05},{"time":1491138000,"summary":"Clear","icon":"clear-day","precipIntensity":0,"precipProbability":0,"temperature":11.89,"apparentTemperature":11.89,"dewPoint":6.57,"humidity":0.7,"windSpeed":4.81,"windBearing":157,"visibility":10,"cloudCover":0.19,"pressure":1019.7,"ozone":331.47},{"time":1491141600,"summary":"Clear","icon":"clear-day","precipIntensity":0,"precipProbability":0,"temperature":12.96,"apparentTemperature":12.96,"dewPoint":7.43,"humidity":0.69,"windSpeed":5.38,"windBearing":148,"visibility":10,"cloudCover":0.18,"pressure":1020.45,"ozone":328.84},{"time":1491145200,"summary":"Clear","icon":"clear-day","precipIntensity":0,"precipProbability":0,"temperature":12.97,"apparentTemperature":12.97,"dewPoint":7.43,"humidity":0.69,"windSpeed":6.05,"windBearing":143,"visibility":10,"cloudCover":0.18,"pressure":1020.79,"ozone":326.5},{"time":1491148800,"summary":"Clear","icon":"clear-day","precipIntensity":0,"precipProbability":0,"temperature":11.78,"apparentTemperature":11.78,"dewPoint":6.71,"humidity":0.71,"windSpeed":6.25,"windBearing":134,"visibility":10,"cloudCover":0.13,"pressure":1021.06,"ozone":324.48},{"time":1491152400,"summary":"Clear","icon":"clear-day","precipIntensity":0,"precipProbability":0,"temperature":10.42,"apparentTemperature":10.42,"dewPoint":5.84,"humidity":0.73,"windSpeed":6.79,"windBearing":127,"visibility":10,"cloudCover":0.1,"pressure":1020.82,"ozone":322.76},{"time":1491156000,"summary":"Clear","icon":"clear-day","precipIntensity":0,"precipProbability":0,"temperature":9.16,"apparentTemperature":7.37,"dewPoint":5.06,"humidity":0.76,"windSpeed":7.18,"windBearing":123,"visibility":10,"cloudCover":0.11,"pressure":1020.69,"ozone":321.61},{"time":1491159600,"summary":"Partly Cloudy","icon":"partly-cloudy-night","precipIntensity":0,"precipProbability":0,"temperature":8.13,"apparentTemperature":6.09,"dewPoint":4.66,"humidity":0.79,"windSpeed":7.37,"windBearing":121,"visibility":10,"cloudCover":0.32,"pressure":1020.78,"ozone":321.17},{"time":1491163200,"summary":"Partly Cloudy","icon":"partly-cloudy-night","precipIntensity":0,"precipProbability":0,"temperature":7.7,"apparentTemperature":5.41,"dewPoint":4.73,"humidity":0.81,"windSpeed":7.95,"windBearing":120,"visibility":10,"cloudCover":0.57,"pressure":1020.98,"ozone":321.3},{"time":1491166800,"summary":"Mostly Cloudy","icon":"partly-cloudy-night","precipIntensity":0,"precipProbability":0,"temperature":7.36,"apparentTemperature":4.89,"dewPoint":4.87,"humidity":0.84,"windSpeed":8.38,"windBearing":119,"visibility":10,"cloudCover":0.77,"pressure":1021.08,"ozone":321.92},{"time":1491170400,"summary":"Mostly Cloudy","icon":"partly-cloudy-night","precipIntensity":0,"precipProbability":0,"temperature":7.32,"apparentTemperature":4.84,"dewPoint":5.09,"humidity":0.86,"windSpeed":8.43,"windBearing":117,"visibility":10,"cloudCover":0.79,"pressure":1020.98,"ozone":323.06},{"time":1491174000,"summary":"Mostly Cloudy","icon":"partly-cloudy-night","precipIntensity":0,"precipProbability":0,"temperature":7.16,"apparentTemperature":4.57,"dewPoint":5.21,"humidity":0.87,"windSpeed":8.7,"windBearing":116,"visibility":10,"cloudCover":0.77,"pressure":1020.76,"ozone":324.68},{"time":1491177600,"summary":"Mostly Cloudy","icon":"partly-cloudy-night","precipIntensity":0,"precipProbability":0,"temperature":6.75,"apparentTemperature":4,"dewPoint":5.06,"humidity":0.89,"windSpeed":9,"windBearing":115,"visibility":10,"cloudCover":0.76,"pressure":1020.45,"ozone":326.61},{"time":1491181200,"summary":"Mostly Cloudy","icon":"partly-cloudy-night","precipIntensity":0,"precipProbability":0,"temperature":6.84,"apparentTemperature":4.03,"dewPoint":5.2,"humidity":0.89,"windSpeed":9.31,"windBearing":115,"visibility":10,"cloudCover":0.76,"pressure":1020.01,"ozone":329.13},{"time":1491184800,"summary":"Mostly Cloudy","icon":"partly-cloudy-night","precipIntensity":0,"precipProbability":0,"temperature":6.83,"apparentTemperature":3.91,"dewPoint":5.17,"humidity":0.89,"windSpeed":9.85,"windBearing":113,"visibility":10,"cloudCover":0.76,"pressure":1019.49,"ozone":331.95},{"time":1491188400,"summary":"Mostly Cloudy","icon":"partly-cloudy-night","precipIntensity":0,"precipProbability":0,"temperature":6.74,"apparentTemperature":3.66,"dewPoint":5.01,"humidity":0.89,"windSpeed":10.46,"windBearing":113,"visibility":10,"cloudCover":0.76,"pressure":1019.03,"ozone":334.08},{"time":1491192000,"summary":"Mostly Cloudy","icon":"partly-cloudy-night","precipIntensity":0,"precipProbability":0,"temperature":6.59,"apparentTemperature":3.52,"dewPoint":4.91,"humidity":0.89,"windSpeed":10.25,"windBearing":116,"visibility":10,"cloudCover":0.78,"pressure":1018.68,"ozone":335.03},{"time":1491195600,"summary":"Mostly Cloudy","icon":"partly-cloudy-night","precipIntensity":0,"precipProbability":0,"temperature":6.49,"apparentTemperature":3.41,"dewPoint":4.84,"humidity":0.89,"windSpeed":10.19,"windBearing":119,"visibility":10,"cloudCover":0.8,"pressure":1018.39,"ozone":335.3},{"time":1491199200,"summary":"Mostly Cloudy","icon":"partly-cloudy-day","precipIntensity":0,"precipProbability":0,"temperature":6.51,"apparentTemperature":3.39,"dewPoint":4.86,"humidity":0.89,"windSpeed":10.35,"windBearing":123,"visibility":10,"cloudCover":0.81,"pressure":1018.08,"ozone":335.32},{"time":1491202800,"summary":"Mostly Cloudy","icon":"partly-cloudy-day","precipIntensity":0,"precipProbability":0,"temperature":7.07,"apparentTemperature":4.08,"dewPoint":5.27,"humidity":0.88,"windSpeed":10.41,"windBearing":128,"visibility":10,"cloudCover":0.86,"pressure":1017.72,"ozone":335.11},{"time":1491206400,"summary":"Mostly Cloudy","icon":"partly-cloudy-day","precipIntensity":0,"precipProbability":0,"temperature":7.79,"apparentTemperature":4.88,"dewPoint":5.78,"humidity":0.87,"windSpeed":10.9,"windBearing":140,"visibility":10,"cloudCover":0.91,"pressure":1017.34,"ozone":334.67},{"time":1491210000,"summary":"Overcast","icon":"cloudy","precipIntensity":0,"precipProbability":0,"temperature":8.81,"apparentTemperature":6.05,"dewPoint":6.59,"humidity":0.86,"windSpeed":11.5,"windBearing":146,"visibility":10,"cloudCover":0.96,"pressure":1016.95,"ozone":334.4},{"time":1491213600,"summary":"Overcast","icon":"cloudy","precipIntensity":0,"precipProbability":0,"temperature":9.76,"apparentTemperature":7.09,"dewPoint":7.44,"humidity":0.85,"windSpeed":12.42,"windBearing":148,"visibility":10,"cloudCover":0.95,"pressure":1016.53,"ozone":334.55},{"time":1491217200,"summary":"Overcast","icon":"cloudy","precipIntensity":0,"precipProbability":0,"temperature":10.62,"apparentTemperature":10.62,"dewPoint":8.22,"humidity":0.85,"windSpeed":13.33,"windBearing":150,"visibility":10,"cloudCover":0.94,"pressure":1016.11,"ozone":334.87},{"time":1491220800,"summary":"Overcast","icon":"cloudy","precipIntensity":0.0279,"precipProbability":0.01,"precipType":"rain","temperature":11.23,"apparentTemperature":11.23,"dewPoint":8.78,"humidity":0.85,"windSpeed":14.13,"windBearing":152,"visibility":10,"cloudCover":0.95,"pressure":1015.71,"ozone":335.03},{"time":1491224400,"summary":"Light Rain","icon":"rain","precipIntensity":0.4724,"precipProbability":0.6,"precipType":"rain","temperature":10.93,"apparentTemperature":10.93,"dewPoint":8.85,"humidity":0.87,"windSpeed":14.45,"windBearing":154,"visibility":10,"cloudCover":0.95,"pressure":1015.34,"ozone":334.75},{"time":1491228000,"summary":"Light Rain","icon":"rain","precipIntensity":1.0617,"precipProbability":0.7,"precipType":"rain","temperature":10.54,"apparentTemperature":10.54,"dewPoint":8.87,"humidity":0.89,"windSpeed":14.71,"windBearing":156,"visibility":9.25,"cloudCover":0.96,"pressure":1014.98,"ozone":334.3},{"time":1491231600,"summary":"Rain","icon":"rain","precipIntensity":1.397,"precipProbability":0.74,"precipType":"rain","temperature":10.12,"apparentTemperature":10.12,"dewPoint":8.82,"humidity":0.92,"windSpeed":14.89,"windBearing":159,"visibility":5.71,"cloudCover":0.99,"pressure":1014.66,"ozone":334.25},{"time":1491235200,"summary":"Light Rain","icon":"rain","precipIntensity":1.2446,"precipProbability":0.72,"precipType":"rain","temperature":9.82,"apparentTemperature":6.82,"dewPoint":8.65,"humidity":0.92,"windSpeed":14.74,"windBearing":160,"visibility":6.75,"cloudCover":1,"pressure":1014.37,"ozone":334.49},{"time":1491238800,"summary":"Light Rain","icon":"rain","precipIntensity":0.8407,"precipProbability":0.67,"precipType":"rain","temperature":9.52,"apparentTemperature":6.48,"dewPoint":8.47,"humidity":0.93,"windSpeed":14.45,"windBearing":162,"visibility":7.79,"cloudCover":1,"pressure":1014.14,"ozone":335.12},{"time":1491242400,"summary":"Light Rain","icon":"rain","precipIntensity":0.5105,"precipProbability":0.61,"precipType":"rain","temperature":9.26,"apparentTemperature":6.21,"dewPoint":8.3,"humidity":0.94,"windSpeed":14.04,"windBearing":163,"visibility":8.81,"cloudCover":1,"pressure":1014.11,"ozone":336.99},{"time":1491246000,"summary":"Light Rain","icon":"rain","precipIntensity":0.3861,"precipProbability":0.57,"precipType":"rain","temperature":9.12,"apparentTemperature":6.19,"dewPoint":8.23,"humidity":0.94,"windSpeed":12.96,"windBearing":167,"visibility":8.57,"cloudCover":0.97,"pressure":1014.24,"ozone":341.33},{"time":1491249600,"summary":"Light Rain","icon":"rain","precipIntensity":0.3353,"precipProbability":0.55,"precipType":"rain","temperature":9.02,"apparentTemperature":6.27,"dewPoint":8.19,"humidity":0.95,"windSpeed":11.76,"windBearing":171,"visibility":8.33,"cloudCover":0.93,"pressure":1014.59,"ozone":346.91},{"time":1491253200,"summary":"Light Rain","icon":"rain","precipIntensity":0.2921,"precipProbability":0.53,"precipType":"rain","temperature":9,"apparentTemperature":6.32,"dewPoint":8.18,"humidity":0.95,"windSpeed":11.27,"windBearing":181,"visibility":8.1,"cloudCover":0.88,"pressure":1015.24,"ozone":350.83},{"time":1491256800,"summary":"Drizzle","icon":"rain","precipIntensity":0.2286,"precipProbability":0.48,"precipType":"rain","temperature":8.65,"apparentTemperature":6.37,"dewPoint":7.6,"humidity":0.93,"windSpeed":8.79,"windBearing":206,"visibility":10,"cloudCover":0.74,"pressure":1016.26,"ozone":351.8},{"time":1491260400,"summary":"Drizzle","icon":"rain","precipIntensity":0.1727,"precipProbability":0.33,"precipType":"rain","temperature":8.26,"apparentTemperature":5.57,"dewPoint":6.94,"humidity":0.91,"windSpeed":10.38,"windBearing":233,"visibility":10,"cloudCover":0.7,"pressure":1017.55,"ozone":351.1},{"time":1491264000,"summary":"Mostly Cloudy","icon":"partly-cloudy-night","precipIntensity":0.1219,"precipProbability":0.2,"precipType":"rain","temperature":7.91,"apparentTemperature":4.74,"dewPoint":6.29,"humidity":0.9,"windSpeed":12.45,"windBearing":250,"visibility":10,"cloudCover":0.67,"pressure":1018.8,"ozone":349.76},{"time":1491267600,"summary":"Partly Cloudy","icon":"partly-cloudy-night","precipIntensity":0.0813,"precipProbability":0.11,"precipType":"rain","temperature":7.42,"apparentTemperature":4.13,"dewPoint":5.21,"humidity":0.86,"windSpeed":12.48,"windBearing":257,"visibility":10,"cloudCover":0.56,"pressure":1019.96,"ozone":347.77},{"time":1491271200,"summary":"Partly Cloudy","icon":"partly-cloudy-night","precipIntensity":0.0483,"precipProbability":0.04,"precipType":"rain","temperature":6.89,"apparentTemperature":3.68,"dewPoint":4.06,"humidity":0.82,"windSpeed":11.35,"windBearing":263,"visibility":10,"cloudCover":0.51,"pressure":1021.14,"ozone":345.13},{"time":1491274800,"summary":"Partly Cloudy","icon":"partly-cloudy-night","precipIntensity":0.0229,"precipProbability":0.01,"precipType":"rain","temperature":6.36,"apparentTemperature":3.23,"dewPoint":2.95,"humidity":0.79,"windSpeed":10.28,"windBearing":265,"visibility":10,"cloudCover":0.47,"pressure":1022.26,"ozone":342.85},{"time":1491278400,"summary":"Partly Cloudy","icon":"partly-cloudy-night","precipIntensity":0,"precipProbability":0,"temperature":6.28,"apparentTemperature":3.32,"dewPoint":2.82,"humidity":0.78,"windSpeed":9.41,"windBearing":260,"visibility":10,"cloudCover":0.46,"pressure":1023.25,"ozone":341.25},{"time":1491282000,"summary":"Partly Cloudy","icon":"partly-cloudy-night","precipIntensity":0,"precipProbability":0,"temperature":6.19,"apparentTemperature":3.39,"dewPoint":2.76,"humidity":0.79,"windSpeed":8.69,"windBearing":250,"visibility":10,"cloudCover":0.45,"pressure":1024.22,"ozone":340.01},{"time":1491285600,"summary":"Partly Cloudy","icon":"partly-cloudy-day","precipIntensity":0,"precipProbability":0,"temperature":6.14,"apparentTemperature":3.37,"dewPoint":2.67,"humidity":0.78,"windSpeed":8.48,"windBearing":242,"visibility":10,"cloudCover":0.44,"pressure":1025.08,"ozone":339.18},{"time":1491289200,"summary":"Partly Cloudy","icon":"partly-cloudy-day","precipIntensity":0,"precipProbability":0,"temperature":6.9,"apparentTemperature":4.14,"dewPoint":3.04,"humidity":0.76,"windSpeed":9.16,"windBearing":242,"visibility":10,"cloudCover":0.53,"pressure":1025.86,"ozone":338.96},{"time":1491292800,"summary":"Mostly Cloudy","icon":"partly-cloudy-day","precipIntensity":0,"precipProbability":0,"temperature":7.49,"apparentTemperature":4.64,"dewPoint":3.19,"humidity":0.74,"windSpeed":10.25,"windBearing":244,"visibility":10,"cloudCover":0.61,"pressure":1026.56,"ozone":339.15},{"time":1491296400,"summary":"Mostly Cloudy","icon":"partly-cloudy-day","precipIntensity":0,"precipProbability":0,"temperature":7.94,"apparentTemperature":5.02,"dewPoint":3.2,"humidity":0.72,"windSpeed":11.15,"windBearing":244,"visibility":10,"cloudCover":0.69,"pressure":1027.15,"ozone":339.21},{"time":1491300000,"summary":"Mostly Cloudy","icon":"partly-cloudy-day","precipIntensity":0,"precipProbability":0,"temperature":8.21,"apparentTemperature":5.22,"dewPoint":3.13,"humidity":0.7,"windSpeed":11.89,"windBearing":245,"visibility":10,"cloudCover":0.71,"pressure":1027.65,"ozone":338.92}]},"daily":{"summary":"Light rain tomorrow and Tuesday, with temperatures falling to 9°C on Sunday.","icon":"rain","data":[{"time":1491087600,"summary":"Mostly cloudy starting in the evening.","icon":"partly-cloudy-night","sunriseTime":1491112028,"sunsetTime":1491159524,"moonPhase":0.2,"precipIntensity":0,"precipIntensityMax":0,"precipProbability":0,"temperatureMin":4.3,"temperatureMinTime":1491112800,"temperatureMax":12.97,"temperatureMaxTime":1491145200,"apparentTemperatureMin":3.28,"apparentTemperatureMinTime":1491105600,"apparentTemperatureMax":12.97,"apparentTemperatureMaxTime":1491145200,"dewPoint":5.08,"humidity":0.82,"windSpeed":3.31,"windBearing":169,"visibility":10,"cloudCover":0.24,"pressure":1017.25,"ozone":338.32},{"time":1491174000,"summary":"Rain starting in the afternoon.","icon":"rain","sunriseTime":1491198270,"sunsetTime":1491246045,"moonPhase":0.24,"precipIntensity":0.2794,"precipIntensityMax":1.397,"precipIntensityMaxTime":1491231600,"precipProbability":0.74,"precipType":"rain","temperatureMin":6.49,"temperatureMinTime":1491195600,"temperatureMax":11.23,"temperatureMaxTime":1491220800,"apparentTemperatureMin":3.39,"apparentTemperatureMinTime":1491199200,"apparentTemperatureMax":11.23,"apparentTemperatureMaxTime":1491220800,"dewPoint":6.94,"humidity":0.9,"windSpeed":10.88,"windBearing":147,"visibility":10,"cloudCover":0.88,"pressure":1016.8,"ozone":335.9},{"time":1491260400,"summary":"Mostly cloudy throughout the day.","icon":"partly-cloudy-day","sunriseTime":1491284513,"sunsetTime":1491332566,"moonPhase":0.27,"precipIntensity":0.033,"precipIntensityMax":0.1727,"precipIntensityMaxTime":1491260400,"precipProbability":0.33,"precipType":"rain","temperatureMin":6.14,"temperatureMinTime":1491285600,"temperatureMax":11.24,"temperatureMaxTime":1491314400,"apparentTemperatureMin":3.23,"apparentTemperatureMinTime":1491274800,"apparentTemperatureMax":11.24,"apparentTemperatureMaxTime":1491314400,"dewPoint":4.44,"humidity":0.76,"windSpeed":11.94,"windBearing":248,"visibility":10,"cloudCover":0.73,"pressure":1025.93,"ozone":338.83},{"time":1491346800,"summary":"Mostly cloudy throughout the day.","icon":"partly-cloudy-day","sunriseTime":1491370756,"sunsetTime":1491419088,"moonPhase":0.31,"precipIntensity":0.0076,"precipIntensityMax":0.0279,"precipIntensityMaxTime":1491346800,"precipProbability":0.01,"precipType":"rain","temperatureMin":6.59,"temperatureMinTime":1491361200,"temperatureMax":12.16,"temperatureMaxTime":1491400800,"apparentTemperatureMin":2.85,"apparentTemperatureMinTime":1491361200,"apparentTemperatureMax":12.16,"apparentTemperatureMaxTime":1491400800,"dewPoint":4.91,"humidity":0.77,"windSpeed":12.16,"windBearing":279,"visibility":10,"cloudCover":0.71,"pressure":1030.7,"ozone":321.55},{"time":1491433200,"summary":"Mostly cloudy throughout the day.","icon":"partly-cloudy-day","sunriseTime":1491457000,"sunsetTime":1491505609,"moonPhase":0.35,"precipIntensity":0.0127,"precipIntensityMax":0.0229,"precipIntensityMaxTime":1491483600,"precipProbability":0.01,"precipType":"rain","temperatureMin":4.31,"temperatureMinTime":1491516000,"temperatureMax":10.92,"temperatureMaxTime":1491490800,"apparentTemperatureMin":1.2,"apparentTemperatureMinTime":1491516000,"apparentTemperatureMax":10.92,"apparentTemperatureMaxTime":1491490800,"dewPoint":5.71,"humidity":0.87,"windSpeed":9.38,"windBearing":269,"visibility":10,"cloudCover":0.74,"pressure":1029.98,"ozone":291.82},{"time":1491519600,"summary":"Mostly cloudy throughout the day.","icon":"partly-cloudy-day","sunriseTime":1491543244,"sunsetTime":1491592130,"moonPhase":0.38,"precipIntensity":0.0279,"precipIntensityMax":0.0432,"precipIntensityMaxTime":1491584400,"precipProbability":0.04,"precipType":"rain","temperatureMin":3.18,"temperatureMinTime":1491526800,"temperatureMax":9.71,"temperatureMaxTime":1491570000,"apparentTemperatureMin":0.38,"apparentTemperatureMinTime":1491526800,"apparentTemperatureMax":6.98,"apparentTemperatureMaxTime":1491570000,"dewPoint":4.16,"humidity":0.87,"windSpeed":9.73,"windBearing":243,"visibility":9.32,"cloudCover":0.82,"pressure":1023.33,"ozone":298.64},{"time":1491606000,"summary":"Overcast throughout the day.","icon":"cloudy","sunriseTime":1491629489,"sunsetTime":1491678652,"moonPhase":0.41,"precipIntensity":0.0457,"precipIntensityMax":0.0965,"precipIntensityMaxTime":1491663600,"precipProbability":0.14,"precipType":"rain","temperatureMin":4.89,"temperatureMinTime":1491620400,"temperatureMax":9.65,"temperatureMaxTime":1491663600,"apparentTemperatureMin":1.11,"apparentTemperatureMinTime":1491620400,"apparentTemperatureMax":6.92,"apparentTemperatureMaxTime":1491663600,"dewPoint":5.36,"humidity":0.9,"windSpeed":10.72,"windBearing":242,"cloudCover":0.99,"pressure":1019.12,"ozone":316.93},{"time":1491692400,"summary":"Flurries in the evening.","icon":"snow","sunriseTime":1491715734,"sunsetTime":1491765174,"moonPhase":0.45,"precipIntensity":0.066,"precipIntensityMax":0.1067,"precipIntensityMaxTime":1491753600,"precipProbability":0.16,"precipType":"rain","temperatureMin":0.01,"temperatureMinTime":1491775200,"temperatureMax":8.62,"temperatureMaxTime":1491746400,"apparentTemperatureMin":-3.07,"apparentTemperatureMinTime":1491775200,"apparentTemperatureMax":6.16,"apparentTemperatureMaxTime":1491746400,"dewPoint":0.97,"humidity":0.78,"windSpeed":6.38,"windBearing":323,"cloudCover":0.81,"pressure":1019.82,"ozone":350.76}]},"flags":{"sources":["datapoint","gfs","cmc","nam","rap","sref","fnmoc","isd","madis","nearest-precip","metwarn","darksky"],"datapoint-stations":["uk-301777","uk-3134","uk-322052","uk-322595","uk-322659","uk-350056","uk-351269","uk-351289","uk-351397","uk-351465","uk-352102","uk-352379","uk-352954","uk-354999","uk-371524","uk-371606"],"isd-stations":["031070-99999","031160-99999","031200-99999","031290-99999","031330-99999","031340-99999","031350-99999","031360-99999","031380-99999","031390-99999","031400-99999","031430-99999","031450-99999","031480-99999","031490-99999","031520-99999"],"madis-stations":["AU945","C9560","C9739","D4018","E0915","E3381","EGPF","EGPK","MZIU7"],"units":"uk2"}}},"history":["On 2 April 1593, the College of New Aberdeen was founded.","The college was founded by the Earl Marischal of Scotland, George Keith of Inverugie, and became known as Marischal College. The site of the College was formerly occupied by a Franciscan Priory which was disestablished during the Reformation of 1560. Marischal College was the second university in Aberdeen, following the foundation of King's College in 1495 by Bishop William Elphinstone. The two universities were united in 1860 as the University of Aberdeen.","Today also saw the birth, in 1688 of John Smibbert, the Scottish-born American painter and architect who was noted for his portraits of American colonials.","Jack Buchanan, the film actor, producer and singer, was born this day in 1890. His films include, Monte Carlo, The Band Wagon and Yes, Mr.Brown.","Today' s recipe: a Spanish breakfast dish with a fruity accompaniment. Torrija, apricot and almond ","Microsoft Corporation announces the Z80 SoftCard--their first and (for many years) only hardware product--a microprocessor on a printed circuit board that plugged into the Apple II personal computer. It retailed for $349.00. The SoftCard allowed programs running under the CP/M operating system (included with the card, as was Microsoft BASIC) to run on the 6502-based Apple II with only minor modifications. In particular, the word processor WordStar was so popular that people bought the SoftCard and a companion \"80-column card\" just to run it. At one time, SoftCard brought in about half of Microsoft's total revenue. It was discontinued in 1986."],"today":"Sunday April 02, 2017 - The 91st day of 2017, and there are 273 days until the end of the year","tv":{"entries":[{"summary":"Rick and Morty 3x1 - The Rickshank Redemption","dtstart":"2017-04-02T03:30:00.000Z","dtend":"2017-04-02T04:00:00.000Z","description":"Coming Soon...","timeStart":"4:30:00","timeEnd":"5:00:00","duration":"30 minutes","combined":"4:30:00 - Rick and Morty 3x1 - The Rickshank Redemption, 30 minutes","recur":null,"long":"Sunday, 4:30:00 - ","longcombined":"Sunday, 4:30:00 - Rick and Morty 3x1 - The Rickshank Redemption, 30 minutes"}]},"cal":{"today":[{"summary":"Alans wedding","dtstart":"2017-04-01T23:00:00.866Z","dtend":"2017-04-02T23:00:00.866Z","description":"","timeStart":"0:00:00","timeEnd":"0:00:00","duration":"1 day","combined":"0:00:00 - Alans wedding, 1 day","recur":"FREQ=YEARLY","long":"Sunday, 0:00:00 - ","longcombined":"Sunday, 0:00:00 - Alans wedding, 1 day"}],"tomorrow":[],"week":[{"summary":"Update Timesheet","dtstart":"2017-04-07T14:30:00.184Z","dtend":"2017-04-07T15:30:00.184Z","description":"Update the timesheet using https://outsauce.backofficeportal.co","timeStart":"15:30:00","timeEnd":"16:30:00","duration":"1 hour","combined":"15:30:00 - Update Timesheet, 1 hour","recur":"FREQ=WEEKLY;COUNT=15;BYDAY=FR","long":"Friday, 15:30:00 - ","longcombined":"Friday, 15:30:00 - Update Timesheet, 1 hour"}]},"swedish":{"xml":{"$":{"xmlns:wotd":"http://www.transparent.com/word-of-the-day/"},"words":{"date":"04-02-2017","langname":"Swedish","wordtype":"verb","word":"att upprepa","wordsound":"http://wotd.transparent.com/swedish/level-1/sound/00397_WOTD_Swedish_Words.mp3","translation":"to repeat","fnphrase":"Jag förstår inte. Kan du upprepa det?","phrasesound":"http://wotd.transparent.com/swedish/level-1/sound/00397_WOTD_Swedish_Sentences.mp3","enphrase":"I don't understand. Can you repeat that?","wotd:transliteratedWord":"","wotd:transliteratedSentence":"","notes":""}}},"fitbit":{},"ftse":[{"name":"ITV Plc","price":"218.90","change_amount":"+7.50","change_percent":"+3.55%"},{"name":"Land Securities Group Plc","price":"1,059.00","change_amount":"+32.00","change_percent":"+3.12%"},{"name":"British Land Co Plc","price":"610.00","change_amount":"+17.50","change_percent":"+2.95%"},{"name":"Intu Properties Plc","price":"279.20","change_amount":"+7.30","change_percent":"+2.68%"},{"name":"Pearson Plc","price":"682.50","change_amount":"+14.50","change_percent":"+2.17%"},{"name":"ConvaTec Group Plc","price":"279.00","change_amount":"+5.80","change_percent":"+2.12%"},{"name":"Provident Financial Plc","price":"2,997.00","change_amount":"+60.00","change_percent":"+2.04%"},{"name":"easyJet Plc","price":"1,026.00","change_amount":"+19.00","change_percent":"+1.89%"},{"name":"Direct Line Insurance Group Plc","price":"347.40","change_amount":"+6.40","change_percent":"+1.88%"},{"name":"Hammerson","price":"571.00","change_amount":"+10.00","change_percent":"+1.78%"}],"quotes":{"quote":"His ignorance is encyclopedic","author":"Abba Eban","category":"Famous"}},"expire":3600000,"date":{"year":2017,"month":4,"day":2},"_locals":{}} +{"last":1491172884722,"data":{"trains":{"last":"2017-04-02T22:33:36.333Z","data":[]},"weather":{"currently":"Partly Cloudy. Around 4 to 11 degrees.","today":"Partly cloudy until afternoon.","later":"Light rain tomorrow and Sunday, with temperatures peaking at 12°C on Wednesday.","alerts":{},"data":{"latitude":55.95,"longitude":-4.566667,"timezone":"Europe/London","offset":1,"currently":{"time":1491172422,"summary":"Partly Cloudy","icon":"partly-cloudy-night","nearestStormDistance":89,"nearestStormBearing":271,"precipIntensity":0,"precipProbability":0,"temperature":6.75,"apparentTemperature":4.11,"dewPoint":3.65,"humidity":0.81,"windSpeed":8.55,"windBearing":115,"visibility":10,"cloudCover":0.5,"pressure":1015.06,"ozone":322.88},"minutely":{"summary":"Partly cloudy for the hour.","icon":"partly-cloudy-night","data":[{"time":1491172380,"precipIntensity":0,"precipProbability":0},{"time":1491172440,"precipIntensity":0,"precipProbability":0},{"time":1491172500,"precipIntensity":0,"precipProbability":0},{"time":1491172560,"precipIntensity":0,"precipProbability":0},{"time":1491172620,"precipIntensity":0,"precipProbability":0},{"time":1491172680,"precipIntensity":0,"precipProbability":0},{"time":1491172740,"precipIntensity":0,"precipProbability":0},{"time":1491172800,"precipIntensity":0,"precipProbability":0},{"time":1491172860,"precipIntensity":0,"precipProbability":0},{"time":1491172920,"precipIntensity":0,"precipProbability":0},{"time":1491172980,"precipIntensity":0,"precipProbability":0},{"time":1491173040,"precipIntensity":0,"precipProbability":0},{"time":1491173100,"precipIntensity":0,"precipProbability":0},{"time":1491173160,"precipIntensity":0,"precipProbability":0},{"time":1491173220,"precipIntensity":0,"precipProbability":0},{"time":1491173280,"precipIntensity":0,"precipProbability":0},{"time":1491173340,"precipIntensity":0,"precipProbability":0},{"time":1491173400,"precipIntensity":0,"precipProbability":0},{"time":1491173460,"precipIntensity":0,"precipProbability":0},{"time":1491173520,"precipIntensity":0,"precipProbability":0},{"time":1491173580,"precipIntensity":0,"precipProbability":0},{"time":1491173640,"precipIntensity":0,"precipProbability":0},{"time":1491173700,"precipIntensity":0,"precipProbability":0},{"time":1491173760,"precipIntensity":0,"precipProbability":0},{"time":1491173820,"precipIntensity":0,"precipProbability":0},{"time":1491173880,"precipIntensity":0,"precipProbability":0},{"time":1491173940,"precipIntensity":0,"precipProbability":0},{"time":1491174000,"precipIntensity":0,"precipProbability":0},{"time":1491174060,"precipIntensity":0,"precipProbability":0},{"time":1491174120,"precipIntensity":0,"precipProbability":0},{"time":1491174180,"precipIntensity":0,"precipProbability":0},{"time":1491174240,"precipIntensity":0,"precipProbability":0},{"time":1491174300,"precipIntensity":0,"precipProbability":0},{"time":1491174360,"precipIntensity":0,"precipProbability":0},{"time":1491174420,"precipIntensity":0,"precipProbability":0},{"time":1491174480,"precipIntensity":0,"precipProbability":0},{"time":1491174540,"precipIntensity":0,"precipProbability":0},{"time":1491174600,"precipIntensity":0,"precipProbability":0},{"time":1491174660,"precipIntensity":0,"precipProbability":0},{"time":1491174720,"precipIntensity":0,"precipProbability":0},{"time":1491174780,"precipIntensity":0,"precipProbability":0},{"time":1491174840,"precipIntensity":0,"precipProbability":0},{"time":1491174900,"precipIntensity":0,"precipProbability":0},{"time":1491174960,"precipIntensity":0,"precipProbability":0},{"time":1491175020,"precipIntensity":0,"precipProbability":0},{"time":1491175080,"precipIntensity":0,"precipProbability":0},{"time":1491175140,"precipIntensity":0,"precipProbability":0},{"time":1491175200,"precipIntensity":0,"precipProbability":0},{"time":1491175260,"precipIntensity":0,"precipProbability":0},{"time":1491175320,"precipIntensity":0,"precipProbability":0},{"time":1491175380,"precipIntensity":0,"precipProbability":0},{"time":1491175440,"precipIntensity":0,"precipProbability":0},{"time":1491175500,"precipIntensity":0,"precipProbability":0},{"time":1491175560,"precipIntensity":0,"precipProbability":0},{"time":1491175620,"precipIntensity":0,"precipProbability":0},{"time":1491175680,"precipIntensity":0,"precipProbability":0},{"time":1491175740,"precipIntensity":0,"precipProbability":0},{"time":1491175800,"precipIntensity":0,"precipProbability":0},{"time":1491175860,"precipIntensity":0,"precipProbability":0},{"time":1491175920,"precipIntensity":0,"precipProbability":0},{"time":1491175980,"precipIntensity":0,"precipProbability":0}]},"hourly":{"summary":"Light rain starting tomorrow afternoon, continuing until tomorrow evening.","icon":"rain","data":[{"time":1491170400,"summary":"Partly Cloudy","icon":"partly-cloudy-night","precipIntensity":0,"precipProbability":0,"temperature":6.91,"apparentTemperature":4.38,"dewPoint":3.62,"humidity":0.8,"windSpeed":8.23,"windBearing":118,"visibility":10,"cloudCover":0.42,"pressure":1013.26,"ozone":321.81},{"time":1491174000,"summary":"Partly Cloudy","icon":"partly-cloudy-night","precipIntensity":0,"precipProbability":0,"temperature":6.75,"apparentTemperature":4.04,"dewPoint":3.79,"humidity":0.81,"windSpeed":8.81,"windBearing":114,"visibility":10,"cloudCover":0.57,"pressure":1016.47,"ozone":323.71},{"time":1491177600,"summary":"Mostly Cloudy","icon":"partly-cloudy-night","precipIntensity":0,"precipProbability":0,"temperature":6.83,"apparentTemperature":4.04,"dewPoint":4.18,"humidity":0.83,"windSpeed":9.26,"windBearing":112,"visibility":10,"cloudCover":0.69,"pressure":1017.71,"ozone":325.84},{"time":1491181200,"summary":"Mostly Cloudy","icon":"partly-cloudy-night","precipIntensity":0,"precipProbability":0,"temperature":6.98,"apparentTemperature":4.07,"dewPoint":4.68,"humidity":0.85,"windSpeed":9.96,"windBearing":112,"visibility":10,"cloudCover":0.64,"pressure":1018.2,"ozone":328.47},{"time":1491184800,"summary":"Partly Cloudy","icon":"partly-cloudy-night","precipIntensity":0,"precipProbability":0,"temperature":7.07,"apparentTemperature":4.07,"dewPoint":5.09,"humidity":0.87,"windSpeed":10.51,"windBearing":113,"visibility":10,"cloudCover":0.59,"pressure":1018.03,"ozone":331.34},{"time":1491188400,"summary":"Partly Cloudy","icon":"partly-cloudy-night","precipIntensity":0,"precipProbability":0,"temperature":6.99,"apparentTemperature":3.86,"dewPoint":5.17,"humidity":0.88,"windSpeed":11.07,"windBearing":113,"visibility":10,"cloudCover":0.55,"pressure":1017.63,"ozone":333.32},{"time":1491192000,"summary":"Mostly Cloudy","icon":"partly-cloudy-night","precipIntensity":0,"precipProbability":0,"temperature":7.21,"apparentTemperature":4.02,"dewPoint":5.46,"humidity":0.89,"windSpeed":11.59,"windBearing":115,"visibility":10,"cloudCover":0.63,"pressure":1017.94,"ozone":333.7},{"time":1491195600,"summary":"Mostly Cloudy","icon":"partly-cloudy-night","precipIntensity":0,"precipProbability":0,"temperature":7.19,"apparentTemperature":3.9,"dewPoint":5.44,"humidity":0.89,"windSpeed":12.11,"windBearing":115,"visibility":10,"cloudCover":0.71,"pressure":1017.56,"ozone":333.2},{"time":1491199200,"summary":"Mostly Cloudy","icon":"partly-cloudy-day","precipIntensity":0,"precipProbability":0,"temperature":7.01,"apparentTemperature":3.62,"dewPoint":5.24,"humidity":0.89,"windSpeed":12.44,"windBearing":115,"visibility":10,"cloudCover":0.79,"pressure":1017.19,"ozone":332.84},{"time":1491202800,"summary":"Mostly Cloudy","icon":"partly-cloudy-day","precipIntensity":0,"precipProbability":0,"temperature":7.42,"apparentTemperature":4.07,"dewPoint":5.56,"humidity":0.88,"windSpeed":12.81,"windBearing":118,"visibility":10,"cloudCover":0.84,"pressure":1016.82,"ozone":333.03},{"time":1491206400,"summary":"Mostly Cloudy","icon":"partly-cloudy-day","precipIntensity":0,"precipProbability":0,"temperature":8.09,"apparentTemperature":4.83,"dewPoint":6,"humidity":0.87,"windSpeed":13.31,"windBearing":121,"visibility":10,"cloudCover":0.87,"pressure":1016.46,"ozone":333.36},{"time":1491210000,"summary":"Mostly Cloudy","icon":"partly-cloudy-day","precipIntensity":0,"precipProbability":0,"temperature":9.01,"apparentTemperature":5.94,"dewPoint":6.71,"humidity":0.86,"windSpeed":13.69,"windBearing":125,"visibility":10,"cloudCover":0.91,"pressure":1016.07,"ozone":333.7},{"time":1491213600,"summary":"Mostly Cloudy","icon":"partly-cloudy-day","precipIntensity":0,"precipProbability":0,"temperature":10.03,"apparentTemperature":10.03,"dewPoint":7.57,"humidity":0.85,"windSpeed":14.07,"windBearing":126,"visibility":10,"cloudCover":0.89,"pressure":1015.65,"ozone":334.05},{"time":1491217200,"summary":"Mostly Cloudy","icon":"partly-cloudy-day","precipIntensity":0.1016,"precipProbability":0.15,"precipType":"rain","temperature":11.18,"apparentTemperature":11.18,"dewPoint":8.51,"humidity":0.84,"windSpeed":14.44,"windBearing":127,"visibility":10,"cloudCover":0.88,"pressure":1015.21,"ozone":334.41},{"time":1491220800,"summary":"Light Rain","icon":"rain","precipIntensity":0.762,"precipProbability":0.66,"precipType":"rain","temperature":11.8,"apparentTemperature":11.8,"dewPoint":9.02,"humidity":0.83,"windSpeed":14.82,"windBearing":128,"visibility":10,"cloudCover":0.87,"pressure":1014.83,"ozone":334.6},{"time":1491224400,"summary":"Light Rain","icon":"rain","precipIntensity":0.8509,"precipProbability":0.68,"precipType":"rain","temperature":11.42,"apparentTemperature":11.42,"dewPoint":9.06,"humidity":0.85,"windSpeed":14.78,"windBearing":130,"visibility":10,"cloudCover":0.88,"pressure":1014.49,"ozone":334.38},{"time":1491228000,"summary":"Light Rain","icon":"rain","precipIntensity":0.6401,"precipProbability":0.64,"precipType":"rain","temperature":10.86,"apparentTemperature":10.86,"dewPoint":9.01,"humidity":0.88,"windSpeed":14.53,"windBearing":132,"visibility":8.56,"cloudCover":0.9,"pressure":1014.18,"ozone":333.98},{"time":1491231600,"summary":"Light Rain","icon":"rain","precipIntensity":0.8966,"precipProbability":0.68,"precipType":"rain","temperature":10.39,"apparentTemperature":10.39,"dewPoint":8.96,"humidity":0.91,"windSpeed":14.27,"windBearing":134,"visibility":5.93,"cloudCover":1,"pressure":1013.94,"ozone":333.99},{"time":1491235200,"summary":"Light Rain","icon":"rain","precipIntensity":0.795,"precipProbability":0.67,"precipType":"rain","temperature":10.06,"apparentTemperature":10.06,"dewPoint":8.79,"humidity":0.92,"windSpeed":13.71,"windBearing":143,"visibility":6.96,"cloudCover":1,"pressure":1013.79,"ozone":334.48},{"time":1491238800,"summary":"Light Rain","icon":"rain","precipIntensity":0.5842,"precipProbability":0.63,"precipType":"rain","temperature":9.77,"apparentTemperature":6.98,"dewPoint":8.63,"humidity":0.93,"windSpeed":13.14,"windBearing":149,"visibility":8.83,"cloudCover":1,"pressure":1013.75,"ozone":335.38},{"time":1491242400,"summary":"Light Rain","icon":"rain","precipIntensity":0.3759,"precipProbability":0.56,"precipType":"rain","temperature":9.49,"apparentTemperature":6.73,"dewPoint":8.48,"humidity":0.93,"windSpeed":12.55,"windBearing":153,"visibility":10,"cloudCover":0.98,"pressure":1013.83,"ozone":337.01},{"time":1491246000,"summary":"Light Rain","icon":"rain","precipIntensity":0.2489,"precipProbability":0.5,"precipType":"rain","temperature":9.33,"apparentTemperature":6.63,"dewPoint":8.39,"humidity":0.94,"windSpeed":11.84,"windBearing":157,"visibility":10,"cloudCover":0.91,"pressure":1013.98,"ozone":340.09},{"time":1491249600,"summary":"Drizzle","icon":"rain","precipIntensity":0.1295,"precipProbability":0.22,"precipType":"rain","temperature":9.2,"apparentTemperature":6.49,"dewPoint":8.36,"humidity":0.94,"windSpeed":11.74,"windBearing":173,"visibility":9.93,"cloudCover":0.82,"pressure":1014.25,"ozone":343.89},{"time":1491253200,"summary":"Mostly Cloudy","icon":"partly-cloudy-night","precipIntensity":0.0889,"precipProbability":0.12,"precipType":"rain","temperature":9.13,"apparentTemperature":6.52,"dewPoint":8.31,"humidity":0.95,"windSpeed":11.09,"windBearing":181,"visibility":9.48,"cloudCover":0.77,"pressure":1014.81,"ozone":346.64},{"time":1491256800,"summary":"Mostly Cloudy","icon":"partly-cloudy-night","precipIntensity":0.0762,"precipProbability":0.1,"precipType":"rain","temperature":8.82,"apparentTemperature":6.6,"dewPoint":7.81,"humidity":0.93,"windSpeed":8.73,"windBearing":208,"visibility":10,"cloudCover":0.8,"pressure":1015.75,"ozone":347.58},{"time":1491260400,"summary":"Mostly Cloudy","icon":"partly-cloudy-night","precipIntensity":0.0838,"precipProbability":0.11,"precipType":"rain","temperature":8.48,"apparentTemperature":5.87,"dewPoint":7.22,"humidity":0.92,"windSpeed":10.22,"windBearing":236,"visibility":10,"cloudCover":0.84,"pressure":1016.95,"ozone":347.45},{"time":1491264000,"summary":"Mostly Cloudy","icon":"partly-cloudy-night","precipIntensity":0.0864,"precipProbability":0.12,"precipType":"rain","temperature":8.1,"apparentTemperature":4.97,"dewPoint":6.56,"humidity":0.9,"windSpeed":12.6,"windBearing":254,"visibility":10,"cloudCover":0.85,"pressure":1018.21,"ozone":346.68},{"time":1491267600,"summary":"Mostly Cloudy","icon":"partly-cloudy-night","precipIntensity":0.066,"precipProbability":0.08,"precipType":"rain","temperature":7.55,"apparentTemperature":4.27,"dewPoint":5.4,"humidity":0.86,"windSpeed":12.61,"windBearing":262,"visibility":10,"cloudCover":0.66,"pressure":1019.47,"ozone":345.2},{"time":1491271200,"summary":"Partly Cloudy","icon":"partly-cloudy-night","precipIntensity":0.0406,"precipProbability":0.03,"precipType":"rain","temperature":6.95,"apparentTemperature":3.72,"dewPoint":4.14,"humidity":0.82,"windSpeed":11.45,"windBearing":266,"visibility":10,"cloudCover":0.43,"pressure":1020.75,"ozone":343.08},{"time":1491274800,"summary":"Partly Cloudy","icon":"partly-cloudy-night","precipIntensity":0.0203,"precipProbability":0.01,"precipType":"rain","temperature":6.37,"apparentTemperature":3.24,"dewPoint":2.97,"humidity":0.79,"windSpeed":10.22,"windBearing":267,"visibility":10,"cloudCover":0.25,"pressure":1021.96,"ozone":340.97},{"time":1491278400,"summary":"Partly Cloudy","icon":"partly-cloudy-night","precipIntensity":0,"precipProbability":0,"temperature":6.24,"apparentTemperature":3.29,"dewPoint":2.78,"humidity":0.78,"windSpeed":9.33,"windBearing":263,"visibility":10,"cloudCover":0.34,"pressure":1023.05,"ozone":338.81},{"time":1491282000,"summary":"Partly Cloudy","icon":"partly-cloudy-night","precipIntensity":0,"precipProbability":0,"temperature":6.12,"apparentTemperature":3.34,"dewPoint":2.68,"humidity":0.79,"windSpeed":8.5,"windBearing":255,"visibility":10,"cloudCover":0.45,"pressure":1024.04,"ozone":336.65},{"time":1491285600,"summary":"Partly Cloudy","icon":"partly-cloudy-day","precipIntensity":0,"precipProbability":0,"temperature":6.06,"apparentTemperature":3.36,"dewPoint":2.59,"humidity":0.78,"windSpeed":8.17,"windBearing":246,"visibility":10,"cloudCover":0.56,"pressure":1024.95,"ozone":335.37},{"time":1491289200,"summary":"Partly Cloudy","icon":"partly-cloudy-day","precipIntensity":0,"precipProbability":0,"temperature":6.84,"apparentTemperature":4.14,"dewPoint":2.96,"humidity":0.76,"windSpeed":8.9,"windBearing":246,"visibility":10,"cloudCover":0.58,"pressure":1025.82,"ozone":335.69},{"time":1491292800,"summary":"Partly Cloudy","icon":"partly-cloudy-day","precipIntensity":0,"precipProbability":0,"temperature":7.55,"apparentTemperature":4.77,"dewPoint":3.18,"humidity":0.74,"windSpeed":9.99,"windBearing":247,"visibility":10,"cloudCover":0.59,"pressure":1026.61,"ozone":336.89},{"time":1491296400,"summary":"Mostly Cloudy","icon":"partly-cloudy-day","precipIntensity":0,"precipProbability":0,"temperature":8.08,"apparentTemperature":5.23,"dewPoint":3.24,"humidity":0.72,"windSpeed":10.93,"windBearing":247,"visibility":10,"cloudCover":0.62,"pressure":1027.22,"ozone":337.67},{"time":1491300000,"summary":"Mostly Cloudy","icon":"partly-cloudy-day","precipIntensity":0,"precipProbability":0,"temperature":8.29,"apparentTemperature":5.36,"dewPoint":3.21,"humidity":0.7,"windSpeed":11.67,"windBearing":247,"visibility":10,"cloudCover":0.68,"pressure":1027.6,"ozone":337.24},{"time":1491303600,"summary":"Mostly Cloudy","icon":"partly-cloudy-day","precipIntensity":0,"precipProbability":0,"temperature":8.69,"apparentTemperature":5.76,"dewPoint":3.41,"humidity":0.69,"windSpeed":12.33,"windBearing":246,"visibility":10,"cloudCover":0.77,"pressure":1027.81,"ozone":336.4},{"time":1491307200,"summary":"Mostly Cloudy","icon":"partly-cloudy-day","precipIntensity":0,"precipProbability":0,"temperature":9.36,"apparentTemperature":6.5,"dewPoint":3.88,"humidity":0.69,"windSpeed":12.99,"windBearing":246,"visibility":10,"cloudCover":0.83,"pressure":1027.97,"ozone":336.2},{"time":1491310800,"summary":"Mostly Cloudy","icon":"partly-cloudy-day","precipIntensity":0,"precipProbability":0,"temperature":10.12,"apparentTemperature":10.12,"dewPoint":4.65,"humidity":0.69,"windSpeed":13.35,"windBearing":245,"visibility":10,"cloudCover":0.8,"pressure":1028.09,"ozone":337.63},{"time":1491314400,"summary":"Mostly Cloudy","icon":"partly-cloudy-day","precipIntensity":0,"precipProbability":0,"temperature":10.88,"apparentTemperature":10.88,"dewPoint":5.46,"humidity":0.69,"windSpeed":13.72,"windBearing":245,"visibility":10,"cloudCover":0.73,"pressure":1028.16,"ozone":339.7},{"time":1491318000,"summary":"Mostly Cloudy","icon":"partly-cloudy-day","precipIntensity":0,"precipProbability":0,"temperature":11.3,"apparentTemperature":11.3,"dewPoint":6,"humidity":0.7,"windSpeed":14.01,"windBearing":245,"visibility":10,"cloudCover":0.69,"pressure":1028.2,"ozone":340.58},{"time":1491321600,"summary":"Mostly Cloudy","icon":"partly-cloudy-day","precipIntensity":0,"precipProbability":0,"temperature":11.04,"apparentTemperature":11.04,"dewPoint":6.11,"humidity":0.72,"windSpeed":14.11,"windBearing":245,"visibility":10,"cloudCover":0.65,"pressure":1028.2,"ozone":339.03},{"time":1491325200,"summary":"Mostly Cloudy","icon":"partly-cloudy-day","precipIntensity":0,"precipProbability":0,"temperature":10.58,"apparentTemperature":10.58,"dewPoint":6.07,"humidity":0.74,"windSpeed":14.13,"windBearing":245,"visibility":10,"cloudCover":0.62,"pressure":1028.18,"ozone":336.29},{"time":1491328800,"summary":"Mostly Cloudy","icon":"partly-cloudy-day","precipIntensity":0,"precipProbability":0,"temperature":9.99,"apparentTemperature":7.13,"dewPoint":5.87,"humidity":0.76,"windSpeed":14.09,"windBearing":246,"visibility":10,"cloudCover":0.61,"pressure":1028.18,"ozone":334.21},{"time":1491332400,"summary":"Mostly Cloudy","icon":"partly-cloudy-night","precipIntensity":0,"precipProbability":0,"temperature":9.43,"apparentTemperature":6.44,"dewPoint":5.61,"humidity":0.77,"windSpeed":13.98,"windBearing":247,"visibility":10,"cloudCover":0.67,"pressure":1028.28,"ozone":333.6},{"time":1491336000,"summary":"Mostly Cloudy","icon":"partly-cloudy-night","precipIntensity":0,"precipProbability":0,"temperature":8.94,"apparentTemperature":5.82,"dewPoint":5.39,"humidity":0.78,"windSpeed":13.9,"windBearing":248,"visibility":10,"cloudCover":0.76,"pressure":1028.4,"ozone":333.66},{"time":1491339600,"summary":"Mostly Cloudy","icon":"partly-cloudy-night","precipIntensity":0,"precipProbability":0,"temperature":8.43,"apparentTemperature":5.19,"dewPoint":5.14,"humidity":0.8,"windSpeed":13.82,"windBearing":250,"visibility":10,"cloudCover":0.85,"pressure":1028.44,"ozone":333.73},{"time":1491343200,"summary":"Mostly Cloudy","icon":"partly-cloudy-night","precipIntensity":0,"precipProbability":0,"temperature":8.01,"apparentTemperature":4.6,"dewPoint":4.61,"humidity":0.79,"windSpeed":14.14,"windBearing":255,"visibility":10,"cloudCover":0.87,"pressure":1028.33,"ozone":333.79}]},"daily":{"summary":"Light rain tomorrow and Sunday, with temperatures peaking at 12°C on Wednesday.","icon":"rain","data":[{"time":1491087600,"summary":"Partly cloudy until afternoon.","icon":"partly-cloudy-day","sunriseTime":1491112028,"sunsetTime":1491159524,"moonPhase":0.2,"precipIntensity":0,"precipIntensityMax":0,"precipProbability":0,"temperatureMin":4.34,"temperatureMinTime":1491112800,"temperatureMax":11.51,"temperatureMaxTime":1491141600,"apparentTemperatureMin":3.12,"apparentTemperatureMinTime":1491105600,"apparentTemperatureMax":11.51,"apparentTemperatureMaxTime":1491141600,"dewPoint":4.3,"humidity":0.79,"windSpeed":3.7,"windBearing":172,"visibility":10,"cloudCover":0.25,"pressure":1016.79,"ozone":337.46},{"time":1491174000,"summary":"Light rain starting in the afternoon, continuing until evening.","icon":"rain","sunriseTime":1491198270,"sunsetTime":1491246045,"moonPhase":0.24,"precipIntensity":0.2311,"precipIntensityMax":0.8966,"precipIntensityMaxTime":1491231600,"precipProbability":0.68,"precipType":"rain","temperatureMin":6.75,"temperatureMinTime":1491174000,"temperatureMax":11.8,"temperatureMaxTime":1491220800,"apparentTemperatureMin":3.62,"apparentTemperatureMinTime":1491199200,"apparentTemperatureMax":11.8,"apparentTemperatureMaxTime":1491220800,"dewPoint":7.01,"humidity":0.88,"windSpeed":11.41,"windBearing":132,"visibility":10,"cloudCover":0.81,"pressure":1015.77,"ozone":334.71},{"time":1491260400,"summary":"Mostly cloudy throughout the day.","icon":"partly-cloudy-day","sunriseTime":1491284513,"sunsetTime":1491332566,"moonPhase":0.27,"precipIntensity":0.0178,"precipIntensityMax":0.0864,"precipIntensityMaxTime":1491264000,"precipProbability":0.12,"precipType":"rain","temperatureMin":6.06,"temperatureMinTime":1491285600,"temperatureMax":11.3,"temperatureMaxTime":1491318000,"apparentTemperatureMin":3.24,"apparentTemperatureMinTime":1491274800,"apparentTemperatureMax":11.3,"apparentTemperatureMaxTime":1491318000,"dewPoint":4.54,"humidity":0.77,"windSpeed":11.95,"windBearing":250,"visibility":10,"cloudCover":0.65,"pressure":1025.62,"ozone":338.19},{"time":1491346800,"summary":"Mostly cloudy throughout the day.","icon":"partly-cloudy-day","sunriseTime":1491370756,"sunsetTime":1491419088,"moonPhase":0.31,"precipIntensity":0,"precipIntensityMax":0,"precipProbability":0,"temperatureMin":6.56,"temperatureMinTime":1491361200,"temperatureMax":12.24,"temperatureMaxTime":1491400800,"apparentTemperatureMin":2.77,"apparentTemperatureMinTime":1491361200,"apparentTemperatureMax":12.24,"apparentTemperatureMaxTime":1491400800,"dewPoint":4.87,"humidity":0.77,"windSpeed":12.01,"windBearing":279,"visibility":10,"cloudCover":0.76,"pressure":1030.83,"ozone":324.18},{"time":1491433200,"summary":"Mostly cloudy throughout the day.","icon":"partly-cloudy-day","sunriseTime":1491457000,"sunsetTime":1491505609,"moonPhase":0.35,"precipIntensity":0.0127,"precipIntensityMax":0.0279,"precipIntensityMaxTime":1491494400,"precipProbability":0.01,"precipType":"rain","temperatureMin":5.75,"temperatureMinTime":1491516000,"temperatureMax":11.07,"temperatureMaxTime":1491483600,"apparentTemperatureMin":2.55,"apparentTemperatureMinTime":1491516000,"apparentTemperatureMax":11.07,"apparentTemperatureMaxTime":1491483600,"dewPoint":6.07,"humidity":0.87,"windSpeed":9.68,"windBearing":266,"visibility":10,"cloudCover":0.82,"pressure":1030.17,"ozone":295.29},{"time":1491519600,"summary":"Mostly cloudy throughout the day.","icon":"partly-cloudy-day","sunriseTime":1491543244,"sunsetTime":1491592130,"moonPhase":0.38,"precipIntensity":0.0203,"precipIntensityMax":0.0305,"precipIntensityMaxTime":1491570000,"precipProbability":0.02,"precipType":"rain","temperatureMin":3.92,"temperatureMinTime":1491602400,"temperatureMax":10.53,"temperatureMaxTime":1491573600,"apparentTemperatureMin":0.71,"apparentTemperatureMinTime":1491537600,"apparentTemperatureMax":10.53,"apparentTemperatureMaxTime":1491573600,"dewPoint":4.53,"humidity":0.85,"windSpeed":11.91,"windBearing":259,"visibility":8.95,"cloudCover":0.85,"pressure":1023.4,"ozone":302.23},{"time":1491606000,"summary":"Mostly cloudy throughout the day.","icon":"partly-cloudy-day","sunriseTime":1491629489,"sunsetTime":1491678652,"moonPhase":0.41,"precipIntensity":0.0229,"precipIntensityMax":0.0457,"precipIntensityMaxTime":1491656400,"precipProbability":0.04,"precipType":"rain","temperatureMin":2.07,"temperatureMinTime":1491613200,"temperatureMax":11.38,"temperatureMaxTime":1491660000,"apparentTemperatureMin":-0.49,"apparentTemperatureMinTime":1491616800,"apparentTemperatureMax":11.38,"apparentTemperatureMaxTime":1491660000,"dewPoint":4.07,"humidity":0.85,"windSpeed":3.04,"windBearing":228,"cloudCover":0.71,"pressure":1020.17,"ozone":320.64},{"time":1491692400,"summary":"Light rain starting in the afternoon.","icon":"rain","sunriseTime":1491715734,"sunsetTime":1491765174,"moonPhase":0.45,"precipIntensity":0.1092,"precipIntensityMax":0.2972,"precipIntensityMaxTime":1491760800,"precipProbability":0.53,"precipType":"rain","temperatureMin":2.34,"temperatureMinTime":1491706800,"temperatureMax":11.86,"temperatureMaxTime":1491750000,"apparentTemperatureMin":0.42,"apparentTemperatureMinTime":1491706800,"apparentTemperatureMax":11.86,"apparentTemperatureMaxTime":1491750000,"dewPoint":5.39,"humidity":0.91,"windSpeed":4.39,"windBearing":84,"cloudCover":0.95,"pressure":1015.62,"ozone":336.98}]},"flags":{"sources":["datapoint","gfs","cmc","nam","rap","sref","fnmoc","isd","madis","nearest-precip","metwarn","darksky"],"datapoint-stations":["uk-301777","uk-3134","uk-322052","uk-322595","uk-322659","uk-350056","uk-351269","uk-351289","uk-351397","uk-351465","uk-352102","uk-352379","uk-352954","uk-354999","uk-371524","uk-371606"],"isd-stations":["031070-99999","031160-99999","031200-99999","031290-99999","031330-99999","031340-99999","031350-99999","031360-99999","031380-99999","031390-99999","031400-99999","031430-99999","031450-99999","031480-99999","031490-99999","031520-99999"],"madis-stations":["AU945","C9560","C9739","D4018","E0915","E3381","EGPF","EGPK","MZIU7"],"units":"uk2"}}},"history":["On 2 April 1593, the College of New Aberdeen was founded.","The college was founded by the Earl Marischal of Scotland, George Keith of Inverugie, and became known as Marischal College. The site of the College was formerly occupied by a Franciscan Priory which was disestablished during the Reformation of 1560. Marischal College was the second university in Aberdeen, following the foundation of King's College in 1495 by Bishop William Elphinstone. The two universities were united in 1860 as the University of Aberdeen.","Today also saw the birth, in 1688 of John Smibbert, the Scottish-born American painter and architect who was noted for his portraits of American colonials.","Jack Buchanan, the film actor, producer and singer, was born this day in 1890. His films include, Monte Carlo, The Band Wagon and Yes, Mr.Brown.","Today' s recipe: a Spanish breakfast dish with a fruity accompaniment. Torrija, apricot and almond ","Microsoft Corporation announces the Z80 SoftCard--their first and (for many years) only hardware product--a microprocessor on a printed circuit board that plugged into the Apple II personal computer. It retailed for $349.00. The SoftCard allowed programs running under the CP/M operating system (included with the card, as was Microsoft BASIC) to run on the 6502-based Apple II with only minor modifications. In particular, the word processor WordStar was so popular that people bought the SoftCard and a companion \"80-column card\" just to run it. At one time, SoftCard brought in about half of Microsoft's total revenue. It was discontinued in 1986."],"today":"Sunday April 02, 2017 - The 91st day of 2017, and there are 273 days until the end of the year","tv":{"entries":[{"summary":"Rick and Morty 3x1 - The Rickshank Redemption","dtstart":"2017-04-02T03:30:00.000Z","dtend":"2017-04-02T04:00:00.000Z","description":"Coming Soon...","timeStart":"4:30:00","timeEnd":"5:00:00","duration":"30 minutes","combined":"4:30:00 - Rick and Morty 3x1 - The Rickshank Redemption, 30 minutes","recur":null,"long":"Sunday, 4:30:00 - ","longcombined":"Sunday, 4:30:00 - Rick and Morty 3x1 - The Rickshank Redemption, 30 minutes"}]},"cal":{"today":[{"summary":"Alans wedding","dtstart":"2017-04-01T23:00:00.809Z","dtend":"2017-04-02T23:00:00.809Z","description":"","timeStart":"0:00:00","timeEnd":"0:00:00","duration":"1 day","combined":"0:00:00 - Alans wedding, 1 day","recur":"FREQ=YEARLY","long":"Sunday, 0:00:00 - ","longcombined":"Sunday, 0:00:00 - Alans wedding, 1 day"}],"tomorrow":[{"summary":"Glasgow\\, United Kingdom\\, April 2017","dtstart":"2017-04-02T23:00:00.000Z","dtend":"2017-04-03T23:00:00.000Z","description":"Martin Donnelly is in Glasgow\\, United Kingdom from Apr 3\\, 20","timeStart":"0:00:00","timeEnd":"0:00:00","duration":"1 day","combined":"0:00:00 - Glasgow\\, United Kingdom\\, April 2017, 1 day","recur":null,"long":"Monday, 0:00:00 - ","longcombined":"Monday, 0:00:00 - Glasgow\\, United Kingdom\\, April 2017, 1 day"},{"summary":"SCOTRAIL - Dumbarton East to Glasgow Queen Street","dtstart":"2017-04-03T06:28:00.000Z","dtend":"2017-04-03T07:04:00.000Z","description":"View and/or edit details in TripIt : https://www.tripit.com/tr","timeStart":"7:28:00","timeEnd":"8:04:00","duration":"36 minutes","combined":"7:28:00 - SCOTRAIL - Dumbarton East to Glasgow Queen Street, 36 minutes","recur":null,"long":"Monday, 7:28:00 - ","longcombined":"Monday, 7:28:00 - SCOTRAIL - Dumbarton East to Glasgow Queen Street, 36 minutes"},{"summary":"SCOTRAIL - Glasgow Queen Street to Haymarket (Edinburgh)","dtstart":"2017-04-03T07:15:00.000Z","dtend":"2017-04-03T08:04:00.000Z","description":"View and/or edit details in TripIt : https://www.tripit.com/tr","timeStart":"8:15:00","timeEnd":"9:04:00","duration":"49 minutes","combined":"8:15:00 - SCOTRAIL - Glasgow Queen Street to Haymarket (Edinburgh), 49 minutes","recur":null,"long":"Monday, 8:15:00 - ","longcombined":"Monday, 8:15:00 - SCOTRAIL - Glasgow Queen Street to Haymarket (Edinburgh), 49 minutes"}],"week":[{"summary":"Update Timesheet","dtstart":"2017-04-07T14:30:00.938Z","dtend":"2017-04-07T15:30:00.938Z","description":"Update the timesheet using https://outsauce.backofficeportal.co","timeStart":"15:30:00","timeEnd":"16:30:00","duration":"1 hour","combined":"15:30:00 - Update Timesheet, 1 hour","recur":"FREQ=WEEKLY;COUNT=15;BYDAY=FR","long":"Friday, 15:30:00 - ","longcombined":"Friday, 15:30:00 - Update Timesheet, 1 hour"}]},"swedish":{"xml":{"$":{"xmlns:wotd":"http://www.transparent.com/word-of-the-day/"},"words":{"date":"04-02-2017","langname":"Swedish","wordtype":"verb","word":"att upprepa","wordsound":"http://wotd.transparent.com/swedish/level-1/sound/00397_WOTD_Swedish_Words.mp3","translation":"to repeat","fnphrase":"Jag förstår inte. Kan du upprepa det?","phrasesound":"http://wotd.transparent.com/swedish/level-1/sound/00397_WOTD_Swedish_Sentences.mp3","enphrase":"I don't understand. Can you repeat that?","wotd:transliteratedWord":"","wotd:transliteratedSentence":"","notes":""}}},"fitbit":{},"ftse":[{"name":"ITV Plc","price":"218.90","change_amount":"+7.50","change_percent":"+3.55%"},{"name":"Land Securities Group Plc","price":"1,059.00","change_amount":"+32.00","change_percent":"+3.12%"},{"name":"British Land Co Plc","price":"610.00","change_amount":"+17.50","change_percent":"+2.95%"},{"name":"Intu Properties Plc","price":"279.20","change_amount":"+7.30","change_percent":"+2.68%"},{"name":"Pearson Plc","price":"682.50","change_amount":"+14.50","change_percent":"+2.17%"},{"name":"ConvaTec Group Plc","price":"279.00","change_amount":"+5.80","change_percent":"+2.12%"},{"name":"Provident Financial Plc","price":"2,997.00","change_amount":"+60.00","change_percent":"+2.04%"},{"name":"easyJet Plc","price":"1,026.00","change_amount":"+19.00","change_percent":"+1.89%"},{"name":"Direct Line Insurance Group Plc","price":"347.40","change_amount":"+6.40","change_percent":"+1.88%"},{"name":"Hammerson","price":"571.00","change_amount":"+10.00","change_percent":"+1.78%"}],"quotes":{"quote":"The full use of your powers along lines of excellence.","author":"Definition of 'happiness' by J","category":"Famous"}},"expire":3600000,"date":{"year":2017,"month":4,"day":2}} diff --git a/lib/today.js b/lib/today.js index a9fd5ff..a6c2e3d 100644 --- a/lib/today.js +++ b/lib/today.js @@ -17,7 +17,7 @@ const weather = require('./today/weather'); const trains = require('./today/trains'); const history = require('./today/history'); const mdMailer = require('./today/mailer'); -const mdFitbit = require('./today/fitbit'); +// const mdFitbit = require('./today/fitbit'); const todayFTSE = require('./today/todayftse'); const quotes = require('./today/quotes'); //var db_name = 'silvrgit'; @@ -389,14 +389,14 @@ module.exports = { console.error(e); }); - mdFitbit.getYesterdayFitbit() + /*mdFitbit.getYesterdayFitbit() .then((d) => { todayCache.data.fitbit = d; }) .catch((e) => { 'use strict'; console.error(e); - }); + });*/ todayCache.date = breakDay(); }, broadcast: function () { diff --git a/lib/today/trains.js b/lib/today/trains.js index 8c624dc..3e3acc9 100644 --- a/lib/today/trains.js +++ b/lib/today/trains.js @@ -11,8 +11,8 @@ const trainList = [ url: 'http://www.journeycheck.com/scotrail/route?from=DBE&to=GLQ&action=search&savedRoute=' }, { - id: 'dbehym', - url: 'http://www.journeycheck.com/scotrail/route?from=DBE&to=HYM&action=search&savedRoute=' + id: 'glqhym', + url: 'http://www.journeycheck.com/scotrail/route?from=GLQ&to=HYM&action=search&savedRoute=' } ]; diff --git a/lib/train.js b/lib/train.js index e05627d..bf0972c 100644 --- a/lib/train.js +++ b/lib/train.js @@ -47,7 +47,7 @@ module.exports = { logger.debug(ts); //GLOBAL.lastcheck = now; logger.debug(ts.sta); - // logger.debug(toSeconds(ts.sta)); + // logger.debug(toSeconds(ts.sta)); output.sta = ts.sta; output.eta = ts.eta; @@ -60,26 +60,25 @@ module.exports = { } }, - getTrainTimes: function(req, res) { - // console.log(req); + getTrainTimes: function (req, res) { + // console.log(req); logger.info('getTrainTimes: ' + JSON.stringify(req.query)); - if (req.query.hasOwnProperty('from') && req.query.hasOwnProperty('from')) - { + if (req.query.hasOwnProperty('from') && req.query.hasOwnProperty('from')) { - const url = '/all/' + req.query.from + '/to/' + req.query.to + '/10?accessToken=215b99fe-b237-4a01-aadc-cf315d6756d8'; + const url = '/all/' + req.query.from + '/to/' + req.query.to + '/10?accessToken=215b99fe-b237-4a01-aadc-cf315d6756d8'; - Query(function (a, b) { + Query(function (a, b) { res.setHeader('Content-Type', 'application/json'); res.end(JSON.stringify(a)); }, res, 'huxley.apphb.com', url); } - else{ + else { res.setHeader('Content-Type', 'application/json'); - res.end(JSON.stringify({})); + res.end(JSON.stringify({})); } }, - getNextTrainTimes: function(req, res) { + getNextTrainTimes: function (req, res) { logger.info('getNextTrainTimes: ' + JSON.stringify(req.query)); let trainFrom, trainTo, trainToken, url; if (req.query.hasOwnProperty('from') && req.query.hasOwnProperty('from')) { @@ -97,21 +96,20 @@ module.exports = { Query(function (a, b) { const output = {}; + logger.log('a', a); const ts = a.departures[0].service; - if ( ts !== null) - { - // console.log(ts); + if (ts !== null) { + // console.log(ts); //GLOBAL.lastcheck = now; logger.debug(ts.sta, ts.std); - // logger.debug(toSeconds(ts.sta)); + // logger.debug(toSeconds(ts.sta)); output.sta = (ts.sta !== null) ? ts.sta : ts.std; output.eta = (ts.eta !== null ? ts.eta : ts.etd); // trainCache.last.glqdbe = toSeconds(ts.sta); // console.log(ts); - } else - { + } else { logger.warn('*** NO SERVICE'); output.sta = 'No Service'; output.eta = 'No Service'; @@ -126,18 +124,18 @@ module.exports = { } } - }, getRoute: function(req, res) { + }, getRoute: function (req, res) { logger.info('getRoute: ' + JSON.stringify(req.query)); let routeID; - const data = {}; + let data = {}; if (req.query.hasOwnProperty('route')) { routeID = req.query.route; Query(function (a, b) { - if (a !== null && a.message === null) { - data = a; - } + if (a !== null && a.message === null) { + data = a; + } res.setHeader('Content-Type', 'application/json'); res.end(JSON.stringify(data)); }, res, 'huxley.apphb.com', '/service/' + routeID + '?accessToken=215b99fe-b237-4a01-aadc-cf315d6756d8'); @@ -150,7 +148,7 @@ function toSeconds(inval) { console.log('inval', typeof inval); if (typeof inval === 'string') { const a = inval.split(':'); - return ((parseInt(a[0]) * (60 * 60)) + (parseInt(a[1]) * 60)); + return ((parseInt(a[0]) * (60 * 60)) + (parseInt(a[1]) * 60)); } return ''; @@ -177,7 +175,7 @@ function Query(callback, r, host, path) { response.on('end', function () { callback(JSON.parse(data), r); }); - response.on('error', function(e) { + response.on('error', function (e) { console.error(e); }); }).end(); diff --git a/web-server.js b/web-server.js index 50d7c94..d0e34cc 100644 --- a/web-server.js +++ b/web-server.js @@ -46,6 +46,7 @@ const polys = require('./lib/poly.js'); const logger = require('log4js').getLogger(); const app = express(); GLOBAL.lastcheck = 0; +GLOBAL.fxLastCheck = 0; let btcCache = {}, fxCache = {}, trainCache = {}; const port = process.env.PORT || 9000;