bluesky-social / ozone

web interface for labeling content in atproto / Bluesky
https://atproto.com
Other
249 stars 19 forks source link

Ozone should have an option to associate labels with lists #166

Open heikadog opened 1 month ago

heikadog commented 1 month ago

I run a third-party labeler which has associated modlists for each label. Our current workflow is based on tooling from the now-defunct moderation service Aegis: https://github.com/aegis-blue/ozone-tooling

However, this is inefficient in practice. To set it up, this requires operators to:

...which I could do, but it could be a limiting factor for users who are less experienced with the terminal.

Additionally, every time I wish to go through the report queue and associate an account label with a modlist on the labeler account, I have to:

And, if they don't have access to this script but wish to have labels associated with lists, operators would have to go to the labeler account and list manually, which is prone to operators potentially forgetting to do this and modlists users could rely on not being updated.

It'd be much easier for operators to label and list accounts if this functionality were automated and built into Ozone.

bnewbold commented 1 month ago

Very reasonable request!

We have thought about incorporating mod list management in to Ozone, so adding/removing would be an action like adding a label. This isn't an immediate line of work, but happy to leave this issue open as a feature request to track it.

There is a bit of weirdness where mod lists are based on records in an atproto repo, so the ozone backend would need to be able to authenticate and do repo operations on a linked account/PDS. And there are different scaling properties for mod lists than labels: labels should scale to hundreds of millions of labeled accounts, while mod lists probably top out in the hundreds-of-thousands/low-millions account/list relationships (so fewer accounts if they are on multiple lists).

I haven't looked at the Ruby script you've mentioned, but Ozone has an API for subscribing to either the stream of labels (as public websocket) or the full stream of actions (using admin auth token). Either of those could be the basis of a bot that turns mod actions in ozone into mod list actions on a repo. The "tag" system in ozone in particular could be used to control list membership (if that is different, by policy, from label values; maybe they are the same for your setup).

heikadog commented 1 month ago

it's here and we use it in production @ Laelaps, my labeler (listbot.rb): https://github.com/aegis-blue/ozone-tooling