diff options
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/moderatePost_wrapped.ts | 29 | ||||
-rw-r--r-- | src/lib/moderation.ts | 7 |
2 files changed, 36 insertions, 0 deletions
diff --git a/src/lib/moderatePost_wrapped.ts b/src/lib/moderatePost_wrapped.ts new file mode 100644 index 000000000..286d47e1d --- /dev/null +++ b/src/lib/moderatePost_wrapped.ts @@ -0,0 +1,29 @@ +import {moderatePost} from '@atproto/api' + +type ModeratePost = typeof moderatePost +type Options = Parameters<ModeratePost>[1] & { + hiddenPosts?: string[] +} + +export function moderatePost_wrapped( + subject: Parameters<ModeratePost>[0], + opts: Options, +) { + const {hiddenPosts = [], ...options} = opts + const moderations = moderatePost(subject, options) + + if (hiddenPosts.includes(subject.uri)) { + moderations.content.filter = true + moderations.content.blur = true + if (!moderations.content.cause) { + moderations.content.cause = { + // @ts-ignore Temporary extension to the moderation system -prf + type: 'post-hidden', + source: {type: 'user'}, + priority: 1, + } + } + } + + return moderations +} diff --git a/src/lib/moderation.ts b/src/lib/moderation.ts index 8ba99128b..bf19c208a 100644 --- a/src/lib/moderation.ts +++ b/src/lib/moderation.ts @@ -60,6 +60,13 @@ export function describeModerationCause( } } } + // @ts-ignore Temporary extension to the moderation system -prf + if (cause.type === 'post-hidden') { + return { + name: 'Post Hidden by You', + description: 'You have hidden this post', + } + } return cause.labelDef.strings[context].en } |