2 <script type=
"text/javascript">
5 var feeds_last_updated =
0;
6 var prefs_last_updated =
0;
8 function param_escape(arg) {
9 if (typeof encodeURIComponent != 'undefined')
10 return encodeURIComponent(arg);
15 function update_feeds() {
17 console.log(
"feeds update");
19 var requestUrl = localStorage[
"site_url"] +
"/public.php?op=globalUpdateFeeds";
21 var xhr = new XMLHttpRequest();
23 xhr.open(
"POST", requestUrl, true);
27 localStorage[
"last_feeds_updated"] = d.getTime();
31 console.log(
"update");
34 var login = localStorage[
"login"];
35 var single_user = localStorage[
"single_user"];
37 if (single_user ==
"1") login =
"admin";
39 var requestUrl = localStorage[
"site_url"] +
"/public.php";
40 var params =
"op=getUnread&fresh=1&login=" + param_escape(login);
42 var xhr = new XMLHttpRequest();
44 xhr.open(
"POST", requestUrl, true);
45 xhr.setRequestHeader(
"Content-type",
"application/x-www-form-urlencoded");
48 xhr.onreadystatechange = function() {
49 if (xhr.readyState ==
4) {
51 var icon = new Object();
52 var title = new Object();
53 var badge = new Object();
54 var badge_color = new Object();
57 icon.path =
"images/normal.png";
60 badge_color.color = [
0,
0,
0,
0];
62 var show_badge = localStorage[
"show_badge"] ==
"1";
63 var show_fresh = localStorage[
"show_fresh"] ==
"1";
65 if (xhr.status ==
200) {
66 var response = xhr.responseText.split(
";");
68 var unread = parseInt(response[
0]);
70 if (isNaN(unread)) unread =
0;
74 if (response.length ==
2)
75 fresh = parseInt(response[
1]);
79 if (isNaN(fresh)) fresh =
0;
82 icon.path =
"images/alert.png";
83 title.title =
"You have %s unread articles.".replace(
"%s", unread);
85 if (show_fresh && fresh
> 0) {
86 badge.text = fresh +
"";
87 badge_color.color = [
0,
200,
0,
255];
89 badge.text = unread +
"";
90 badge_color.color = [
255,
0,
0,
255];
93 } else if (unread == -
1) {
94 icon.path =
"images/error.png";
96 var errorMsg = xhr.responseText.split(
";")[
1];
98 title.title =
"Error: %s.".replace(
"%s", errorMsg.trim());
101 title.title =
"You have no unread articles.";
104 localStorage[
"last_updated"] = d.getTime();
105 localStorage[
"last_error"] =
"";
107 localStorage[
"last_error"] = xhr.responseText;
109 icon.path =
"images/error.png";
110 title.title =
"Error (%s) while updating.".replace(
"%s", xhr.status);
113 if (!show_badge) badge.text =
"";
115 chrome.browserAction.setBadgeBackgroundColor(badge_color);
116 chrome.browserAction.setBadgeText(badge);
117 chrome.browserAction.setTitle(title);
118 chrome.browserAction.setIcon(icon);
129 var feeds_update_interval =
30 *
60 *
1000;
131 if (localStorage[
"update_interval"])
132 update_interval = localStorage[
"update_interval"] *
60 *
1000;
134 update_interval =
15 *
60 *
1000;
136 if (localStorage[
"prefs_updated"])
137 prefs_updated = localStorage[
"prefs_updated"];
143 if (d.getTime()
> last_updated + update_interval ||
144 prefs_updated != prefs_last_updated) {
146 last_updated = d.getTime();
154 if (localStorage['update_feeds'] ==
1 && (d.getTime()
> feeds_last_updated + feeds_update_interval || prefs_updated != prefs_last_updated)) {
156 feeds_last_updated = d.getTime();
166 prefs_last_updated = prefs_updated;
168 window.setTimeout(
"timeout()",
1000);
173 chrome.browserAction.onClicked.addListener(function() {
174 var site_url = localStorage['site_url'];
177 var cp = new Object();
181 chrome.tabs.create(cp);
186 window.setTimeout(
"timeout()",
1000);
191 <body onload=
"init()"> </body>