Add moderation support
I don’t know how feasible it is via API, etc. but thought it would be nice to have it in the roadmap to support moderation functions
Yes this would be nice to have, thanks! :)
This would be great to see and a major advantage over other app offerings. Please also consider both Moderator and Admin tools. Thanks!
Proposal
I've been messing around with a branch locally that is roughing out some of the code flows, seeing what capabilities exist, and how it might all come together.
What I'm thinking is a series of 3 PRs to get things up to a MVP state, each one targeting a different aspect of the functionality. After that point, it will be a lot easier to add small features as one offs to bring better parity with the desktop site.
If this seems like a rough path that works for the project, happy to build out more
Part 1: Report feed
Aggregate counts of types of reports are easy to obtain. The entire system best lends itself to the inbox analogy. The feature is generally gated behind either bring signed in as an admin, or having moderator privileges on one community.
The goal for this part is "know when there are reports that need responding to on the instance, and have a button to flag it as resolved". Anything beyond that is in the follow-up PRs
Posts are hard coded to render using compact rendering in the report feed, comments and such render using similar way to inbox. Each has the reporter, reason. The only actions available will be toggle resolved, and go to item. Should be easy to add to the swipe menu
Where to put it?
There's 3 places that seem like potential fits, without needing to get too creative on redoing existing UI stuff
- Inside the settings panel. Surface the reports counter to the settings gear so it's possible to see at a glance
- Add a button to the bottom strip, add counter to that
- Add reports inside of inbox, and add the counter to existing inbox count
2 is the most comfortable given unlimited screen space imo, but won't feel great on small devices. Leaning towards 1 or 3 personally as a place to drop stuff as a 1st pass
My branch implements 3 to get the ball rolling, but it's easy to move, or create a user configurable situation in the future
UI
Each report comes with context, which can be added as an extra header block to each report
- who sent it
- the reason
- when
- is it resolved
- who it was resolved by
- community
- etc
UI Examples
| What | Image |
|---|---|
| Reports integrated with inbox view. Individual counters listed alongside report type, but not currently merged into counter at bottom | |
| Reports shield added to bottom bar |
Part 2: Context menu moderation & administration
2nd PR seeks to expand on some of the basic code and workflows created above. These are options for context menus mostly, no new pages. The list may need to be trimmed down a bit, or maybe a slightly different UI strategy. Seems like it'll be a pretty big context menu by the time all of these are added
Comments actions
- remove comment
Post actions
- remove post
- lock
- pin to community
- pin to local
Both
- remove / appoint as mod within community
- transfer community to user
- remove / appoint as admin
- purge user
- purge comment
- ban from site
User Profile
- ban from site
- purge user
- remove / appoint as admin
Report Feed
- ban from site
- purge user
- remove (comment/post)
The remove option would be ideal to add to the swipe menu also
Part 3: Administration tools
3rd PR will bring MVP instance admin tools into the mix, available only if you're an instance admin. Going with the highest priority to be most functional here, leaving some more complex ones for future PRs and the desktop UI. These are most comfortably nested under the settings screen, as a separate admin panel. Similar to how Appearance is implemented now
Configurable instance settings
- registration mode
- only admins can create communities
- require email verification
- private instance
- hide modlog mod names
- captcha enabled
- slur filter regex
- allowed / blocked instance management
There isn't a ton of organization in the desktop site for this, so there is lots of room for improvement for laying these out in a way that's sane on mobile. Have no particular stake in this myself, and will probably implement as a flat list unless other people have opinions
Updates
Part way through the draft. The report boxes are pretty close to done, the moderation options attached to the post & comment ellipsis (while normally browsing around) need some work, the current iteration in my branch is awkward. There are also some React workflow issues that appear to be pre-existing issues that will end up probably needing some higher level decisions on
Looking to have a real draft out next week
Boxes
| Description | Image |
|---|---|
| Reports in standalone tab | |
| Reports in inbox | |
| Settings position | |
| Options | |
| Example of each type of report |
Hi there. I just had a chance to look at this, but I am not a fan of putting the mod queue in the inbox. It does not create an effective moderation experience because every single item might be a different community with a different post and that can quickly become overwhelming.
Something that's really important to me is that reported posts will appear in the user's feed when browsing normally, as well as reported comments inside a normal post. This is something Apollo (and Reddit) did well and I really like. It allows mods to be normal users, browsing and interacting and doing mod actions when necessary.
This creates a couple benefits.
- We don't need one-off feed items that need to be maintained for mod actions.
- Reported posts/comments look like normal reports/comments except with yellow highlight & # of reports banner, like Apollo
- The mod has immediate context into a reported comment, and can take action right there when browsing normally
- Creating a mod queue becomes easy - just render a list of comments/posts
Maybe administrator DM reports would appear in the inbox, but that's about it.
Some things that could help get this going:
- Create a "Moderator" list under favorites with communities you are a mod of (like apollo)
- Create mod actions in a shield icon for posts, comments and the community feed
- Add mod log to community
- Figure out a way to have arbitrary posts and comments show # of reports, report reasons, actioned upon etc. as well as show removed status etc.
After all that is done, then it will be very easy to create a feed for mod queue because it will just be a matter of rendering a list of reported posts/comments :)
The hard part in building this UI is Lemmy does not provide reports on a given post/comment. So we'd need to sync/fetch reports and put them in the store. I wonder if there is an issue in Lemmy to provide reports on PostView and CommentView.
@zoe-codez are you on the Matrix chat? We can talk about this further there https://app.element.io/#/room/#vger.app:matrix.org
I have a modest start to inline comment moderation here: https://github.com/aeharding/voyager/pull/512
The idea is to then build a sync mechanism so we can also show reports for various comments/posts inline, so that anywhere in the app you see a post or a comment, you will see associated reports.
@zoe-codez I've been thinking about mod reports in the inbox, and I'm starting to think it might actually be valuable if you have a very low mod load. (If you only get one report or so a week, you probably won't check that often)
That being said, I still think we can implement this without rendering custom feed items for comments and posts.
Also - I think we should avoid an additional standalone tab. I think five tabs is the max recommended in iOS guidelines.
I'd like to discuss this with you over Matrix if you have time!
I'm closing this because there's a good start at mod tools in Voyager now. Please open a new issue if there's a specific mod/admin feature you'd like to be implemented!