diff options
author | Eric Bailey <git@esb.lol> | 2023-12-24 16:24:56 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-24 14:24:56 -0800 |
commit | b1994051344c8dbb1f3b710d6343591daa6756b8 (patch) | |
tree | 1c19750ad5f4748a29f0d41fd79142a7c1a7846f /src/lib | |
parent | 28e0df595fef024526da4a0ba22cba9fdc07808f (diff) | |
download | voidsky-b1994051344c8dbb1f3b710d6343591daa6756b8.tar.zst |
Hide posts tool (#2299)
* Set up hidden posts persisted state * Wrap moderatePost * Integrate hidden posts into moderation * Complete hide-post behaviors --------- Co-authored-by: Paul Frazee <pfrazee@gmail.com>
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 } |