diff options
author | Mario <mario@mariovavti.com> | 2022-03-03 20:31:43 +0000 |
---|---|---|
committer | Mario <mario@mariovavti.com> | 2022-03-03 20:31:43 +0000 |
commit | eeea3251ad533674795ec2ea962d31eafe29d8ea (patch) | |
tree | a33f9455f3b9ff5def3d5e8b4058124b89591ca9 | |
parent | c8417df6f1bf6cf8eae03a1b14e67e6c3c113afa (diff) | |
download | volse-hubzilla-eeea3251ad533674795ec2ea962d31eafe29d8ea.tar.gz volse-hubzilla-eeea3251ad533674795ec2ea962d31eafe29d8ea.tar.bz2 volse-hubzilla-eeea3251ad533674795ec2ea962d31eafe29d8ea.zip |
more work on enhanced content filters
-rw-r--r-- | Zotlabs/Lib/Activity.php | 36 | ||||
-rw-r--r-- | Zotlabs/Lib/Libzot.php | 6 |
2 files changed, 39 insertions, 3 deletions
diff --git a/Zotlabs/Lib/Activity.php b/Zotlabs/Lib/Activity.php index b83de6bb6..a6088a7b0 100644 --- a/Zotlabs/Lib/Activity.php +++ b/Zotlabs/Lib/Activity.php @@ -2003,7 +2003,10 @@ class Activity { } if ($channel['channel_system']) { - if (!MessageFilter::evaluate($s, get_config('system', 'pubstream_incl'), get_config('system', 'pubstream_excl'))) { + $incl = get_config('system','pubstream_incl'); + $excl = get_config('system','pubstream_excl'); + + if(($incl || $excl) && !MessageFilter::evaluate($s, $incl, $excl)) { logger('post is filtered'); return; } @@ -2329,6 +2332,32 @@ class Activity { } } + $s['item_thread_top'] = 0; + $s['comment_policy'] = 'authenticated'; + + if ($s['mid'] === $s['parent_mid']) { + $s['item_thread_top'] = 1; + + // it is a parent node - decode the comment policy info if present + if (isset($act->obj['commentPolicy'])) { + $until = strpos($act->obj['commentPolicy'], 'until='); + if ($until !== false) { + $s['comments_closed'] = datetime_convert('UTC', 'UTC', substr($act->obj['commentPolicy'], $until + 6)); + if ($s['comments_closed'] < datetime_convert()) { + $s['nocomment'] = true; + } + } + + $remainder = substr($act->obj['commentPolicy'], 0, (($until) ? $until : strlen($act->obj['commentPolicy']))); + if ($remainder) { + $s['comment_policy'] = $remainder; + } + if (!(isset($item['comment_policy']) && strlen($item['comment_policy']))) { + $s['comment_policy'] = 'contacts'; + } + } + } + if (!array_key_exists('created', $s)) $s['created'] = datetime_convert(); @@ -2955,7 +2984,10 @@ class Activity { return; if ($channel['channel_system']) { - if (!MessageFilter::evaluate($item, get_config('system', 'pubstream_incl'), get_config('system', 'pubstream_excl'))) { + $incl = get_config('system','pubstream_incl'); + $excl = get_config('system','pubstream_excl'); + + if(($incl || $excl) && !MessageFilter::evaluate($item, $incl, $excl)) { logger('post is filtered'); return; } diff --git a/Zotlabs/Lib/Libzot.php b/Zotlabs/Lib/Libzot.php index fdeb7a3b0..40422a7d8 100644 --- a/Zotlabs/Lib/Libzot.php +++ b/Zotlabs/Lib/Libzot.php @@ -1578,7 +1578,11 @@ class Libzot { $local_public = false; continue; } - if (!MessageFilter::evaluate($arr, get_config('system', 'pubstream_incl'), get_config('system', 'pubstream_excl'))) { + + $incl = get_config('system','pubstream_incl'); + $excl = get_config('system','pubstream_excl'); + + if(($incl || $excl) && !MessageFilter::evaluate($arr, $incl, $excl)) { $local_public = false; continue; } |