I think QoL tools for moderators need to become more of a Fediverse priority. This burns people out. Key moderators of communities quit and communities become abandoned.

Ideas :

  • Automatic removal option to remove posts and/or comments for specific keywords. This would be most useful for automatically removing posts and comments when people slur. Piefed already has a keyword filter for visibility. This could be expanded to community settings. Have it also fire-off a report to the moderators when someone triggers it.
  • Automatic URL removal. Allow communities to blacklist specific urls. Useful for politics or news communities that want to negate sources known for misinformation.
  • Automatic removal for repeat URL posting. Very useful for politics or news communities to prevent double-posting.
  • Make it so a community can set itself up to only accept text posts, video posts, or image posts. This should prevent tedious janitorial cleanup for communities that only allow links, or text posts (the most common two).
  • Post Delay Restrictions. Some communities, perhaps not many, might be interested in posting cooldowns for users. So you can only post 1 post every hour, or 2 posts every hour - or whatever the chosen limit is. This would help negate spammers and over-enthusiastic posters flooding a topical community.
  • Post Formatting Requirements. This one could be trickier and more effort than most of the others, but setting conditions for the formatting of new posts would be useful.

Now, not all communities would make use or have any need to make use of all of these - but many would to varying degrees - and it would help them.

I think going down this road is important to prevent moderators burning out over the drudgery of moderating communities.

  • Nutomic@lemmy.ml
    link
    fedilink
    English
    arrow-up
    3
    ·
    1 day ago

    Interesting, why do you think that scriptable moderation bots need a completely new platform? Wouldnt it be much easier to utilize the Lemmy api directly?

    • asudox@lemmy.asudox.dev
      link
      fedilink
      English
      arrow-up
      2
      ·
      edit-2
      20 hours ago

      Well, my initial idea was to build this only for lemmy and yes it would be easier that way if I didn’t care about scalability.

      However, the API was not good enough for my use case. Polling new posts and comments was my main issue with it. So mostly scaling issues. You could miss some posts and comments. The amount of API requests would get bigger with the amount of communities the bot moderates. There are also some problems with the rate limits.

      They can be solved by directly querying the database, but who’s going to give you database access? So you’d have to host lemmy yourself just for the bot. And I’d imagine the database would grow pretty fast with the number of communities. I explicitly do not want to store any posts or comments.

      Another solution would be using Lemmy’s new webhook system, but I don’t know how reliable it will be.

      So I stopped halfway through and started a new project with new goals:

      • Make a new federated platform

      With federation, the problems above would be solved. This also allows it to be hosted without having to find an instance for it or even self host it yourself.

      • Stronger integration with platforms via a modular federation system

      If I made it depend on Lemmy, a strong integration with other platforms wouldn’t be possible. Piefed has features that Lemmy doesn’t, for example. People can maintain a set of platform specific activitypub structs and enable the bot to federate with that platform.


      Not really answering your question, but I’d like to make a clarification: The bots will only be able to operate within the boundaries of the communities they are appointed to (or I guess groups). They cannot manage any instances. Furthermore, my main intention is for them to be used primarily as moderation bots, but they can also be used as general purpose bots within the community.

      • Nutomic@lemmy.ml
        link
        fedilink
        English
        arrow-up
        1
        ·
        4 hours ago

        To get new posts and comments for all known communities you only need to make regular requests to /api/v3/post/list?limit=50&sort=New&type_=All and /api/v3/comment/list?limit=50&sort=New&type_=All. Its not necessary to make separate requests for each community. The default rate limit allows 180 read requests per minute so you can comfortably poll this every second (in practice every 30s or so should be enough). If you miss an item (ie post or comment id was skipped) just load the following page.

        The plugin system in 1.0 would be another option. It will still take some time until that is released, but there shouldnt be any reliability issues.

        Youre right that federation solves these problems, but instead you get another problem of writing all this federation code and making sure it is compatible with different platforms. Lemmy’s federation code has around 12k lines so that is a lot. It seems much simpler to use the API for Lemmy, Piefed etc and write abstractions for common functionality.

        Anyway this is my opinion. Its your project so in the end its your decision how to implement it.