From 047b62fd4a788ff4849d240182955a6888e709ab Mon Sep 17 00:00:00 2001 From: Purexo Date: Sun, 14 Dec 2014 14:55:46 +0100 Subject: [PATCH] =?UTF-8?q?Correction=20des=20bugs=20(La=20prog=20evenemen?= =?UTF-8?q?tielle=20=C3=A7a=20s'invente=20pas=20!)=20-=20appel=20de=20fonc?= =?UTF-8?q?tion=20en=20cascade.=20connectComplete()=20appel=20unread()=20A?= =?UTF-8?q?jouts=20des=20listeners.=20-=20Ajoute=20un=20slash=20a=20la=20f?= =?UTF-8?q?in=20de=20l'adresse=20si=20besoin=20-=20lors=20du=20changement?= =?UTF-8?q?=20du=20login=20ou=20mdp=20:=20enleve=20l'auth=20et=20ce=20conn?= =?UTF-8?q?ect()?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- icon.png | Bin 0 -> 7934 bytes lib/main.js | 106 ++++++++++++++++++++++++++++++++++----------------- package.json | 10 ++--- 3 files changed, 77 insertions(+), 39 deletions(-) create mode 100644 icon.png diff --git a/icon.png b/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3c8969f80648a1d9b348e713ca0c51112d594ddf GIT binary patch literal 7934 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 literal 0 HcmV?d00001 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 } ]