Call the subscription hook from the plugins even if fetch_file_contents returned no data

This allows a plug-in to override the fetch when the core fetch method fails for some feeds (eg. Tumblr feeds when requested from an EU IP).
master
MatthieuS 7 years ago
parent f0dbfedc81
commit 5d95676ecc

@ -1466,6 +1466,10 @@ class Feeds extends Handler_Protected {
$contents = @fetch_file_contents($url, false, $auth_login, $auth_pass); $contents = @fetch_file_contents($url, false, $auth_login, $auth_pass);
foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_SUBSCRIBE_FEED) as $plugin) {
$contents = $plugin->hook_subscribe_feed($contents, $url, $auth_login, $auth_pass);
}
if (!$contents) { if (!$contents) {
if (preg_match("/cloudflare\.com/", $fetch_last_error_content)) { if (preg_match("/cloudflare\.com/", $fetch_last_error_content)) {
$fetch_last_error .= " (feed behind Cloudflare)"; $fetch_last_error .= " (feed behind Cloudflare)";
@ -1474,10 +1478,6 @@ class Feeds extends Handler_Protected {
return array("code" => 5, "message" => $fetch_last_error); return array("code" => 5, "message" => $fetch_last_error);
} }
foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_SUBSCRIBE_FEED) as $plugin) {
$contents = $plugin->hook_subscribe_feed($contents, $url, $auth_login, $auth_pass);
}
if (is_html($contents)) { if (is_html($contents)) {
$feedUrls = get_feeds_from_html($url, $contents); $feedUrls = get_feeds_from_html($url, $contents);

Loading…
Cancel
Save