[nsfw] Suppress warnings about failed regexp compilation

- Add failed regexp compilation system messages on addon settings submit
- Address https://github.com/friendica/friendica/issues/11992#issuecomment-1336418781
pull/1330/head
Hypolite Petovan 2022-12-10 14:43:30 -05:00
parent 9524632cdc
commit b1442ebfd1
2 changed files with 25 additions and 6 deletions

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-11-18 11:57-0500\n"
"POT-Creation-Date: 2022-12-10 14:42-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -43,12 +43,17 @@ msgstr ""
msgid "Content Filter (NSFW and more)"
msgstr ""
#: nsfw.php:140
#: nsfw.php:96
#, php-format
msgid "Regular expression \"%s\" fails to compile"
msgstr ""
#: nsfw.php:154
#, php-format
msgid "Filtered tag: %s"
msgstr ""
#: nsfw.php:142
#: nsfw.php:156
#, php-format
msgid "Filtered word: %s"
msgstr ""

View File

@ -81,9 +81,23 @@ function nsfw_addon_settings_post(App $a, array &$b)
}
if (!empty($_POST['nsfw-submit'])) {
DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'nsfw', 'words', trim($_POST['nsfw-words']));
$enable = (!empty($_POST['nsfw-enable']) ? intval($_POST['nsfw-enable']) : 0);
$enable = !empty($_POST['nsfw-enable']) ? intval($_POST['nsfw-enable']) : 0;
$disable = 1 - $enable;
$words = trim($_POST['nsfw-words']);
$word_list = explode(',', $words);
foreach ($word_list as $word) {
$word = trim($word);
if (!$words || $word[0] != '/') {
continue;
}
if (@preg_match($word, '') === false) {
DI::sysmsg()->addNotice(DI::l10n()->t('Regular expression "%s" fails to compile', $word));
};
}
DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'nsfw', 'words', $words);
DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'nsfw', 'disable', $disable);
}
}
@ -118,7 +132,7 @@ function nsfw_prepare_body_content_filter(App $a, &$hook_data)
$tag_search = false;
switch ($word[0]) {
case '/'; // Regular expression
$found = preg_match($word, $body);
$found = @preg_match($word, $body);
break;
case '#': // Hashtag-only search
$tag_search = true;