1
0
mirror of https://git.tt-rss.org/git/tt-rss.git synced 2025-12-13 11:45:56 +00:00

Add 'HOOK_FEED_BASIC_INFO' to enable plugins to provide basic feed info.

It's expected the plugin will return content parsable by FeedParser, which
will act as an interface to the basic feed info.  In the case of a plugin
that also uses 'HOOK_FETCH_FEED', both might return the same content.

The hook signature was made somewhat similar to 'HOOK_FETCH_FEED'.
This commit is contained in:
wn_
2017-09-24 19:37:49 -05:00
parent af13f3009c
commit bec5ba93e2
2 changed files with 32 additions and 11 deletions

View File

@@ -205,9 +205,11 @@ class RSSUtils {
$feed = db_escape_string($feed);
$result = db_query("SELECT feed_url,auth_pass,auth_login,auth_pass_encrypted
$result = db_query("SELECT owner_uid,feed_url,auth_pass,auth_login,auth_pass_encrypted
FROM ttrss_feeds WHERE id = '$feed'");
$owner_uid = db_fetch_result($result, 0, "owner_uid");
$auth_pass_encrypted = sql_bool_to_bool(db_fetch_result($result,
0, "auth_pass_encrypted"));
@@ -221,17 +223,35 @@ class RSSUtils {
$fetch_url = db_fetch_result($result, 0, "feed_url");
$feed_data = fetch_file_contents($fetch_url, false,
$auth_login, $auth_pass, false,
FEED_FETCH_TIMEOUT,
0);
$feed_data = '';
$pluginhost = new PluginHost();
$user_plugins = get_pref("_ENABLED_PLUGINS", $owner_uid);
global $fetch_curl_used;
$pluginhost->load(PLUGINS, PluginHost::KIND_ALL);
$pluginhost->load($user_plugins, PluginHost::KIND_USER, $owner_uid);
$pluginhost->load_data();
if (!$fetch_curl_used) {
$tmp = @gzdecode($feed_data);
foreach ($pluginhost->get_hooks(PluginHost::HOOK_FEED_BASIC_INFO) as $plugin) {
$feed_data = $plugin->hook_feed_basic_info($fetch_url, $owner_uid, $feed, $auth_login, $auth_pass);
if ($feed_data) {
break;
}
}
if ($tmp) $feed_data = $tmp;
if (!$feed_data) {
$feed_data = fetch_file_contents($fetch_url, false,
$auth_login, $auth_pass, false,
FEED_FETCH_TIMEOUT,
0);
global $fetch_curl_used;
if (!$fetch_curl_used) {
$tmp = @gzdecode($feed_data);
if ($tmp) $feed_data = $tmp;
}
}
$feed_data = trim($feed_data);
@@ -1520,4 +1540,4 @@ class RSSUtils {
}
}