Некорректные регулярные выражения в 'Watched Words' делают невозможным работу ни одного отслеживаемого слова

При включении настройки «Регулярные выражения для отслеживаемых слов» некорректные регулярные выражения полностью выводят из строя соответствующую категорию отслеживаемых слов.

Шаги для воспроизведения

  1. Включите «Регулярные выражения для отслеживаемых слов».
  2. Добавьте шаблон отслеживаемого слова в категорию «Требует одобрения», например, same issue.
  3. Добавьте некорректный шаблон отслеживаемого слова, например, *ban* (как это было бы, если до включения регулярных выражений в отслеживаемых словах использовались подстановочные знаки).
  4. Обратите внимание, что сообщение, содержащее «same issue», будет пропущено очередь одобрения и игнорировано формой «Тест».
  5. Удалите некорректное отслеживаемое слово.
  6. Обратите внимание, что теперь «same issue» будет корректно сопоставляться.

Шаги для воспроизведения (более серьёзная проблема):

  1. Включите «Регулярные выражения для отслеживаемых слов» и теги.
  2. Добавьте некорректный шаблон отслеживаемого слова в категорию «Тег», например, *tebex.io*paid.
  3. Попробуйте создать новую тему. Это вернёт «Ошибка 500» со следующим выводом в /logs:
RegexpError (target of repeat operator is not specified: /*tebex.io*/)
app/services/word_watcher.rb:116:in `initialize'
app/services/word_watcher.rb:116:in `new'
app/services/word_watcher.rb:116:in `matches?'
lib/topic_creator.rb:184:in `block in setup_tags'
lib/topic_creator.rb:183:in `each'
lib/topic_creator.rb:183:in `setup_tags'
lib/topic_creator.rb:46:in `create'
lib/post_creator.rb:501:in `create_topic'

Примечание

Полезно было бы, чтобы при отключённых регулярных выражениях всё ещё можно было вводить корректное регулярное выражение, аналогичное использованию подстановочных знаков, если оно, например, заключено в блок /, особенно учитывая, что переключатель может сломаться серьёзным образом, если какие-либо существующие отслеживаемые слова уже содержат подстановочные знаки.

3 лайка

Хм, можем ли мы добавить здесь какую-то защиту, @sam?

Есть причина, по которой это скрыто за настройкой сайта, @blattersturm — нужно точно знать, что делаешь… регулярные выражения довольно опасны.

1 лайк

Возможно, нам стоит требовать, чтобы перед изменением настройки у вас не было отслеживаемых слов, @nbianca?

Если вы попытаетесь изменить её, а у вас есть отслеживаемые слова, мы попросим вас удалить их все?

3 лайка