diff options
-rw-r--r-- | src/lib/__tests__/moderatePost_wrapped.test.ts | 89 | ||||
-rw-r--r-- | src/lib/moderatePost_wrapped.ts | 9 |
2 files changed, 98 insertions, 0 deletions
diff --git a/src/lib/__tests__/moderatePost_wrapped.test.ts b/src/lib/__tests__/moderatePost_wrapped.test.ts index c35c1ef77..45566281a 100644 --- a/src/lib/__tests__/moderatePost_wrapped.test.ts +++ b/src/lib/__tests__/moderatePost_wrapped.test.ts @@ -16,6 +16,7 @@ describe(`hasMutedWord`, () => { text: rt.text, facets: rt.facets, outlineTags: ['outlineTag'], + isOwnPost: false, }) expect(match).toBe(true) @@ -32,6 +33,7 @@ describe(`hasMutedWord`, () => { text: rt.text, facets: rt.facets, outlineTags: ['outlineTag'], + isOwnPost: false, }) expect(match).toBe(true) @@ -48,6 +50,7 @@ describe(`hasMutedWord`, () => { text: rt.text, facets: rt.facets, outlineTags: ['outlineTag'], + isOwnPost: false, }) expect(match).toBe(true) @@ -64,6 +67,7 @@ describe(`hasMutedWord`, () => { text: rt.text, facets: rt.facets, outlineTags: [], + isOwnPost: false, }) expect(match).toBe(false) @@ -85,6 +89,7 @@ describe(`hasMutedWord`, () => { text: rt.text, facets: rt.facets, outlineTags: [], + isOwnPost: false, }) expect(match).toBe(true) @@ -101,6 +106,7 @@ describe(`hasMutedWord`, () => { text: rt.text, facets: rt.facets, outlineTags: [], + isOwnPost: false, }) expect(match).toBe(false) @@ -117,6 +123,7 @@ describe(`hasMutedWord`, () => { text: rt.text, facets: rt.facets, outlineTags: [], + isOwnPost: false, }) expect(match).toBe(true) @@ -135,6 +142,7 @@ describe(`hasMutedWord`, () => { text: rt.text, facets: rt.facets, outlineTags: [], + isOwnPost: false, }) expect(match).toBe(true) @@ -151,6 +159,7 @@ describe(`hasMutedWord`, () => { text: rt.text, facets: rt.facets, outlineTags: [], + isOwnPost: false, }) expect(match).toBe(false) @@ -167,6 +176,7 @@ describe(`hasMutedWord`, () => { text: rt.text, facets: rt.facets, outlineTags: [], + isOwnPost: false, }) expect(match).toBe(true) @@ -183,6 +193,7 @@ describe(`hasMutedWord`, () => { text: rt.text, facets: rt.facets, outlineTags: [], + isOwnPost: false, }) expect(match).toBe(true) @@ -202,6 +213,7 @@ describe(`hasMutedWord`, () => { text: rt.text, facets: rt.facets, outlineTags: [], + isOwnPost: false, }) expect(match).toBe(true) @@ -213,6 +225,7 @@ describe(`hasMutedWord`, () => { text: rt.text, facets: rt.facets, outlineTags: [], + isOwnPost: false, }) expect(match).toBe(true) @@ -231,6 +244,7 @@ describe(`hasMutedWord`, () => { text: rt.text, facets: rt.facets, outlineTags: [], + isOwnPost: false, }) expect(match).toBe(true) @@ -243,6 +257,7 @@ describe(`hasMutedWord`, () => { text: rt.text, facets: rt.facets, outlineTags: [], + isOwnPost: false, }) expect(match).toBe(true) @@ -261,6 +276,7 @@ describe(`hasMutedWord`, () => { text: rt.text, facets: rt.facets, outlineTags: [], + isOwnPost: false, }) expect(match).toBe(true) @@ -272,6 +288,7 @@ describe(`hasMutedWord`, () => { text: rt.text, facets: rt.facets, outlineTags: [], + isOwnPost: false, }) expect(match).toBe(true) @@ -291,6 +308,7 @@ describe(`hasMutedWord`, () => { text: rt.text, facets: rt.facets, outlineTags: [], + isOwnPost: false, }) expect(match).toBe(true) @@ -309,6 +327,7 @@ describe(`hasMutedWord`, () => { text: rt.text, facets: rt.facets, outlineTags: [], + isOwnPost: false, }) expect(match).toBe(true) @@ -320,6 +339,7 @@ describe(`hasMutedWord`, () => { text: rt.text, facets: rt.facets, outlineTags: [], + isOwnPost: false, }) expect(match).toBe(true) @@ -336,6 +356,7 @@ describe(`hasMutedWord`, () => { text: rt.text, facets: rt.facets, outlineTags: [], + isOwnPost: false, }) expect(match).toBe(false) @@ -354,6 +375,7 @@ describe(`hasMutedWord`, () => { text: rt.text, facets: rt.facets, outlineTags: [], + isOwnPost: false, }) expect(match).toBe(true) @@ -365,6 +387,7 @@ describe(`hasMutedWord`, () => { text: rt.text, facets: rt.facets, outlineTags: [], + isOwnPost: false, }) expect(match).toBe(true) @@ -383,6 +406,7 @@ describe(`hasMutedWord`, () => { text: rt.text, facets: rt.facets, outlineTags: [], + isOwnPost: false, }) expect(match).toBe(true) @@ -394,6 +418,7 @@ describe(`hasMutedWord`, () => { text: rt.text, facets: rt.facets, outlineTags: [], + isOwnPost: false, }) expect(match).toBe(true) @@ -405,6 +430,7 @@ describe(`hasMutedWord`, () => { text: rt.text, facets: rt.facets, outlineTags: [], + isOwnPost: false, }) expect(match).toBe(true) @@ -416,6 +442,7 @@ describe(`hasMutedWord`, () => { text: rt.text, facets: rt.facets, outlineTags: [], + isOwnPost: false, }) expect(match).toBe(false) @@ -434,6 +461,7 @@ describe(`hasMutedWord`, () => { text: rt.text, facets: rt.facets, outlineTags: [], + isOwnPost: false, }) expect(match).toBe(true) @@ -448,6 +476,7 @@ describe(`hasMutedWord`, () => { text: rt.text, facets: rt.facets, outlineTags: [], + isOwnPost: false, }) expect(match).toBe(false) @@ -460,6 +489,7 @@ describe(`hasMutedWord`, () => { text: rt.text, facets: rt.facets, outlineTags: [], + isOwnPost: false, }) expect(match).toBe(true) @@ -471,6 +501,7 @@ describe(`hasMutedWord`, () => { text: rt.text, facets: rt.facets, outlineTags: [], + isOwnPost: false, }) expect(match).toBe(false) @@ -489,6 +520,7 @@ describe(`hasMutedWord`, () => { text: rt.text, facets: rt.facets, outlineTags: [], + isOwnPost: false, }) expect(match).toBe(true) @@ -500,6 +532,7 @@ describe(`hasMutedWord`, () => { text: rt.text, facets: rt.facets, outlineTags: [], + isOwnPost: false, }) expect(match).toBe(true) @@ -511,6 +544,7 @@ describe(`hasMutedWord`, () => { text: rt.text, facets: rt.facets, outlineTags: [], + isOwnPost: false, }) expect(match).toBe(true) @@ -522,6 +556,7 @@ describe(`hasMutedWord`, () => { text: rt.text, facets: rt.facets, outlineTags: [], + isOwnPost: false, }) expect(match).toBe(true) @@ -540,6 +575,7 @@ describe(`hasMutedWord`, () => { text: rt.text, facets: rt.facets, outlineTags: [], + isOwnPost: false, }) expect(match).toBe(true) @@ -560,6 +596,7 @@ describe(`hasMutedWord`, () => { text: rt.text, facets: rt.facets, outlineTags: [], + isOwnPost: false, }) expect(match).toBe(true) @@ -571,6 +608,7 @@ describe(`hasMutedWord`, () => { text: rt.text, facets: rt.facets, outlineTags: [], + isOwnPost: false, }) expect(match).toBe(true) @@ -594,10 +632,61 @@ describe(`hasMutedWord`, () => { facets: rt.facets, outlineTags: [], languages: ['ja'], + isOwnPost: false, }) expect(match).toBe(true) }) }) }) + + describe(`doesn't mute own post`, () => { + it(`does mute if it isn't own post`, () => { + const rt = new RichText({ + text: `Mute words!`, + }) + + const match = hasMutedWord({ + mutedWords: [{value: 'words', targets: ['content']}], + text: rt.text, + facets: rt.facets, + outlineTags: [], + isOwnPost: false, + }) + + expect(match).toBe(true) + }) + + it(`doesn't mute own post when muted word is in text`, () => { + const rt = new RichText({ + text: `Mute words!`, + }) + + const match = hasMutedWord({ + mutedWords: [{value: 'words', targets: ['content']}], + text: rt.text, + facets: rt.facets, + outlineTags: [], + isOwnPost: true, + }) + + expect(match).toBe(false) + }) + + it(`doesn't mute own post when muted word is in tags`, () => { + const rt = new RichText({ + text: `Mute #words!`, + }) + + const match = hasMutedWord({ + mutedWords: [{value: 'words', targets: ['tags']}], + text: rt.text, + facets: rt.facets, + outlineTags: [], + isOwnPost: true, + }) + + expect(match).toBe(false) + }) + }) }) diff --git a/src/lib/moderatePost_wrapped.ts b/src/lib/moderatePost_wrapped.ts index 428dbabf4..92543b42c 100644 --- a/src/lib/moderatePost_wrapped.ts +++ b/src/lib/moderatePost_wrapped.ts @@ -41,13 +41,17 @@ export function hasMutedWord({ facets, outlineTags, languages, + isOwnPost, }: { mutedWords: AppBskyActorDefs.MutedWord[] text: string facets?: AppBskyRichtextFacet.Main[] outlineTags?: string[] languages?: string[] + isOwnPost: boolean }) { + if (isOwnPost) return false + const exception = LANGUAGE_EXCEPTIONS.includes(languages?.[0] || '') const tags = ([] as string[]) .concat(outlineTags || []) @@ -142,6 +146,7 @@ export function moderatePost_wrapped( ) { const {hiddenPosts = [], mutedWords = [], ...options} = opts const moderations = moderatePost(subject, options) + const isOwnPost = subject.author.did === opts.userDid if (hiddenPosts.includes(subject.uri)) { moderations.content.filter = true @@ -163,6 +168,7 @@ export function moderatePost_wrapped( facets: subject.record.facets || [], outlineTags: subject.record.tags || [], languages: subject.record.langs, + isOwnPost, }) if ( @@ -178,6 +184,7 @@ export function moderatePost_wrapped( facets: [], outlineTags: [], languages: subject.record.langs, + isOwnPost, }) } } @@ -210,6 +217,7 @@ export function moderatePost_wrapped( facets: subject.embed.record.value.facets, outlineTags: subject.embed.record.value.tags, languages: subject.embed.record.value.langs, + isOwnPost, }) if (AppBskyEmbedImages.isMain(subject.embed.record.value.embed)) { @@ -222,6 +230,7 @@ export function moderatePost_wrapped( facets: [], outlineTags: [], languages: subject.embed.record.value.langs, + isOwnPost, }) } } |