]> git.wh0rd.org - tt-rss.git/commitdiff
notifier: add ability to update feeds in tt-rss
authorAndrew Dolgov <fox@madoka.volgo-balt.ru>
Thu, 26 Jan 2012 11:13:04 +0000 (15:13 +0400)
committerAndrew Dolgov <fox@madoka.volgo-balt.ru>
Thu, 26 Jan 2012 11:18:00 +0000 (15:18 +0400)
utils/notifier/background.html
utils/notifier/manifest.json
utils/notifier/options.html

index 7514567666a44b16170712171c22de6fc17a0213..f67523bad7fb7b19a75c08ba9c2772d4aaa92f87 100644 (file)
@@ -2,6 +2,7 @@
 <script type="text/javascript">
 
 var last_updated = 0;
+var feeds_last_updated = 0;
 var prefs_last_updated = 0;
 
 function param_escape(arg) {
@@ -11,7 +12,24 @@ function param_escape(arg) {
                return escape(arg);
 }
 
+function update_feeds() {
+
+       console.log("feeds update");
+
+       var requestUrl = localStorage["site_url"] + "/public.php?op=globalUpdateFeeds";
+
+       var xhr = new XMLHttpRequest();
+
+       xhr.open("POST", requestUrl, true);
+       xhr.send();
+
+       var d = new Date();
+       localStorage["last_feeds_updated"] = d.getTime();
+}
+
 function update() {
+       console.log("update");
+
        var d = new Date();
        var login = localStorage["login"];
        var single_user = localStorage["single_user"];
@@ -23,7 +41,6 @@ function update() {
 
        var xhr = new XMLHttpRequest();
 
-
        xhr.open("POST", requestUrl, true);
        xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xhr.send(params);
@@ -109,6 +126,7 @@ function timeout() {
 
        var update_interval;
        var prefs_updated;
+       var feeds_update_interval = 30 * 60 * 1000;
 
        if (localStorage["update_interval"])
                update_interval = localStorage["update_interval"] * 60 * 1000;
@@ -126,14 +144,27 @@ function timeout() {
                        prefs_updated != prefs_last_updated) {
 
                last_updated = d.getTime();
-               prefs_last_updated = prefs_updated;
                try {
                        update();
                } catch (e) {
-                       //
+                       console.warn(e);
+               }
+       }
+
+       if (localStorage['update_feeds'] == 1 && (d.getTime() > feeds_last_updated + feeds_update_interval || prefs_updated != prefs_last_updated)) {
+
+               feeds_last_updated = d.getTime();
+       
+               try {
+                       update_feeds();
+               } catch (e) {
+                       console.warn(e);
                }
+
        }
 
+       prefs_last_updated = prefs_updated;
+
        window.setTimeout("timeout()", 1000);
 }
 
index 8294469eecbb29c4889dfaf97fe81f5bd3b5a583..e76b07637d3231ee0ce4d67670d7143d7acbb283 100644 (file)
@@ -1,7 +1,7 @@
 {
   "name": "Tiny Tiny RSS Notifier",
   "background_page": "background.html",
-  "version": "0.4.2",
+  "version": "0.5",
   "description": "This extension displays the number of unread articles in your Tiny Tiny RSS installation",
   "options_page": "options.html",
   "icons": { "48": "images/icon.png", "128": "images/icon.png" },
index af7de024404a5ce1f037fb8e21e639751db04f26..25c26b5df4885a89ed788cb5d564e3cd84218deb 100644 (file)
@@ -40,6 +40,7 @@ function save() {
        localStorage['show_badge'] = (f.show_badge.checked) ? "1" : "0";
        localStorage['show_fresh'] = (f.show_fresh.checked) ? "1" : "0";
        localStorage['single_user'] = (f.single_user.checked) ? "1" : "0";
+       localStorage['update_feeds'] = (f.update_feeds.checked) ? "1" : "0";
 
        var d = new Date();
 
@@ -89,6 +90,11 @@ function init() {
        else
                f.single_user.checked = false;
 
+       if (localStorage['update_feeds'])
+               f.update_feeds.checked = localStorage['update_feeds'] == "1";
+       else
+               f.update_feeds.checked = false;
+
        single_user_toggle();
 
        var last_updated = $('last_updated');
@@ -97,8 +103,13 @@ function init() {
 
        d.setTime(localStorage["last_updated"]);
 
-
        last_updated.innerHTML = d;     
+
+       var feeds_last_updated = $('feeds-last-updated');
+
+       d.setTime(localStorage["last_feeds_updated"]);
+
+       feeds_last_updated.innerHTML = d;
 }
 </script>
 
@@ -177,10 +188,16 @@ fieldset span.note {
                        <span class="note">(requires Tiny Tiny RSS 1.4.1 or trunk)</span>
                </fieldset>
 
+               <fieldset>
+                       <label>Periodically try to update tt-rss feeds:</label>
+                       <input name="update_feeds" type="checkbox"  value="1"/>
+                       <span class="note">Please use this as a last resort method only in case you can't update your feeds <a target="_blank" href="http://tt-rss.org/wiki/UpdatingFeeds">in any other way</a>. Last updated: <span id='feeds-last-updated'>N/A</span></span>
+               </fieldset>
+
                <input type="submit" value="Save"/>
        </form>
 
-       <p>Copyright &copy; 2010 
+       <p>Copyright &copy; 2010-2012
                <a target="_blank" href="http://tt-rss.org">Andrew Dolgov</a>. 
                Licensed under GNU GPL version 2.</p>