Skip Navigation

Hey, Lemmy community mods, what would a useful moderation suite look like?

I'm a software developer, and I'm currently noodling around with the idea of a small suite of software to help me moderate a couple communities. Right now, the features I'm thinking of are:

  • Lemmy bot integration - the suite would require a bot account.
  • Some kind of content moderation (detecting things like spam, bigotry, etc.) to flag for me to review. Similar to the mod queue on that other site.
  • Automatic removal of certain kinds of content. I figure this would be configurable, like you could choose whether your community is for text posts, for links, for videos, for pics, or some combination of everything.
  • Domain blacklists and whitelists.
  • Moderation record keeping - in other words, a database to keep track of bans, warnings, reports, etc.
  • Canned automatic messages, which would be useful to send when banning, unbanning, responding to certain types of queries, and so on. So if you use the software to ban someone, they automatically receive a notification about what they were banned for, and for how long.
  • Scheduled automatic posts, which would be configured with *.md files for content. Good for things like monthly meta threads.
  • Controls for the bot via JSON objects in private messages, which would direct it to follow commands.
  • Some kind of configurable user commands for the bot. (Haven't really figured out what this would look like yet.)
  • A simple web interface for all of this.

That's what I'm considering so far, but I'd love to get more ideas from the broader Lemmy community, and will post it on Github if it comes together.

The technology stack I'm considering is:

  • Node/Typescript
  • The lemmy-bot library
  • Sequelize for the database
  • Nest.js for the web backend
  • [TBD] for the web frontend (I hate React, so not that. Probably either Vue or Angular)
  • Docker for containerization

So what features would other Lemmy mods like to see in a Lemmy moderation suite like this?

Edit: OK, I've had a chance to take a look at the code for the existing Lemmy "automoderator" bot that's in progress, and I think I'm still leaning towards working on one of my own, partly because it looks like there's a real desire for Lemmy bots that use Node. I think there's room for two or more in the fediverse. And hopefully, we can all learn from each other. I know I'm bookmarking the Python bot and watching to see how it improves.

Anyway, I'd like to thank everyone for the suggestions! I'm hoping to get started on it this weekend. We'll see how it goes.

18
18 comments
  • At this point, start ultra simple. Just a notification that tells me when posts are added to the community. Make it just like the comment reply notification. Maybe show me the whole post title in the notification so I get an idea if I should drop what I'm doing to check it out or get to it when I get to it.

    Going way out the way on crazy features, maybe flag the notification with a different color for posts by users that have less than 5 posts or their account was recently created within the last few days.

    16
  • Something similar to this is already in development.

    It's written in Python and utilizes the Pylemmy library to access the API.

    So far it:

    • Uses a deep neural network and a custom training dataset to detect toxic content (the training data out there wasn't really very suitable)
    • Has a hard-coded regexp flagging tool. It shouldn't be hard to make that more dynamic.
    • Has a probation list to flag users who are 'being watched'.
    • Will report comments/post for mod action.
    • Will send a message to a selected Matrix room.
    • Keeps track of previously assessed comments/posts using SQLite..

    It's actively being developed and I intended for it to get a lot more configurable and feature rich.

    Happy for anyone to contribute (I would actually really appreciate it).

    https://github.com/noenfugler/LemmyModBot

    PS: It's running on this community right now.

    8
  • Ability to message mods. A lot of what automod on Reddit can do.

    6
    • That's basically the goal: A better and more configurable automod.

      1
    • Some kind of content moderation (detecting things like spam, bigotry, etc.) to flag for me to review. Similar to the mod queue on that other site.

    regex matching for flagging / deleting phrases would be cool

    4
    • That and perhaps some fuzzy logic of some kind to detect toxic content were basically what I had in mind, although from the looks of it, this community already has a bot for that which I wasn't aware of, written in Python. So perhaps my efforts would be better spent contributing to that one instead of rolling my own.

      2
  • Let me get in touch with the other mods of this community, but you may be interested in our discord server. We have one mod currently working on a toxicity bot.

    2
    • Looks like that mod responded here as well. I'm going to check out your bot. No sense reinventing the wheel.

      3
      • Additionally, one of the admins of this instance is working on a site wide automod. The Lemmy world discord server is open to the public now, I believe.

        2
  • Modnotes. Right now we don't have a good and simple way to track repeated offenders.

    2
  • Angular? Kind of shocked people still use that. I legit didn't think people did. Curious what's better than react about vue?

    1
    • Angular is actually really popular inside large corporate environments. As soon as you start making something really large, with potentially hundreds of routes, it's much easier to manage than the stitched-together crap you have to deal with in the React world. React is easy for startups that need a functional page quickly, but it's a nightmare to build out an actual large, multi-faceted site with.

      As for Vue, it sort of exists in a halfway state between being a full framework (like Angular) and giving you more tooling choice (like React). I'd say it's a good choice for when you want to build something simple that has growth potential without becoming too unmanageable if its feature set explodes.

      React, which I have to work with regularly for my job, gives me heartburn. Just keeping the dependencies updated is a pain in the ass. With Angular you've got... Angular. And that's basically it. With React you've got React, and axios/cross-fetch/isomorphic-fetch, and redux, and babel, and relay (ugh), and bluebird, and... It's just endless. And they all update on different schedules, and some share dependencies on different versions of the same libraries, and React's documentation is still terrible, and if I never have to look at an ugly function with eleven layers of nested JavaScript and JSX code that can't be split into smaller component chunks because of some stupid reason or other...

      Sorry, I'm starting to rant. I think React has been a net negative for web development. It made quick and simple pages easy to create at the expense of ludicrous complexity as soon as you need to make your web app actually useful.

      2
You've viewed 18 comments.