Add hashtag-only search

This commit is contained in:
Hypolite Petovan 2018-03-25 00:20:16 -04:00
parent b9c38e9ac3
commit 567028f1bd

View File

@ -140,25 +140,22 @@ function nsfw_prepare_body(Friendica\App $a, &$b)
if (!strlen($word)) { if (!strlen($word)) {
continue; continue;
} }
if (strpos($word,'/') === 0) {
if (preg_match($word, $body)) { switch ($word[0]) {
$found = true; case '/'; // Regular expression
$found = preg_match($word, $body);
break;
case '#': // Hashtag-only search
$found = nsfw_find_word_in_item_tags($b['item']['hashtags'], substr($word, 1));
break;
default:
$found = stripos($body, $word) !== false || nsfw_find_word_in_item_tags($b['item']['tags'], $word);
break; break;
} }
} else {
if (stristr($body, $word)) { if ($found) {
$found = true;
break; break;
} }
if (is_array($b['item']['tags']) && count($b['item']['tags'])) {
foreach ($b['item']['tags'] as $t) {
if (stristr($t, '>' . $word . '<')) {
$found = true;
break;
}
}
}
}
} }
} }
@ -169,3 +166,16 @@ function nsfw_prepare_body(Friendica\App $a, &$b)
'</div><div id="nsfw-' . $rnd . '" style="display: none; " >' . $b['html'] . '</div>'; '</div><div id="nsfw-' . $rnd . '" style="display: none; " >' . $b['html'] . '</div>';
} }
} }
function nsfw_find_word_in_item_tags($item_tags, $word)
{
if (is_array($item_tags)) {
foreach ($item_tags as $tag) {
if (stripos($tag, '>' . $word . '<') !== false) {
return true;
}
}
}
return false;
}