about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorPaul Frazee <pfrazee@gmail.com>2023-12-24 15:19:37 -0800
committerGitHub <noreply@github.com>2023-12-24 15:19:37 -0800
commit51506efca64d6a7aa12a8299eed4014d47d08c25 (patch)
tree9ee382cbc7632d2a8dadd9cb03d1399d5f2286f5 /src
parente3d9a4f782c960141f44d950caae238319ae7621 (diff)
downloadvoidsky-51506efca64d6a7aa12a8299eed4014d47d08c25.tar.zst
Apply post-hide to quote posts (#2302)
Diffstat (limited to 'src')
-rw-r--r--src/lib/moderatePost_wrapped.ts31
1 files changed, 30 insertions, 1 deletions
diff --git a/src/lib/moderatePost_wrapped.ts b/src/lib/moderatePost_wrapped.ts
index 286d47e1d..2195b2304 100644
--- a/src/lib/moderatePost_wrapped.ts
+++ b/src/lib/moderatePost_wrapped.ts
@@ -1,4 +1,8 @@
-import {moderatePost} from '@atproto/api'
+import {
+  AppBskyEmbedRecord,
+  AppBskyEmbedRecordWithMedia,
+  moderatePost,
+} from '@atproto/api'
 
 type ModeratePost = typeof moderatePost
 type Options = Parameters<ModeratePost>[1] & {
@@ -25,5 +29,30 @@ export function moderatePost_wrapped(
     }
   }
 
+  if (subject.embed) {
+    let embedHidden = false
+    if (AppBskyEmbedRecord.isViewRecord(subject.embed.record)) {
+      embedHidden = hiddenPosts.includes(subject.embed.record.uri)
+    }
+    if (
+      AppBskyEmbedRecordWithMedia.isView(subject.embed) &&
+      AppBskyEmbedRecord.isViewRecord(subject.embed.record.record)
+    ) {
+      embedHidden = hiddenPosts.includes(subject.embed.record.record.uri)
+    }
+    if (embedHidden) {
+      moderations.embed.filter = true
+      moderations.embed.blur = true
+      if (!moderations.embed.cause) {
+        moderations.embed.cause = {
+          // @ts-ignore Temporary extension to the moderation system -prf
+          type: 'post-hidden',
+          source: {type: 'user'},
+          priority: 1,
+        }
+      }
+    }
+  }
+
   return moderations
 }