From 1d50ddb378d5c6954d4cf8a6145b4486b9497107 Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Thu, 27 Apr 2023 12:38:23 -0500 Subject: Refactor moderation to apply to accounts, profiles, and posts correctly (#548) * Add ScreenHider component * Add blur attribute to UserAvatar and UserBanner * Remove dead suggested posts component and model * Bump @atproto/api@0.2.10 * Rework moderation tooling to give a more precise DSL * Add label mocks * Apply finer grained moderation controls * Refactor ProfileCard to just take the profile object * Apply moderation to user listings and banner * Apply moderation to notifications * Fix lint * Tune avatar & banner blur settings per platform * 1.24 --- __e2e__/mock-server.ts | 114 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) (limited to '__e2e__') diff --git a/__e2e__/mock-server.ts b/__e2e__/mock-server.ts index 7bcad47f3..858ac5e08 100644 --- a/__e2e__/mock-server.ts +++ b/__e2e__/mock-server.ts @@ -63,6 +63,120 @@ async function main() { }, }) } + if ('labels' in url.query) { + console.log('Generating naughty users with labels') + + const anchorPost = await server.mocker.createPost( + 'alice', + 'Anchor post', + ) + + for (const user of [ + 'csam-account', + 'csam-profile', + 'csam-posts', + 'porn-account', + 'porn-profile', + 'porn-posts', + 'nudity-account', + 'nudity-profile', + 'nudity-posts', + 'muted-account', + ]) { + await server.mocker.createUser(user) + await server.mocker.follow('alice', user) + await server.mocker.follow(user, 'alice') + await server.mocker.createPost(user, `Unlabeled post from ${user}`) + await server.mocker.createReply( + user, + `Unlabeled reply from ${user}`, + anchorPost, + ) + await server.mocker.like(user, anchorPost) + } + + await server.mocker.labelAccount('csam', 'csam-account') + await server.mocker.labelProfile('csam', 'csam-profile') + await server.mocker.labelPost( + 'csam', + await server.mocker.createPost('csam-posts', 'csam post'), + ) + await server.mocker.labelPost( + 'csam', + await server.mocker.createQuotePost( + 'csam-posts', + 'csam quote post', + anchorPost, + ), + ) + await server.mocker.labelPost( + 'csam', + await server.mocker.createReply( + 'csam-posts', + 'csam reply', + anchorPost, + ), + ) + + await server.mocker.labelAccount('porn', 'porn-account') + await server.mocker.labelProfile('porn', 'porn-profile') + await server.mocker.labelPost( + 'porn', + await server.mocker.createPost('porn-posts', 'porn post'), + ) + await server.mocker.labelPost( + 'porn', + await server.mocker.createQuotePost( + 'porn-posts', + 'porn quote post', + anchorPost, + ), + ) + await server.mocker.labelPost( + 'porn', + await server.mocker.createReply( + 'porn-posts', + 'porn reply', + anchorPost, + ), + ) + + await server.mocker.labelAccount('nudity', 'nudity-account') + await server.mocker.labelProfile('nudity', 'nudity-profile') + await server.mocker.labelPost( + 'nudity', + await server.mocker.createPost('nudity-posts', 'nudity post'), + ) + await server.mocker.labelPost( + 'nudity', + await server.mocker.createQuotePost( + 'nudity-posts', + 'nudity quote post', + anchorPost, + ), + ) + await server.mocker.labelPost( + 'nudity', + await server.mocker.createReply( + 'nudity-posts', + 'nudity reply', + anchorPost, + ), + ) + + await server.mocker.users.alice.agent.mute('muted-account.test') + await server.mocker.createPost('muted-account', 'muted post') + await server.mocker.createQuotePost( + 'muted-account', + 'account quote post', + anchorPost, + ) + await server.mocker.createReply( + 'muted-account', + 'account reply', + anchorPost, + ) + } } console.log('Ready') return res.writeHead(200).end(server.pdsUrl) -- cgit 1.4.1