summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2019-05-01 08:12:47 +0300
committerAndrew Dolgov <[email protected]>2019-05-01 08:12:47 +0300
commitfda475bd930891cab422597ded679c1cc8ff7215 (patch)
tree9d1c3fe851f6a4aafd82a66d1ff1900b141433c9 /plugins
parentccc0315ef0a115fb9111823b351bbcbdf3182f66 (diff)
af_readability: fix HOOK_GET_FULL_TEXT not being installed because plugin init() is called before load_data()
Diffstat (limited to 'plugins')
-rwxr-xr-xplugins/af_readability/init.php29
1 files changed, 19 insertions, 10 deletions
diff --git a/plugins/af_readability/init.php b/plugins/af_readability/init.php
index cc54edfae..8bb368389 100755
--- a/plugins/af_readability/init.php
+++ b/plugins/af_readability/init.php
@@ -38,12 +38,9 @@ class Af_Readability extends Plugin {
$host->add_hook($host::HOOK_PREFS_EDIT_FEED, $this);
$host->add_hook($host::HOOK_PREFS_SAVE_FEED, $this);
- $enable_share_anything = $this->host->get($this, "enable_share_anything");
-
- // provide full text services to external code
- // TODO: option that controls this needs a better caption
- if ($enable_share_anything)
- $host->add_hook($host::HOOK_GET_FULL_TEXT, $this);
+ // Note: we have to install the hook even if disabled because init() is being run before plugin data has loaded
+ // so we can't check for our storage-set options here
+ $host->add_hook($host::HOOK_GET_FULL_TEXT, $this);
$host->add_filter_action($this, "action_inline", __("Inline content"));
}
@@ -176,7 +173,7 @@ class Af_Readability extends Plugin {
if ($tmp && mb_strlen($tmp) < 1024 * 500) {
$tmpdoc = new DOMDocument("1.0", "UTF-8");
- if (!$tmpdoc->loadHTML($tmp))
+ if (!@$tmpdoc->loadHTML($tmp))
return false;
// this is the worst hack yet :(
@@ -244,10 +241,22 @@ class Af_Readability extends Plugin {
}
- function hook_get_full_text($link) {
- $extracted_content = $this->extract_content($link);
+ function hook_get_full_text($link)
+ {
+ $enable_share_anything = $this->host->get($this, "enable_share_anything");
+
+ if ($enable_share_anything) {
+ $extracted_content = $this->extract_content($link);
- return trim(strip_tags(sanitize($extracted_content)));
+ # let's see if there's anything of value in there
+ $content_test = trim(strip_tags(sanitize($extracted_content)));
+
+ if ($content_test) {
+ return $extracted_content;
+ }
+ }
+
+ return false;
}
function api_version() {