} // function update_daemon_common
// ignore_daemon is not used
- function update_rss_feed($feed, $ignore_daemon = false, $no_cache = false,
- $override_url = false, $override_data = false) {
+ function update_rss_feed($feed, $ignore_daemon = false, $no_cache = false) {
$debug_enabled = defined('DAEMON_EXTENDED_DEBUG') || $_REQUEST['xdebug'];
$feed = db_escape_string($feed);
- if ($override_url) $fetch_url = $override_url;
-
$date_feed_processed = date('Y-m-d H:i');
$cache_filename = CACHE_DIR . "/simplepie/" . sha1($fetch_url) . ".xml";
+ $pluginhost = new PluginHost();
+ $pluginhost->set_debug($debug_enabled);
+ $user_plugins = get_pref("_ENABLED_PLUGINS", $owner_uid);
+
+ $pluginhost->load(PLUGINS, PluginHost::KIND_ALL);
+ $pluginhost->load($user_plugins, PluginHost::KIND_USER, $owner_uid);
+ $pluginhost->load_data();
+
$rss = false;
$rss_hash = false;
- $cache_timestamp = file_exists($cache_filename) ? filemtime($cache_filename) : 0;
$force_refetch = isset($_REQUEST["force_refetch"]);
- if ($override_data) {
- $feed_data = $override_data;
- }
-
- if (!$feed_data && file_exists($cache_filename) &&
+ if (file_exists($cache_filename) &&
is_readable($cache_filename) &&
!$auth_login && !$auth_pass &&
filemtime($cache_filename) > time() - 30) {
_debug("local cache will not be used for this feed", $debug_enabled);
}
- if (!$feed_data) {
- _debug("fetching [$fetch_url]...", $debug_enabled);
- _debug("If-Modified-Since: ".gmdate('D, d M Y H:i:s \G\M\T', $last_article_timestamp), $debug_enabled);
+ if (!$rss) {
- $feed_data = fetch_file_contents($fetch_url, false,
- $auth_login, $auth_pass, false,
- $no_cache ? FEED_FETCH_NO_CACHE_TIMEOUT : FEED_FETCH_TIMEOUT,
- $force_refetch ? 0 : $last_article_timestamp);
+ foreach ($pluginhost->get_hooks(PluginHost::HOOK_FETCH_FEED) as $plugin) {
+ $feed_data = $plugin->hook_fetch_feed($feed_data, $fetch_url, $owner_uid, $feed);
+ }
- global $fetch_curl_used;
+ if (!$feed_data) {
+ _debug("fetching [$fetch_url]...", $debug_enabled);
+ _debug("If-Modified-Since: ".gmdate('D, d M Y H:i:s \G\M\T', $last_article_timestamp), $debug_enabled);
- if (!$fetch_curl_used) {
- $tmp = @gzdecode($feed_data);
+ $feed_data = fetch_file_contents($fetch_url, false,
+ $auth_login, $auth_pass, false,
+ $no_cache ? FEED_FETCH_NO_CACHE_TIMEOUT : FEED_FETCH_TIMEOUT,
+ $force_refetch ? 0 : $last_article_timestamp);
- if ($tmp) $feed_data = $tmp;
- }
+ global $fetch_curl_used;
- $feed_data = trim($feed_data);
+ if (!$fetch_curl_used) {
+ $tmp = @gzdecode($feed_data);
- _debug("fetch done.", $debug_enabled);
+ if ($tmp) $feed_data = $tmp;
+ }
- if ($feed_data) {
- $error = verify_feed_xml($feed_data);
+ $feed_data = trim($feed_data);
+
+ _debug("fetch done.", $debug_enabled);
- if ($error) {
- _debug("error verifying XML, code: " . $error->code, $debug_enabled);
+ /* if ($feed_data) {
+ $error = verify_feed_xml($feed_data);
- if ($error->code == 26) {
- _debug("got error 26, trying to decode entities...", $debug_enabled);
+ if ($error) {
+ _debug("error verifying XML, code: " . $error->code, $debug_enabled);
- $feed_data = html_entity_decode($feed_data, ENT_COMPAT, 'UTF-8');
+ if ($error->code == 26) {
+ _debug("got error 26, trying to decode entities...", $debug_enabled);
- $error = verify_feed_xml($feed_data);
+ $feed_data = html_entity_decode($feed_data, ENT_COMPAT, 'UTF-8');
- if ($error) $feed_data = '';
+ $error = verify_feed_xml($feed_data);
+
+ if ($error) $feed_data = '';
+ }
}
- }
+ } */
}
- }
- if (!$feed_data) {
- global $fetch_last_error;
- global $fetch_last_error_code;
+ if (!$feed_data) {
+ global $fetch_last_error;
+ global $fetch_last_error_code;
- _debug("unable to fetch: $fetch_last_error [$fetch_last_error_code]", $debug_enabled);
+ _debug("unable to fetch: $fetch_last_error [$fetch_last_error_code]", $debug_enabled);
- $error_escaped = '';
+ $error_escaped = '';
- // If-Modified-Since
- if ($fetch_last_error_code != 304) {
- $error_escaped = db_escape_string($fetch_last_error);
- } else {
- _debug("source claims data not modified, nothing to do.", $debug_enabled);
- }
+ // If-Modified-Since
+ if ($fetch_last_error_code != 304) {
+ $error_escaped = db_escape_string($fetch_last_error);
+ } else {
+ _debug("source claims data not modified, nothing to do.", $debug_enabled);
+ }
- db_query(
- "UPDATE ttrss_feeds SET last_error = '$error_escaped',
- last_updated = NOW() WHERE id = '$feed'");
+ db_query(
+ "UPDATE ttrss_feeds SET last_error = '$error_escaped',
+ last_updated = NOW() WHERE id = '$feed'");
- return;
+ return;
+ }
}
- $pluginhost = new PluginHost();
- $pluginhost->set_debug($debug_enabled);
- $user_plugins = get_pref("_ENABLED_PLUGINS", $owner_uid);
-
- $pluginhost->load(PLUGINS, PluginHost::KIND_ALL);
- $pluginhost->load($user_plugins, PluginHost::KIND_USER, $owner_uid);
- $pluginhost->load_data();
-
foreach ($pluginhost->get_hooks(PluginHost::HOOK_FEED_FETCHED) as $plugin) {
- $feed_data = $plugin->hook_feed_fetched($feed_data);
+ $feed_data = $plugin->hook_feed_fetched($feed_data, $fetch_url, $owner_uid, $feed);
}
// set last update to now so if anything *simplepie* crashes later we won't be
mb_strtolower(strip_tags($title), 'utf-8'));
}
- function verify_feed_xml($feed_data) {
+ /* function verify_feed_xml($feed_data) {
libxml_use_internal_errors(true);
$doc = new DOMDocument();
$doc->loadXML($feed_data);
$error = libxml_get_last_error();
libxml_clear_errors();
return $error;
- }
+ } */
function housekeeping_common($debug) {
expire_cached_files($debug);