diff options
author | Andrew Dolgov <[email protected]> | 2012-10-25 13:15:14 +0400 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2012-10-25 13:15:14 +0400 |
commit | c0c2abbaa73363a1349e41ec08cd54a0d1e8ad8e (patch) | |
tree | d9dc8891e5d0d39ed88aebf7a9058de6f8bae8f8 | |
parent | 56b2a4095b9d819609cffe50306803a215401f16 (diff) |
force refetch feed when clicking update/clicking on same feed in the tree
-rw-r--r-- | classes/feeds.php | 17 | ||||
-rw-r--r-- | include/rssfuncs.php | 4 | ||||
-rw-r--r-- | index.php | 2 | ||||
-rw-r--r-- | js/FeedTree.js | 6 | ||||
-rw-r--r-- | js/feedlist.js | 10 | ||||
-rw-r--r-- | js/tt-rss.js | 39 |
6 files changed, 29 insertions, 49 deletions
diff --git a/classes/feeds.php b/classes/feeds.php index 836bbb060..df206c2ef 100644 --- a/classes/feeds.php +++ b/classes/feeds.php @@ -134,9 +134,20 @@ class Feeds extends Handler_Protected { $method_split = explode(":", $method);
- if ($method == "ForceUpdate" && $feed && is_numeric($feed) > 0) {
- include "rssfuncs.php";
- update_rss_feed($this->link, $feed, true);
+ if ($method == "ForceUpdate" && $feed > 0 && is_numeric($feed)) {
+ // Update the feed if required with some basic flood control
+
+ $result = db_query($this->link,
+ "SELECT ".SUBSTRING_FOR_DATE."(last_updated,1,19) AS last_updated
+ FROM ttrss_feeds WHERE id = '$feed'");
+
+ if (db_num_rows($result) != 0) {
+ $last_updated = strtotime(db_fetch_result($result, 0, "last_updated"));
+ if (time() - $last_updated > 120) {
+ include "rssfuncs.php";
+ update_rss_feed($this->link, $feed, true, true);
+ }
+ }
}
if ($method_split[0] == "MarkAllReadGR") {
diff --git a/include/rssfuncs.php b/include/rssfuncs.php index 09fd457b6..14fa5f348 100644 --- a/include/rssfuncs.php +++ b/include/rssfuncs.php @@ -269,7 +269,7 @@ define('MAGPIE_CACHE_AGE', $cache_age); define('MAGPIE_CACHE_ON', !$no_cache); - define('MAGPIE_FETCH_TIME_OUT', 60); + define('MAGPIE_FETCH_TIME_OUT', $no_cache ? 15 : 60); define('MAGPIE_CACHE_DIR', CACHE_DIR . "/magpie"); $rss = @fetch_rss($fetch_url); @@ -282,7 +282,7 @@ $rss = new SimplePie(); $rss->set_useragent(SELF_USER_AGENT); -# $rss->set_timeout(10); + $rss->set_timeout($no_cache ? 15 : 60); $rss->set_feed_url($fetch_url); $rss->set_output_encoding('UTF-8'); //$rss->force_feed(true); @@ -184,7 +184,7 @@ </select> <button dojoType="dijit.form.Button" name="update" - onclick="scheduleFeedUpdate()"> + onclick="viewCurrentFeed()"> <?php echo __('Update') ?></button> <button dojoType="dijit.form.Button" diff --git a/js/FeedTree.js b/js/FeedTree.js index a197935be..bff9b8c88 100644 --- a/js/FeedTree.js +++ b/js/FeedTree.js @@ -137,11 +137,11 @@ dojo.declare("fox.FeedTree", dijit.Tree, { editFeed(this.getParent().row_id, false); }})); - menu.addChild(new dijit.MenuItem({ + /* menu.addChild(new dijit.MenuItem({ label: __("Update feed"), onClick: function() { - scheduleFeedUpdate(this.getParent().row_id, false); - }})); + heduleFeedUpdate(this.getParent().row_id, false); + }})); */ } menu.bindDomNode(tnode.domNode); diff --git a/js/feedlist.js b/js/feedlist.js index b7cd57c5c..5587c0f30 100644 --- a/js/feedlist.js +++ b/js/feedlist.js @@ -149,7 +149,11 @@ function viewfeed(feed, method, is_cat, offset, background, infscroll_req) { var toolbar_query = Form.serialize("main_toolbar_form"); var query = "?op=feeds&method=view&feed=" + feed + "&" + - toolbar_query + "&m=" + param_escape(method); + toolbar_query; + + if (method) { + query = query + "&m=" + param_escape(method); + } if (!background) { if (_search_query) { @@ -165,6 +169,10 @@ function viewfeed(feed, method, is_cat, offset, background, infscroll_req) { if (vgroup_last_feed) { query = query + "&vgrlf=" + param_escape(vgroup_last_feed); } + } else { + if (!method && !is_cat && feed == getActiveFeedId()) { + query = query + "&m=ForceUpdate"; + } } Form.enable("main_toolbar_form"); diff --git a/js/tt-rss.js b/js/tt-rss.js index 4c53d9e17..f83ba3777 100644 --- a/js/tt-rss.js +++ b/js/tt-rss.js @@ -1040,45 +1040,6 @@ function reverseHeadlineOrder() { } } -function scheduleFeedUpdate(id, is_cat) { - try { - if (!id) { - id = getActiveFeedId(); - is_cat = activeFeedIsCat(); - } - - if (!id) { - alert(__("Please select some feed first.")); - return; - } - - var query = "?op=rpc&method=scheduleFeedUpdate&id=" + - param_escape(id) + - "&is_cat=" + param_escape(is_cat); - - console.log(query); - - new Ajax.Request("backend.php", { - parameters: query, - onComplete: function(transport) { - handle_rpc_json(transport); - - var reply = JSON.parse(transport.responseText); - var message = reply['message']; - - if (message) { - notify_info(message); - return; - } - - } }); - - - } catch (e) { - exception_error("scheduleFeedUpdate", e); - } -} - function newVersionDlg() { try { var query = "backend.php?op=dlg&method=newVersion"; |