blob: 177ec68c9a4294736a1dbdf02bb76ac3e3042ba5 (
plain) (
blame)
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
|
import * as gapi from './gapi';
import { msgType, Msg } from './msg';
let patterns = [];
let calendars = {};
let calData = {};
chrome.runtime.onConnect.addListener(function(port) {
console.assert(port.name == 'main');
port.onMessage.addListener(function(_msg) {
let msg = Msg.inflate(_msg);
console.log(msg);
if (msg.type == msgType.updatePatterns) {
patterns = msg.data;
}
else if (msg.type == msgType.getPatterns) {
port.postMessage(msg.genResp(patterns));
}
else if (msg.type == msgType.updateCalendars) {
calendars = msg.data;
for (let id in calendars) {
if (!calData.hasOwnProperty(id))
calData[id] = new gapi.GCalendar(id, calendars[id].summary);
}
}
else if (msg.type == msgType.getCalendars) {
port.postMessage(msg.genResp(calendars));
}
else if (msg.type == msgType.getCalEvents) {
calData[msg.data.id].getEvents(new Date(msg.data.start), new Date(msg.data.end))
.catch(e => {
console.log(`cannot load calendar ${msg.data.id}`, e);
return [];
})
.then(data => {
console.log(data);
let resp = msg.genResp(data.map(e => {
return {
id: e.id,
start: e.start.getTime(),
end: e.end.getTime()
}
}));
console.log(resp);
port.postMessage(resp);
});
}
else {
console.error("unknown msg type");
}
});
});
chrome.browserAction.onClicked.addListener(function() {
chrome.tabs.create({url: 'index.html'});
});
|