В следующей теме пользователь был заблокирован за быстрый короткий ответ:
Соответствующая настройка называется «автоматическая блокировка быстрых наборщиков в первом посте», но очевидно, что это не был первый пост пользователя. Сработало ли это правило по ошибке?
Это не первый случай, когда кого-то банят за такие короткие ответы, которые можно написать за 3 секунды. Я уже снизил настройку min_first_post_typing_time на своём форуме с 3 до 2 секунд, но меня сбивает с толку, почему эта функция автоматической блокировки применяется и к ответам.
Если вы перейдёте по ссылке на тему, то увидите, что сначала был опубликован развёрнутый вопрос, затем я ответил, а после того как пользователь написал «Я не могу его найти», мой ответ был поставлен в очередь на модерацию, а сам пользователь был заблокирован.
Теперь первое сообщение от jhoney действительно выглядит подозрительно: его невозможно было набрать за 2 секунды, и это фактически фрагмент, скопированный из более ранней части этой темы. Так что, возможно, это действительно спам.
Однако jzza просто быстро поблагодарил после того, как на его первоначальный вопрос был дан ответ. Он мог набрать это сообщение за 2 секунды, но это не было его первым постом, поэтому его сообщение не должно было быть задержано.
Не рекомендуется разрешать очень короткие сообщения. Какова минимальная длина поста для ответов? По умолчанию в Discourse это 20 символов. Если вы изменили эту настройку, возможно, вам придется установить защиту от спамеров по минимальному времени набора на очень низкий уровень.
Законные новые пользователи, которые копируют и вставляют контент, могут попадать под фильтр. Если это распространённая практика на вашей платформе, у вас может не остаться выбора, кроме как отказаться от этой защиты.
Я уменьшил это значение с 20 до 10 символов, так как хочу разрешать короткие сообщения с благодарностями и не люблю заставлять людей искусственно увеличивать длину своих постов.
Однако этот параметр не имеет отношения к проблеме, о которой я сообщаю. Проблема, с которой я столкнулся, заключается в том, что посты скрываются, а пользователи блокируются на основе того, как быстро они написали свой второй пост, даже несмотря на то, что в настройках явно указано: «Новый пользователь подозрительно быстро написал свой первый пост».
Я сегодня как следует попробовал воспроизвести проблему, но пока не смог, даже используя те же настройки сайта. Я не вижу, чтобы пользователи попадали в очередь на проверку после первого или второго поста, но они действительно блокируются от публикации на 20 с лишним секунд, если делают это слишком быстро, как и ожидалось.
@bjorn81, есть ли у вас какая-либо дополнительная информация от этих пользователей о том, как именно они могли быть заблокированы?
Почему вы уменьшаете лимит длины поста для сообщений с благодарностью, когда в Discourse есть кнопка «лайк»? Она создана именно для этого. Пользователи могут выразить благодарность, не поднимая тему, не отвлекая других участников и не увеличивая длину темы без необходимости.
Кажется, вы изменили настройку по умолчанию, которая существует потому, что посты с «ok», «GG» или «+1» в Discourse не нужны, и теперь вы несёте последствия этого решения.
@justin, обратите внимание, что для воспроизведения этой проблемы вам абсолютно необходимо вставить пост через ctrl+v. Конкретный вопрос, который мы проверяем: может ли это произойти при втором посте? Вы также можете проверить путь выполнения кода, чтобы убедиться в корректности его предположений.
Я попробую снова. Я изучил путь выполнения кода, и все найденные мной предположения кажутся верными на основе значений, указанных в настройках сайта.
РЕДАКТИРОВАНИЕ: Мне удалось воспроизвести проблему с помощью копирования/вставки во втором посте с указанными выше настройками. Я сброшу их к значениям по умолчанию и посмотрю, смогу ли я найти какую-либо корреляцию.
РЕДАКТИРОВАНИЕ 2: Мне удалось найти проблему.
В этом блоке кода мы смотрим только на post_count пользователя. Если пользователь сначала создаёт тему, это не считается постом. Следовательно, когда пользователь копирует и вставляет ответ, это считается его первым постом, что срабатывает как защита.
Запрос на изменение (PR) подготовлен для исправления