]> git.wh0rd.org - tt-rss.git/blobdiff - include/rssfuncs.php
Merge pull request #211 from PerryWerneck/master
[tt-rss.git] / include / rssfuncs.php
index d5fc14f79c9f2479e104da26293e0ec7b60c7d43..4c3e861237349a105af107e21225c25f868a9a06 100644 (file)
        } // 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);