-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathpopup.js
97 lines (70 loc) · 2.93 KB
/
popup.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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
KangoAPI.onReady(function() {
loadPopup();
function loadPopup()
{
var details = {
url: 'https://leprosorium.ru/ajax/api/lepropanel',
method: 'GET',
async: true,
contentType: 'json'
};
var cache_key = 'popup_data';
kango.invokeAsync('kango.storage.getItem', cache_key, function(data) {
// кэшируем ответ от api на две минуты
if (data == null || (Math.round(+new Date() / 1000) - data.time) > 60 * 2) {
kango.xhr.send(details, function (data) {
if (data.status == 200 && data.response != null) {
var my_data = {
karma: data.response.karma,
karmavotes: data.response.karma_votes,
myunreadposts: data.response.myunreadposts,
myunreadcomms: data.response.myunreadcomms,
inboxunreadposts: data.response.inboxunreadposts,
inboxunreadcomms: data.response.inboxunreadcomms
};
setPopupData(my_data);
kango.invokeAsync('kango.storage.setItem', cache_key, { time: Math.round(+new Date() / 1000), data: my_data });
} else {
// shit happens
$('#loading').hide();
$('#shithappens').show();
}
});
} else {
kango.console.log('from cache');
kango.console.log((Math.round(+new Date() / 1000) - data.time));
setPopupData(data.data);
}
});
}
function setPopupData( data )
{
$('#karma').html( data.karma );
$('#sklad').html( data.myunreadposts+'/'+ data.myunreadcomms );
$('#inbox').html( data.inboxunreadposts +'/'+data.inboxunreadcomms );
$('#loading').hide();
$('#success').show();
var last_five = data.karmavotes.slice(Math.max(data.karmavotes.length - 5, 1)).reverse();
var karma_title = '';
$(last_five).each(function(k,v){
karma_title += v.login +': '+v.attitude;
if( k < 4 ){
karma_title += '\x0A';
}
});
var tr_karma = $('#tr_karma');
tr_karma.attr('title', karma_title);
tr_karma.on('click', function(){
kango.browser.tabs.create({url: 'https://leprosorium.ru/'});
});
$('#tr_sklad').on('click', function(){
kango.browser.tabs.create({url: 'https://leprosorium.ru/my/'});
});
$('#tr_inbox').on('click', function(){
kango.browser.tabs.create({url: 'https://leprosorium.ru/my/inbox/'});
});
$('.settings').on('click', function(){
kango.ui.optionsPage.open();
});
}
});