From ee65bef40504ecd563613075a3880d66be6fd1ac Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Mon, 20 May 2013 15:26:53 +0400 Subject: [PATCH] add HOOK_FETCH_FEED --- classes/pluginhost.php | 1 + include/rssfuncs.php | 21 ++++++++++++--------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/classes/pluginhost.php b/classes/pluginhost.php index bc5dc96b..9ac1789f 100644 --- a/classes/pluginhost.php +++ b/classes/pluginhost.php @@ -36,6 +36,7 @@ class PluginHost { const HOOK_ARTICLE_LEFT_BUTTON = 19; const HOOK_PREFS_EDIT_FEED = 20; const HOOK_PREFS_SAVE_FEED = 21; + const HOOK_FETCH_FEED = 22; const KIND_ALL = 1; const KIND_SYSTEM = 2; diff --git a/include/rssfuncs.php b/include/rssfuncs.php index 70414cca..217bc2bf 100644 --- a/include/rssfuncs.php +++ b/include/rssfuncs.php @@ -242,9 +242,16 @@ $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"]); @@ -267,6 +274,10 @@ if (!$rss) { + foreach ($pluginhost->get_hooks(PluginHost::HOOK_FETCH_FEED) as $plugin) { + $feed_data = $plugin->hook_fetch_feed($feed_data, $fetch_url, $owner_uid); + } + 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); @@ -330,14 +341,6 @@ } } - $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, $fetch_url, $owner_uid); } -- 2.39.5