A collection of Osprey rules for ATProto

Compare changes

Choose any two refs to compare.

Changed files
+132
lists
rules
record
+99
lists/nsfw_tags.yaml
··· 1 + - onlyfans 2 + - fansly 3 + - blowjob 4 + - dick 5 + - cock 6 + - nsfw 7 + - pussy 8 + - pov 9 + - thick 10 + - ass 11 + - boobs 12 + - 18+ 13 + - nsfwsky 14 + - nsfwtwt 15 + - skyhub 16 + - lewd 17 + - findom 18 + - femdom 19 + - findomme 20 + - spoiled 21 + - leather 22 + - nude 23 + - sexy 24 + - bbw 25 + - simp 26 + - sub 27 + - content 28 + - realnsfw 29 + - gooning 30 + - gooner 31 + - anal 32 + - hugedildo 33 + - dildo 34 + - tits 35 + - nsfwbsky 36 + - egirl 37 + - sizequeen 38 + - cammodel 39 + - brat 40 + - gothurbate 41 + - altgirl 42 + - dirtytalk 43 + - switch 44 + - fetish 45 + - kinky 46 + - kink 47 + - kinks 48 + - cum 49 + - freeonlyfans 50 + - freefansly 51 + - freeslut 52 + - horny 53 + - submissive 54 + - pawg 55 + - snowbunny 56 + - sub 57 + - chudai 58 + - porn 59 + - redhead 60 + - teen 61 + - erotic 62 + - goonsky 63 + - private 64 + - suck 65 + - of 66 + - tease 67 + - nolimit 68 + - holes 69 + - pyt 70 + - tight 71 + - petite 72 + - nolimits 73 + - muscleworship 74 + - daddy 75 + - mommy 76 + - hunk 77 + - gayporn 78 + - verbal 79 + - hung 80 + - bwc 81 + - latina 82 + - swallow 83 + - ebony 84 + - backshot 85 + - backshots 86 + - loli 87 + - wet 88 + - breedable 89 + - breedkink 90 + - breed 91 + - hairy 92 + - hairywoman 93 + - hairyman 94 + - allnatural 95 + - camgirl 96 + - bdsm 97 + - bondage 98 + - abdl 99 + - diaper
+1
rules/record/post/index.sml
··· 14 14 Require(rule='rules/record/post/negative_posting.sml') 15 15 Require(rule='rules/record/post/toxic_posting.sml') 16 16 Require(rule='rules/record/post/bsky_store.sml') 17 + Require(rule='rules/record/post/nsfw_tags.sml') 17 18 18 19 # Replies Only 19 20 Require(
+32
rules/record/post/nsfw_tags.sml
··· 1 + Import( 2 + rules=[ 3 + 'models/base.sml', 4 + 'models/record/base.sml', 5 + 'models/record/post.sml', 6 + ], 7 + ) 8 + 9 + _FoundTag = ListContains( 10 + list='nsfw_tags', 11 + phrases=FacetTagList, 12 + ) 13 + 14 + _FoundTagUnwrapped: str = ResolveOptional(optional_value=_FoundTag) 15 + 16 + NsfwTagsRule = Rule( 17 + when_all=[ 18 + _FoundTag != None, 19 + ], 20 + description='Post contains NSFW hashtags', 21 + ) 22 + 23 + WhenRules( 24 + rules_any=[NsfwTagsRule], 25 + then=[ 26 + AtprotoLabel( 27 + entity=AtUri, 28 + label='likely-nsfw', 29 + comment=f'Post contains one or many NSFW hashtags: {_FoundTagUnwrapped}', 30 + ), 31 + ], 32 + )