-
Notifications
You must be signed in to change notification settings - Fork 0
/
events.js
76 lines (61 loc) · 3.4 KB
/
events.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
Utils = require('./utils');
moment = require('moment');
module.exports = function(eventsConfig) {
this.config = eventsConfig;
this.EventType = {
FAJR: 'Fajr',
SUNRINSE: 'Sunrise',
DHUHR: 'Dhuhr',
ASR:'Asr',
SUNSET: 'Sunset',
MAGHRIB: 'Maghrib',
MIDNIGHT: 'Midnight'
};
this.readTodayEvent = function(callback_fn) {
var today = new Date();
this.readEvent(today, callback_fn);
}
this.readEvent = function(referenceDate, callback_fn) {
var DateInEpochMillis = parseInt(referenceDate.getTime() / 1000);
self = this;
Utils.httpGet('api.aladhan.com',
'/timings/' + DateInEpochMillis + '?latitude=' + this.config.Latitude + '&longitude=' +
this.config.Longitude + '&timezonestring=' + this.config.Timezone + '&method=' +
this.config.CalculationMethod,
function(body) {
var parsed = JSON.parse(body);
events = {};
for (var eventType in self.EventType) {
var eventTimeString = parsed.data.timings[self.EventType[eventType]];
var splitted = eventTimeString.split(/[\s:]+/);
var date = moment(referenceDate).format('YYYY-MM-DD');
var eventTime = date + "T" + splitted[0] + ":" + splitted[1] + ":00";
events[self.EventType[eventType]] = eventTime;
}
// callback
callback_fn(referenceDate, events);
});
}
this.readCalendar = function(month, year, callback_fn) {
Utils.httpGet('api.aladhan.com',
'/calendar' + '?latitude=' + this.config.Latitude + '&longitude=' +
this.config.Longitude + '&timezonestring=' + this.config.Timezone + '&method=' +
this.config.CalculationMethod + '&month=' + month + '&year=' + year,
function(body) {
var parsed = JSON.parse(body);
parsed.data.forEach(function(day) {
var fajrString = day.timings.Fajr;
var sunriseString = day.timings.Sunrise;
var dhuhrString = day.timings.Dhuhr;
var asrString = day.timings.Asr;
var sunsetString = day.timings.Sunset;
var maghribString = day.timings.Maghrib;
var ishaString = day.timings.Isha;
var midnightString = day.timings.Midnight;
var date = day.date.readable;
callback_fn(date, fajrString, sunriseString, dhuhrString, asrString, sunsetString,
maghribString, ishaString, midnightString);
});
});
}
}