diff --git a/icon.png b/icon.png new file mode 100644 index 0000000..3c8969f Binary files /dev/null and b/icon.png differ diff --git a/lib/main.js b/lib/main.js index 0a45318..47b2747 100644 --- a/lib/main.js +++ b/lib/main.js @@ -5,9 +5,14 @@ var preferences = require("sdk/simple-prefs").prefs; var Request = require("sdk/request").Request; var querystring = require("sdk/querystring"); var notifications = require("sdk/notifications"); +/* --- Listener --- */ +require("sdk/simple-prefs").on("url", normalizeUserURL); +require("sdk/simple-prefs").on("login", nullAuth); +require("sdk/simple-prefs").on("password", nullAuth); /* --- variable perso --- */ -var api = "/p/api/greader.php/"; +var api = "p/api/greader.php/"; // le slash de l'adresse est deja mis, s'il est doublé, le formulaire d'inscription bug +var login = "p/i/?a=formLogin"; var auth = null; var nbunread = 0; var json = null; @@ -43,31 +48,9 @@ function refreshRSS() { /* --- --- */ if (auth == null) { connect(); - if (!succes) { - console.log("echec de la connection"); - button.badge = -1; - button.badgeColor = preferences.badgeNotEmpty; - button.icon = "./error.png"; - - notifications.notify({ - text: "Connection impossible", - iconURL: "./error.png" - }); - return null; - } + } else { + unread(); } - unread(); - button.badge = nbunread; - button.badgeColor = nbunread > 0 ? preferences.badgeNotEmpty : preferences.badgeEmpty; - button.icon = nbunread > 0 ? "./icon.png" : "./empty.png"; - - notifications.notify({ - title: "FreshRSS", - text: "Vous avez : " + nbunread + " articles non lu", - onClick: function (data) { - tabs.open(preferences.url); - } - }); } function connect() { @@ -77,8 +60,16 @@ function connect() { }).get(); } function connectComplete(response) { + console.log("connectComplete : \n" + response.text); auth = querystring.parse(response.text, '\n', '=').Auth; - if (auth != null) succes = true; + succes = auth != null; + + if (!succes) { + console.log("connectComplete : echec"); + error("Connection impossible"); + } else { + unread(); + } } function unread() { @@ -92,9 +83,45 @@ function unread() { }).get(); } function unreadComplete(response) { - console.log(response.text + "\n" + response.json.max); - nbunread = response.json.max; json = response.json; + text = response.text; + + if (json != null) { + console.log("unreadComplete : Succes ! "); + nbunread = json.max; + + button.badge = nbunread; + button.badgeColor = nbunread > 0 ? preferences.badgeNotEmpty : preferences.badgeEmpty; + button.icon = nbunread > 0 ? "./icon.png" : "./empty.png"; + + notifications.notify({ + title: "FreshRSS", + text: "Vous avez : " + nbunread + " articles non lu", + iconURL: button.icon, + onClick: function (data) { + tabs.open(preferences.url + login); + } + }); + } else { + console.log("unreadComplete : echec ! \n" + text); + error(text); + } +} + +function error(text) { + nbunread = -1; + button.badge = nbunread; + button.badgeColor = preferences.badgeNotEmpty; + button.icon = "./error.png"; + + notifications.notify({ + title: "FreshRSS", + text: "Error : " + text, + iconURL: button.icon, + onClick: function (data) { + tabs.open(preferences.url + login); + } + }); } function sleep(milliseconds) { @@ -108,17 +135,28 @@ function sleep(milliseconds) { function loop () { // actualise regulierement l'addon refreshRSS(); - setTimeout(loop(), preferences.delay * 60 * 1000); + setTimeout(loop(), preferences.delay * 60 * 1000 / 2); +} + +function normalizeUserURL() { // l'URL doi finir par un slash + var url = preferences.url; + preferences.url = !url.endsWith("/") ? url + "/" : url; + console.log(preferences.url); +} + +function nullAuth(prefName) { + auth = null; + connect(); } -/* --- test --- +/* --- test --- */ preferences.url = "https://purexo.eu/FreshRSS/"; -preferences.login = "Purexo"; -preferences.password = ""; +preferences.login = "demo"; +preferences.password = "demodemo"; /* --- Programmme ---*/ -connect(); -unread(); +preferences.delay = 15; +normalizeUserURL(); loop(); /* --- --- */ \ No newline at end of file diff --git a/package.json b/package.json index e01e075..752a1a4 100644 --- a/package.json +++ b/package.json @@ -5,8 +5,8 @@ "description": "A FreshRSS Notifier for smart people \n N'oubliez pas d'activer l'api \n siteweb : https://purexo.eu/ \n addons : https://addons.mozilla.org/fr/firefox/user/ptheo93/", "homepage": "https://github.com/purexo/FreshRSS-Notify", "author": "Purexo", - "license": "MPL 2.0", - "version": "0.1", + "license": "GPL 3", + "version": "0.2", "preferences": [ { @@ -32,7 +32,7 @@ { "type": "integer", "name": "delay", - "value": "15", + "value": 15, "title": "delay d'actualisation automatique :", "description": "exprimé en minutes" }, @@ -40,14 +40,14 @@ "type": "string", "name": "badgeEmpty", "value": "green", - "title": "Color 0 unread:", + "title": "Color 0 unread : ", "hidden": true }, { "type": "string", "name": "badgeNotEmpty", "value": "red", - "title": "Color many unread", + "title": "Color many unread : ", "hidden": true } ]