force refetch feed when clicking update/clicking on same feed in the tree

This commit is contained in:
Andrew Dolgov 2012-10-25 13:15:14 +04:00
parent 56b2a4095b
commit c0c2abbaa7
6 changed files with 29 additions and 49 deletions

View File

@ -134,9 +134,20 @@ class Feeds extends Handler_Protected {
$method_split = explode(":", $method); $method_split = explode(":", $method);
if ($method == "ForceUpdate" && $feed && is_numeric($feed) > 0) { if ($method == "ForceUpdate" && $feed > 0 && is_numeric($feed)) {
include "rssfuncs.php"; // Update the feed if required with some basic flood control
update_rss_feed($this->link, $feed, true);
$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") { if ($method_split[0] == "MarkAllReadGR") {

View File

@ -269,7 +269,7 @@
define('MAGPIE_CACHE_AGE', $cache_age); define('MAGPIE_CACHE_AGE', $cache_age);
define('MAGPIE_CACHE_ON', !$no_cache); 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"); define('MAGPIE_CACHE_DIR', CACHE_DIR . "/magpie");
$rss = @fetch_rss($fetch_url); $rss = @fetch_rss($fetch_url);
@ -282,7 +282,7 @@
$rss = new SimplePie(); $rss = new SimplePie();
$rss->set_useragent(SELF_USER_AGENT); $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_feed_url($fetch_url);
$rss->set_output_encoding('UTF-8'); $rss->set_output_encoding('UTF-8');
//$rss->force_feed(true); //$rss->force_feed(true);

View File

@ -184,7 +184,7 @@
</select> </select>
<button dojoType="dijit.form.Button" name="update" <button dojoType="dijit.form.Button" name="update"
onclick="scheduleFeedUpdate()"> onclick="viewCurrentFeed()">
<?php echo __('Update') ?></button> <?php echo __('Update') ?></button>
<button dojoType="dijit.form.Button" <button dojoType="dijit.form.Button"

View File

@ -137,11 +137,11 @@ dojo.declare("fox.FeedTree", dijit.Tree, {
editFeed(this.getParent().row_id, false); editFeed(this.getParent().row_id, false);
}})); }}));
menu.addChild(new dijit.MenuItem({ /* menu.addChild(new dijit.MenuItem({
label: __("Update feed"), label: __("Update feed"),
onClick: function() { onClick: function() {
scheduleFeedUpdate(this.getParent().row_id, false); heduleFeedUpdate(this.getParent().row_id, false);
}})); }})); */
} }
menu.bindDomNode(tnode.domNode); menu.bindDomNode(tnode.domNode);

View File

@ -149,7 +149,11 @@ function viewfeed(feed, method, is_cat, offset, background, infscroll_req) {
var toolbar_query = Form.serialize("main_toolbar_form"); var toolbar_query = Form.serialize("main_toolbar_form");
var query = "?op=feeds&method=view&feed=" + feed + "&" + 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 (!background) {
if (_search_query) { if (_search_query) {
@ -165,6 +169,10 @@ function viewfeed(feed, method, is_cat, offset, background, infscroll_req) {
if (vgroup_last_feed) { if (vgroup_last_feed) {
query = query + "&vgrlf=" + param_escape(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"); Form.enable("main_toolbar_form");

View File

@ -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() { function newVersionDlg() {
try { try {
var query = "backend.php?op=dlg&method=newVersion"; var query = "backend.php?op=dlg&method=newVersion";