FEATURE: watch title for automatic tagging (#12782)

FEATURE: watch title for automatic tagging (#12782)

Previously watched words ignored topic titles when applying auto tagging rules.

Also copy has been improved to reflect how the system behaves.

The text hints that we are only watching first post now

diff --git a/app/jobs/regular/process_post.rb b/app/jobs/regular/process_post.rb
index 3db96c6..bddfc50 100644
--- a/app/jobs/regular/process_post.rb
+++ b/app/jobs/regular/process_post.rb
@@ -63,7 +63,7 @@ module Jobs
     end
 
     def auto_tag(post)
-      word_watcher = WordWatcher.new(post.raw)
+      word_watcher = WordWatcher.new("#{post.topic.title} #{post.raw}")
 
       old_tags = post.topic.tags.pluck(:name).to_set
       new_tags = old_tags.dup
diff --git a/app/services/word_watcher.rb b/app/services/word_watcher.rb
index 3665c72..c37daea 100644
--- a/app/services/word_watcher.rb
+++ b/app/services/word_watcher.rb
@@ -46,7 +46,7 @@ class WordWatcher
       end
       Regexp.new(regexp, Regexp::IGNORECASE)
     end
-  rescue RegexpError => e
+  rescue RegexpError
     raise if raise_errors
     nil # Admin will be alerted via admin_dashboard_data.rb
   end
diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml
index 683958a..efaadae 100644
--- a/config/locales/client.en.yml
+++ b/config/locales/client.en.yml
@@ -4684,16 +4684,16 @@ en:
           require_approval: "Require Approval"
           flag: "Flag"
           replace: "Replace"
-          tag: "Auto-tag"
+          tag: "Tag"
         action_descriptions:
           block: "Prevent posts containing these words from being posted. The user will see an error message when they try to submit their post."
           censor: "Allow posts containing these words, but replace them with characters that hide the censored words."
           require_approval: "Posts containing these words will require approval by staff before they can be seen."
           flag: "Allow posts containing these words, but flag them as inappropriate so moderators can review them."
           replace: "Replace words in posts with other words or links"
-          tag: "Automatically tag posts with these words"
+          tag: "Automatically tag topics based on first post"
         form:
-          label: "New Word"
+          label: "Has the word"
           placeholder: "full word or * as wildcard"
           placeholder_regexp: "regular expression"
           replacement_label: "Replacement"
diff --git a/spec/jobs/process_post_spec.rb b/spec/jobs/process_post_spec.rb
index 09a847f..92920d7 100644
--- a/spec/jobs/process_post_spec.rb
+++ b/spec/jobs/process_post_spec.rb
@@ -106,6 +106,12 @@ describe Jobs::ProcessPost do
       post = Fabricate(:post, raw: "Greetings?", cooked: "")
       Jobs::ProcessPost.new.execute(post_id: post.id)
       expect(post.topic.reload.tags.pluck(:name)).to contain_exactly("hello", "world")
+
+      topic = Fabricate(:topic, title: "Greetings? People")
+      post = Fabricate(:post, topic: topic, raw: "nothing yet", cooked: "")
+
+      Jobs::ProcessPost.new.execute(post_id: post.id)
+      expect(post.topic.reload.tags.pluck(:name)).to contain_exactly("hello", "world")
     end
 
     it "automatically tags first posts (regex)" do

GitHub sha: e4f1760b

This commit appears in #12782 which was approved by jjaffeux and ZogStriP. It was merged by nbianca.