From 0d1373bb71e1fd60c2b9e545aeecf631c0f68ef0 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Tue, 25 Feb 2025 17:21:00 +0000 Subject: [PATCH] Remove `moderatePost_wrapped` (#7188) * rm `moderatePost_wrapped` * Handle display in app --------- Co-authored-by: Eric Bailey --- .eslintrc.js | 14 -------------- bskyembed/src/labels.ts | 1 + src/lib/moderatePost_wrapped.ts | 31 ------------------------------- bskyogcard/src/routes/starter-pack.tsx | 1 + src/lib/moderation/useGlobalLabelStrings.ts | 4 ++++ src/state/queries/post-feed.ts | 2 +- src/state/queries/post-thread.ts | 2 +- src/state/queries/search-posts.ts | 2 +- src/screens/Messages/components/MessageInputEmbed.tsx | 2 +- src/state/queries/notifications/feed.ts | 2 +- src/view/com/post-thread/PostQuotes.tsx | 2 +- src/view/com/post-thread/PostThread.tsx | 7 +++++-- src/view/com/post/Post.tsx | 2 +- src/view/com/util/post-embeds/QuoteEmbed.tsx | 2 +- 14 file(s) changed, 19 insertion(s)(+), 55 deletion(s)(-) diff --git a/.eslintrc.js b/.eslintrc.js --- a/.eslintrc.js +++ b/.eslintrc.js @@ -80,20 +80,6 @@ ], 'simple-import-sort/exports': 'error', 'react-compiler/react-compiler': 'warn', - 'no-restricted-imports': [ - 'error', - { - paths: [ - { - name: '@atproto/api', - importNames: ['moderatePost'], - message: - 'Please use `moderatePost_wrapped` from `#/lib/moderatePost_wrapped` instead.', - }, - ], - }, - ], - '@typescript-eslint/ban-ts-comment': 'warn', }, ignorePatterns: [ '**/__mocks__/*.ts', diff --git a/bskyembed/src/labels.ts b/bskyembed/src/labels.ts --- a/bskyembed/src/labels.ts +++ b/bskyembed/src/labels.ts @@ -13,6 +13,7 @@ return 'Adult Content' case 'nudity': return 'Non-sexual Nudity' + case 'gore': case 'graphic-media': return 'Graphic Media' default: diff --git a/src/lib/moderatePost_wrapped.ts b/src/lib/moderatePost_wrapped.ts deleted file mode 100644 --- a/src/lib/moderatePost_wrapped.ts +++ /dev/null @@ -1,31 +0,0 @@ -/* eslint-disable-next-line no-restricted-imports */ -import {BSKY_LABELER_DID, moderatePost} from '@atproto/api' - -type ModeratePost = typeof moderatePost -type Options = Parameters[1] - -export function moderatePost_wrapped( - subject: Parameters[0], - opts: Options, -) { - // HACK - // temporarily translate 'gore' into 'graphic-media' during the transition period - // can remove this in a few months - // -prf - translateOldLabels(subject) - - return moderatePost(subject, opts) -} - -function translateOldLabels(subject: Parameters[0]) { - if (subject.labels) { - for (const label of subject.labels) { - if ( - label.val === 'gore' && - (!label.src || label.src === BSKY_LABELER_DID) - ) { - label.val = 'graphic-media' - } - } - } -} diff --git a/bskyogcard/src/routes/starter-pack.tsx b/bskyogcard/src/routes/starter-pack.tsx --- a/bskyogcard/src/routes/starter-pack.tsx +++ b/bskyogcard/src/routes/starter-pack.tsx @@ -97,6 +97,7 @@ 'nudity', 'sexual-figurative', 'graphic-media', + 'gore', 'self-harm', 'sensitive', 'security', diff --git a/src/lib/moderation/useGlobalLabelStrings.ts b/src/lib/moderation/useGlobalLabelStrings.ts --- a/src/lib/moderation/useGlobalLabelStrings.ts +++ b/src/lib/moderation/useGlobalLabelStrings.ts @@ -46,6 +46,10 @@ name: _(msg`Graphic Media`), description: _(msg`Explicit or potentially disturbing media.`), }, + gore: { + name: _(msg`Graphic Media`), + description: _(msg`Explicit or potentially disturbing media.`), + }, }), [_], ) diff --git a/src/state/queries/post-feed.ts b/src/state/queries/post-feed.ts --- a/src/state/queries/post-feed.ts +++ b/src/state/queries/post-feed.ts @@ -6,6 +6,7 @@ AppBskyFeedPost, AtUri, BskyAgent, + moderatePost, ModerationDecision, } from '@atproto/api' import { @@ -27,7 +28,6 @@ import {FeedTuner, FeedTunerFn} from '#/lib/api/feed-manip' import {DISCOVER_FEED_URI} from '#/lib/constants' import {BSKY_FEED_OWNER_DIDS} from '#/lib/constants' -import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' import {logger} from '#/logger' import {STALE} from '#/state/queries' import {DEFAULT_LOGGED_OUT_PREFERENCES} from '#/state/queries/preferences/const' diff --git a/src/state/queries/post-thread.ts b/src/state/queries/post-thread.ts --- a/src/state/queries/post-thread.ts +++ b/src/state/queries/post-thread.ts @@ -5,12 +5,12 @@ AppBskyFeedGetPostThread, AppBskyFeedPost, AtUri, + moderatePost, ModerationDecision, ModerationOpts, } from '@atproto/api' import {QueryClient, useQuery, useQueryClient} from '@tanstack/react-query' -import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' import {findAllPostsInQueryData as findAllPostsInQuoteQueryData} from '#/state/queries/post-quotes' import {UsePreferencesQueryResponse} from '#/state/queries/preferences/types' import { diff --git a/src/state/queries/search-posts.ts b/src/state/queries/search-posts.ts --- a/src/state/queries/search-posts.ts +++ b/src/state/queries/search-posts.ts @@ -4,6 +4,7 @@ AppBskyFeedDefs, AppBskyFeedSearchPosts, AtUri, + moderatePost, } from '@atproto/api' import { InfiniteData, @@ -12,7 +13,6 @@ useInfiniteQuery, } from '@tanstack/react-query' -import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' import {useModerationOpts} from '#/state/preferences/moderation-opts' import {useAgent} from '#/state/session' import { diff --git a/src/screens/Messages/components/MessageInputEmbed.tsx b/src/screens/Messages/components/MessageInputEmbed.tsx --- a/src/screens/Messages/components/MessageInputEmbed.tsx +++ b/src/screens/Messages/components/MessageInputEmbed.tsx @@ -4,13 +4,13 @@ AppBskyFeedPost, AppBskyRichtextFacet, AtUri, + moderatePost, RichText as RichTextAPI, } from '@atproto/api' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' import {RouteProp, useNavigation, useRoute} from '@react-navigation/native' -import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' import {makeProfileLink} from '#/lib/routes/links' import {CommonNavigatorParams, NavigationProp} from '#/lib/routes/types' import { diff --git a/src/state/queries/notifications/feed.ts b/src/state/queries/notifications/feed.ts --- a/src/state/queries/notifications/feed.ts +++ b/src/state/queries/notifications/feed.ts @@ -22,6 +22,7 @@ AppBskyFeedDefs, AppBskyFeedPost, AtUri, + moderatePost, } from '@atproto/api' import { InfiniteData, @@ -31,7 +32,6 @@ useQueryClient, } from '@tanstack/react-query' -import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' import {useAgent} from '#/state/session' import {useThreadgateHiddenReplyUris} from '#/state/threadgate-hidden-replies' import {useModerationOpts} from '../../preferences/moderation-opts' diff --git a/src/view/com/post-thread/PostQuotes.tsx b/src/view/com/post-thread/PostQuotes.tsx --- a/src/view/com/post-thread/PostQuotes.tsx +++ b/src/view/com/post-thread/PostQuotes.tsx @@ -2,13 +2,13 @@ import { AppBskyFeedDefs, AppBskyFeedPost, + moderatePost, ModerationDecision, } from '@atproto/api' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender' -import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' import {cleanError} from '#/lib/strings/errors' import {logger} from '#/logger' import {useModerationOpts} from '#/state/preferences/moderation-opts' diff --git a/src/view/com/post-thread/PostThread.tsx b/src/view/com/post-thread/PostThread.tsx --- a/src/view/com/post-thread/PostThread.tsx +++ b/src/view/com/post-thread/PostThread.tsx @@ -3,7 +3,11 @@ import {runOnJS} from 'react-native-reanimated' import Animated from 'react-native-reanimated' import {useSafeAreaInsets} from 'react-native-safe-area-context' -import {AppBskyFeedDefs, AppBskyFeedThreadgate} from '@atproto/api' +import { + AppBskyFeedDefs, + AppBskyFeedThreadgate, + moderatePost, +} from '@atproto/api' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' @@ -12,7 +16,6 @@ import {useMinimalShellFabTransform} from '#/lib/hooks/useMinimalShellTransform' import {useSetTitle} from '#/lib/hooks/useSetTitle' import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' -import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' import {clamp} from '#/lib/numbers' import {ScrollProvider} from '#/lib/ScrollContext' import {sanitizeDisplayName} from '#/lib/strings/display-names' diff --git a/src/view/com/post/Post.tsx b/src/view/com/post/Post.tsx --- a/src/view/com/post/Post.tsx +++ b/src/view/com/post/Post.tsx @@ -4,6 +4,7 @@ AppBskyFeedDefs, AppBskyFeedPost, AtUri, + moderatePost, ModerationDecision, RichText as RichTextAPI, } from '@atproto/api' @@ -14,7 +15,6 @@ import {MAX_POST_LINES} from '#/lib/constants' import {usePalette} from '#/lib/hooks/usePalette' -import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' import {makeProfileLink} from '#/lib/routes/links' import {countLines} from '#/lib/strings/helpers' import {colors, s} from '#/lib/styles' diff --git a/src/view/com/util/post-embeds/QuoteEmbed.tsx b/src/view/com/util/post-embeds/QuoteEmbed.tsx --- a/src/view/com/util/post-embeds/QuoteEmbed.tsx +++ b/src/view/com/util/post-embeds/QuoteEmbed.tsx @@ -14,6 +14,7 @@ AppBskyEmbedVideo, AppBskyFeedDefs, AppBskyFeedPost, + moderatePost, ModerationDecision, RichText as RichTextAPI, } from '@atproto/api' @@ -26,7 +27,6 @@ import {HITSLOP_20} from '#/lib/constants' import {usePalette} from '#/lib/hooks/usePalette' import {InfoCircleIcon} from '#/lib/icons' -import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' import {makeProfileLink} from '#/lib/routes/links' import {s} from '#/lib/styles' import {useModerationOpts} from '#/state/preferences/moderation-opts' -- tangled.sh