summaryrefslogtreecommitdiff
path: root/classes
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2019-11-14 07:01:45 +0300
committerAndrew Dolgov <[email protected]>2019-11-14 07:01:45 +0300
commit63ce7ea705fbe47930d1d3a2792d0c7d09a0a109 (patch)
treee3daf89cad4d9298cc7df7d30531d05035fd000d /classes
parent0d7b10469bbd1e0923fd044283ab9948fb887e57 (diff)
add a plugin page warning for plugins using HOOK_FEED_FETCHED, etc
Diffstat (limited to 'classes')
-rw-r--r--classes/pref/prefs.php18
1 files changed, 18 insertions, 0 deletions
diff --git a/classes/pref/prefs.php b/classes/pref/prefs.php
index 8d9790de2..e66052657 100644
--- a/classes/pref/prefs.php
+++ b/classes/pref/prefs.php
@@ -844,6 +844,24 @@ class Pref_Prefs extends Handler_Protected {
print_warning("Your PHP configuration has open_basedir restrictions enabled. Some plugins relying on CURL for functionality may not work correctly.");
}
+ $feed_handler_whitelist = [ "Af_Comics" ];
+
+ $feed_handlers = array_merge(
+ PluginHost::getInstance()->get_hooks(PluginHost::HOOK_FEED_FETCHED),
+ PluginHost::getInstance()->get_hooks(PluginHost::HOOK_FEED_PARSED),
+ PluginHost::getInstance()->get_hooks(PluginHost::HOOK_FETCH_FEED));
+
+ $feed_handlers = array_filter($feed_handlers, function($plugin) use ($feed_handler_whitelist) {
+ return in_array(get_class($plugin), $feed_handler_whitelist) === FALSE; });
+
+ if (count($feed_handlers) > 0) {
+ print_error(
+ T_sprintf("The following plugins use per-feed content hooks. This may cause excessive data usage and origin server load resulting in a ban of your instance: <b>%s</b>" ,
+ implode(", ", array_map(function($plugin) { return get_class($plugin); }, $feed_handlers))
+ ) . " (<a href='https://tt-rss.org/wiki/FeedHandlerPlugins' target='_blank'>".__("More info...")."</a>)"
+ );
+ }
+
print "<h2>".__("System plugins")."</h2>";
print_notice("System plugins are enabled in <strong>config.php</strong> for all users.");