superseriousbusiness / gotosocial

Fast, fun, small ActivityPub server.
https://docs.gotosocial.org
GNU Affero General Public License v3.0
3.7k stars 316 forks source link

[feature] Implement exclusive lists #3280

Closed VyrCossont closed 2 weeks ago

VyrCossont commented 2 weeks ago

Description

This pull request implements Hometown-style exclusive lists, compatibly with vanilla Mastodon's current API.

Fixes #2616

Checklist

VyrCossont commented 2 weeks ago

Testing this end-to-end is a bit tricky: of the clients I tried today, Semaphore doesn't support lists at all, Elk doesn't support setting any list options other than the title, and Phanpy supports lists and the exclusive flag, but doesn't support setting the exclusive flag for GtS instances yet.

in Feditext, you can test exclusive lists by scrolling down to its advanced preferences and set "API compatibility mode" to "Enable all API calls, attempt error recovery", which disables most feature gating. (You'll want to turn that API compatibility mode off later, because Feditext will also call API endpoints that don't exist, which can trip wary WAFs like CrowdSec when they assume the site's being mapped for an attack.) Future Feditext builds will enable exclusive lists for whatever GtS version includes it.

VyrCossont commented 2 weeks ago

Confirmed that you can't follow yourself in GtS, and thus can't add yourself to a list (internally, this requires that a follow exists), so you can't add yourself to an exclusive list and thus prevent yourself from seeing your own posts in your home timeline.

tsmethurst commented 2 weeks ago

This looks great :) Nice simple PR that will be really useful. Just a couple comments from me. Once those are resolved we can squerge this!

NyaaaWhatsUpDoc commented 2 weeks ago

have left a handful of comments but other than that looks good :)