You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tt-rss/utils/notifier/background.html

135 lines
2.7 KiB
HTML

<html>
<script type="text/javascript">
var last_updated = 0;
var prefs_last_updated = 0;
function param_escape(arg) {
if (typeof encodeURIComponent != 'undefined')
return encodeURIComponent(arg);
else
return escape(arg);
}
function update() {
var d = new Date();
var login = localStorage["login"];
var requestUrl = localStorage["site_url"] + "/backend.php";
var params = "op=getUnread&login=" + param_escape(login);
var xhr = new XMLHttpRequest();
xhr.open("POST", requestUrl, true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send(params);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
var icon = new Object();
var title = new Object();
var badge = new Object();
var showBadge = localStorage["show_badge"];
if (xhr.status == 200) {
var unread = parseInt(xhr.responseText);
if (unread > 0) {
icon.path = "images/alert.png";
title.title = "You have %s unread articles.".replace("%s", unread);
badge.text = unread + "";
} else if (unread == -1) {
icon.path = "images/error.png";
var errorMsg = xhr.responseText.split(";")[1];
title.title = "Error: %s.".replace("%s", errorMsg.trim());
badge.text = "";
} else {
icon.path = "images/normal.png";
title.title = "You have no unread articles.";
badge.text = "";
}
localStorage["last_updated"] = d.getTime();
localStorage["last_error"] = "";
} else {
localStorage["last_error"] = xhr.responseText;
icon.path = "images/error.png";
title.title = "Error (%s) while updating.".replace("%s", xhr.status);
}
if (showBadge !== "1") badge.text = "";
chrome.browserAction.setBadgeText(badge);
chrome.browserAction.setTitle(title);
chrome.browserAction.setIcon(icon);
}
};
}
function timeout() {
var update_interval;
var prefs_updated;
if (localStorage["update_interval"])
update_interval = localStorage["update_interval"] * 60 * 1000;
else
update_interval = 15 * 60 * 1000;
if (localStorage["prefs_updated"])
prefs_updated = localStorage["prefs_updated"];
else
prefs_updated = -1;
var d = new Date();
if (d.getTime() > last_updated + update_interval ||
prefs_updated != prefs_last_updated) {
last_updated = d.getTime();
prefs_last_updated = prefs_updated;
try {
update();
} catch (e) {
//
}
}
window.setTimeout("timeout()", 1000);
}
function init() {
chrome.browserAction.onClicked.addListener(function() {
var site_url = localStorage['site_url'];
if (site_url) {
var cp = new Object();
cp.url = site_url;
chrome.tabs.create(cp);
}
});
window.setTimeout("timeout()", 1000);
}
</script>
<body onload="init()"> </body>
</html>