No internet connection
  1. Home
  2. Ideas

Feature request: Moderation tools to encourage user etiquette

By Michael Lynch @michael
    2023-05-11 22:03:20.018Z2024-01-16 14:40:17.748Z

    In our forum, we're noticing an occasional issue where the user isn't malicious, but they have a different view of forum etiquette than we do, and they violate our forum norms. One example is bumping a bunch of old threads to say "me too!" or "+1."

    It would be good to have a moderator setting that helps us gently prevent this behavior. For example:

    • Maximum posts in a 10-minute period
    • Maximum threads participated in a one-week period
      • It's typically a bad sign if a single user is starting many separate threads and bumping a bunch of old threads
    • Minimum character count per post (this is now implemented)
    • 11 replies

    There are 11 replies. Estimated reading time: 11 minutes

    1. Good ideas. Hmm now I start thinking about a regular expression, say /yes|[+-]1|me too/ that could open a dialog "Please click Like instead, otherwise the conversation gets a bit noisy with many small comments", or sth like that.

      And if they insist, they get to post their single word anyway (after all, sometimes a single Yes can include lots of meaning).

      But for a start, maybe just disallowing is better / quicker

      1. In reply tomichael:

        Re minimum character count:

        I'm adding something like the below, when posting a comment or new page — what are your thoughts?
        Maybe some (or all) messages below (like "That's a short ....") can be improved / rewritten completely?
        Or something else comes to your mind? :- )

        (The limits (150, 15, 30 etc below) could be made configurable in some future version)

            const longTitle  = is new page  &&  title length > 150;
            const shortTitle = is new page  &&  title length < 15  && not  is-chat;
            // Orig posts generally need a bit more details than comments (replies).
            const shortOrigPost = is new page && text length < 60;
            const shortComment  = is comment  && text length < 30;
        
            const problemText =
                // Show title errors first
                longTitle ?
                    r.p({}, `That's a long title. Maybe remove some words?`) : (
                shortTitle ?
                    r.p({}, `That's a short title. Maybe add a few more words?`) : (
                shortOrigPost ?
                    r.p({}, `That's a short text. Maybe add more details?`) : (
                shortComment ?
                    r.p({}, `That's a short comment. Maybe add more details?`),
                    r.p({},
                      `Don't reply  "Me too"  "I agree",  "+1".  Instead, click  Like
                       on the comment you're replying to.`)) :
                null)));
        
            if (problemText)
              openQuickDialog({
                body: problemText,
                primaryButtonTitle:  "Okay (continue editing)",
                secondaryButonTitle:  "Post anyway",
              });
        
        1. Michael Lynch @michael
            2023-07-03 18:31:49.169Z

            Cool, here are my suggestions:

                const longTitle  = is new page  &&  title length > 150;
                const shortTitle = is new page  &&  title length < 15  && not  is-chat;
                // Orig posts generally need a bit more details than comments (replies).
                const shortOrigPost = is new page && text length < 100;
                const shortComment  = is comment  && text length < 30;
            
                const problemText =
                    // Show title errors first
                    longTitle ?
                        r.p({}, `That's a long title. It may be difficult to read on certain screens`) : (
                    shortTitle ?
                        r.p({}, `That's a short title. Descriptive titles tend to get better responses.`) : (
                    shortOrigPost ?
                        r.p({}, `Your post is pretty short. Are there additional details you can add?`) : (
                    shortComment ?
                        r.p({}, `That's a short comment. Are there additional details you can add to the discussion?`),
                        r.p({},
                          `Instead of comments like "+1" or "me too" click the Like button on the comment you're replying to.`)) :
                    null)));
            
                if (problemText)
                  openQuickDialog({
                    body: problemText,
                    primaryButtonTitle:  "Okay (continue editing)",
                    secondaryButonTitle:  "Post anyway",
                  });
            

            I also suggested increasing the minimum character count on a top-level post to 100 characters. 60 characters is pretty short.

            It might also be good to make the messages themselves admin-configurable because different forums might have different guidance. If it's primarily a tech help forum, I might give users more specific guidance about why a more detailed message gets them help faster, but if it's a general discussion forum, then I wouldn't want language like that.

            1. Thanks, good idea to include those brief explanations about why.

              This: "Any more details you can add?", it's a bit shorter than: "Are there additional details you can add?", I guess I'll use the shorter variation.

              I suspect "many" people don't read long titles at all :- ) So maybe instead of: "It may be difficult to read on certain screens", could use: "Fewer people read that long titles".

              make the messages themselves admin-configurable because different forums might have different guidance

              Good idea. Some time in the future, there'll be new post templates (similar to GitHub issue & PR templates), and canned responses, and making these "it's-pretty-short" messages configurable sounds like something to do at the same time.

              top-level post to 100 characters. 60 characters is pretty short

              Yes 100, or 90 actually, seems better. Now I looked at lots of posts, and, almost none of the too-short ones, were shorter than 60, so 60 wouldn't have detected them. Many posts shorter than 90 were too short. Those longer than 90 were generally okay though.
              (I guess the default short-&-long lengths should vary by language even :- ) some time in the future)

              1. Michael Lynch @michael
                  2023-07-05 23:51:19.181Z

                  Cool, I like that!

                  "Fewer people read that long titles".

                  Small note: In English, the more natural phrasing would be, "Fewer people read titles that long."

                  1. Thanks, fixed :- ) (about to build a new server now soon)

                    1. Michael Lynch @michael
                        2023-07-10 15:41:36.432Z

                        Awesome, I verified it on the TinyPilot forum. Thanks, @KajMagnus !

                        1. Ok :- )

                          (was going to wait a few days, to see if anything unexpected happened, and then post an update, but you found it before :- ))

              2. In reply tomichael:
                Michael Lynch @michael
                  2024-01-16 14:42:14.228Z

                  To update, this feature is now partially implemented (minimum character count), and it seems to have had a positive impact on our users' behavior.

                  I'm realizing another useful heuristic would be number of new threads per week. If a user has created three new threads this week and bumped two more, that's almost always a sign of a too-demanding user. It would be good if we had automated warnings like, "You're creating a lot of threads. Keep in mind that we're a small team with a lot of users, and we can only handle so many requests at once."

                  1. Sounds like a good warning / info message. When would be a good time to show the message? I suppose it'd appear in a modal dialog, when one clicks Create new topic? And then one could click:

                    • "OK, cancel (don't post anything)" — then, the editor wouldn't appear at all. Or,
                    • "Proceed anyway", and then the editor opens as usual?

                    For a start, maybe the exact limits (3 new threads the last 7 days, etc) and message text don't need to be configurable. Instead, there can be a feature flag, that's a bit quicker to fix, just to see how all this works.


                    Even later:

                    I'm guessing it'd be helpful with a per-7-days hard limit too, say, 2 x the warning limit. And these limits could be higher for long time members (& absent for moderators).

                    Hmm, I'm guessing it could be helpful for the moderators to know if a user had actually seen that message but proceeded with posting anyway? (So you can know if they ignored the warning or haven't seen it yet)

                  2. In reply tomichael:

                    Ooops there definitely should be some per groups settings for this — I just got some feedback from @chrscheuer that [the popup dialog that says the text is too short], is frustrating (for mods & admins). — I was going to add such per-group-settings anyway, so one can configure min-text-length & the new too-many-new-therads setttings per group, e.g. for the Everyone group but switch off for say >= Core Members.

                    1. Progress
                      with doing this idea
                    2. @KajMagnus marked this topic as Planned 2023-05-16 16:04:14.052Z.
                    3. @KajMagnus marked this topic as Started 2023-07-01 06:51:00.531Z.
                    4. @michael marked this topic as Done 2024-01-16 14:38:37.539Z.
                    5. @michael marked this topic as Started 2024-01-16 14:38:43.599Z.