summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2008-01-25 04:28:14 +0100
committerAndrew Dolgov <[email protected]>2008-01-25 04:28:14 +0100
commit740751d8cc40403636dbcb9317782e75a233fed4 (patch)
tree73282ec4b7e1e47faa35acfedd852a61bb37a28b
parentb086fed42877dd306719bc4d6ae4170f31ccf49a (diff)
simplepie: fix feed-not-found bug; update daemon1 to some code from daemon2
-rw-r--r--functions.php2
-rw-r--r--simplepie/simplepie.inc5
-rw-r--r--update_daemon_loop.php17
3 files changed, 22 insertions, 2 deletions
diff --git a/functions.php b/functions.php
index cea42549d..d4f7cce99 100644
--- a/functions.php
+++ b/functions.php
@@ -543,7 +543,7 @@
$rss = new SimplePie();
$rss->set_useragent(SIMPLEPIE_USERAGENT . MAGPIE_USER_AGENT_EXT);
- $rss->set_timeout(20);
+ $rss->set_timeout(10);
$rss->set_feed_url($fetch_url);
$rss->set_output_encoding('UTF-8');
diff --git a/simplepie/simplepie.inc b/simplepie/simplepie.inc
index fce53d396..a90b9ce0e 100644
--- a/simplepie/simplepie.inc
+++ b/simplepie/simplepie.inc
@@ -7616,6 +7616,11 @@ class SimplePie_File
return $this->SimplePie_File($location, $timeout, $redirects, $headers, $useragent, $force_fsockopen);
}
}
+ // No feed fount at error correction.
+ // according to http://simplepie.org/support/viewtopic.php?id=1430
+ else {
+ $this->success = false;
+ }
}
}
else
diff --git a/update_daemon_loop.php b/update_daemon_loop.php
index 4c13dedce..320bec414 100644
--- a/update_daemon_loop.php
+++ b/update_daemon_loop.php
@@ -155,8 +155,23 @@
$user_prefs_cache = array();
_debug(sprintf("Scheduled %d feeds to update...\n", db_num_rows($result)));
-
+
+ // Here is a little cache magic in order to minimize risk of double feed updates.
+ $feeds_to_update = array();
while ($line = db_fetch_assoc($result)) {
+ $feeds_to_update[$line['id']] = $line;
+ }
+
+ // We update the feed last update started date before anything else.
+ // There is no lag due to feed contents downloads
+ // It prevent an other process to update the same feed (for exemple, forced update by user).
+ $feed_ids = array_keys($feeds_to_update);
+ if($feed_ids) {
+ db_query($link, sprintf("UPDATE ttrss_feeds SET last_update_started = NOW()
+ WHERE id IN (%s)", implode(',', $feed_ids)));
+ }
+
+ while ($line = array_pop($feeds_to_update)) {
_debug("Feed: " . $line["feed_url"] . ", " . $line["last_updated"]);