Actions on Watched Words

Read this topic about the completed feature


One of the features for v1.9 is for actions to automatically be taken when posts contain certain words. The goal is to have a better alternative to censoring words.

As a starting point, we need a UI to define and manage this set of words.

Some things to think about:

  • There can be many words to add and see, so there need to be ways to bulk add as well as ways to easily add a few words.
  • Each item is made up of only two values: the word and the action that will be performed.
  • The list can be very long.
  • Is it valuable to see the list of words at all, especially if they’re all offensive words? List the words only when requested by the user?

Here’s a rough mash-up of the Settings and Tags UI:

(Ignore the words list… it’s a screenshot of some of Car Talk’s tags.)

Another consideration: this mock-up makes it look like you can add the same word to all three actions. I don’t think it makes sense to allow all these actions to be taken for one word.

8 Likes

An alternative is to do like the screened IP addresses list:

The table is mostly wasted space since there isn’t much to show, but lends itself well to infinite scrolling in case you’re in the mood to read offensive words.

1 Like

Are you sure you can go straight from word to action? I think there needs to be some cumulative score across all words in a post and then actions are triggered based on thresholds.

Without wanting to make things too complicated, that score could possibly be integrated with the existing community flagging system (e.g. a certain score counts as one flag, a higher score counts as two flags etc)

No plans for score: if the word appears, the action is taken. If the word does not appear, the action is not taken. Additional complications aren’t in scope at this time, but maybe in the future once the new 1.9 feature is in place.

1 Like

Has the notion been considered of wanting to watch for “good words” appearing, and and what might want to be done following their appearance?

What is your use case for such an unusual feature? Can you provide examples?

One example would be replies with the word “thank*” in them, as in “thanks!” or “thank you”.

IF user replies with “thank*” and hasn’t Liked the post they’re replying to, show a JITN:

If you’d like to formally thank this user, like their post!

5 Likes

In fact we are already doing it for the narrative bot: https://github.com/discourse/discourse/blob/master/plugins/discourse-narrative-bot/lib/discourse_narrative_bot/track_selector.rb#L241

2 Likes

I guess to your point we could “de-negative” this by calling it Action Words @neil, as in

When you see this word, take this action

I guess that’s a fair criticism.

4 Likes

This was requested at elastic. People want to be notified whenever a particular product name appears in any post.

3 Likes

I’m very excited about this! Right now, we use a list of censored words to ban linking to some shady news sites which exist to promote online gambling. Then we also use censored patterns to block some swear words and harsh expressions. It’s very useful because we have popular live commentary threads for sports events in which people comment the course of action in real time. Sometimes your fingers are quicker than your mind when you are passionate about your team.

So is the plan to support just words or also regex patterns? Regexes would be extremely useful for my native language Finnish and other languages in which words are inflected.

2 Likes

6 posts were split to a new topic: Whitelisted words

Yeah I was thinking of simply “Watched Words” or something like that.

This is similar to another request that was being called “keyword alerts”. It’s similar, but is only useful as a per-user setting. The use case is a forum with buyers and sellers, and the sellers want to be notified when a post mentions the product they’re selling.

There’s no end of use cases for “do something when someone posts something”, so let’s prevent this topic from becoming a brainstorming session.

3 Likes

I think the problem is that my post didn’t explain what this feature is for. I thought “blacklisted words” was self-explanatory, but apparently not!

1 Like

Hmm, we should be able to include support for basic regexp patterns like “funki*”.

3 Likes

Sort of, I think that could be implemented a completely different way: issue a search periodically (ordered by date, desc) and any new search results cause the user to get notified. eBay does this for example with “saved searches”. I don’t think it needs to be implemented such that every single post is checked for a word at the time of posting by X different users, that feels like massive overkill to me.

We can build a saved search feature or plugin at some later date…

Not bad, some crossover with Watched Categories and Watched Topics so I think I prefer that too, it teaches about the concept of Watching.

We could have a Watched Word action of “notify staff” but that is literally what flags are already for… right now the possible watched word actions should be:

  • flag
  • block
  • require approval
  • censor

I think you forgot the last one there @neil. I don’t know that I can come up with any other actions that make good sense here?

4 Likes

Yeah, censor should be in there too. I guess it should replace the existing site settings “censored words” and “censored pattern”.

Also, we should figure out exactly what “block” means. Obviously, the post will not be posted. But should the user be given feedback like “Your post contains a blocked word”. Should the user be blocked?

4 Likes

Just block the individual posting, is what I was thinking. We may want to be coy about what the block is for, something like “contains words that aren’t allowed”.

3 Likes

Continued here: