about summary refs log tree commit diff
path: root/src/lib/moderatePost_wrapped.ts
diff options
context:
space:
mode:
authorEric Bailey <git@esb.lol>2023-12-24 16:24:56 -0600
committerGitHub <noreply@github.com>2023-12-24 14:24:56 -0800
commitb1994051344c8dbb1f3b710d6343591daa6756b8 (patch)
tree1c19750ad5f4748a29f0d41fd79142a7c1a7846f /src/lib/moderatePost_wrapped.ts
parent28e0df595fef024526da4a0ba22cba9fdc07808f (diff)
downloadvoidsky-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/moderatePost_wrapped.ts')
-rw-r--r--src/lib/moderatePost_wrapped.ts29
1 files changed, 29 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
+}