Fix NSFW reply refusals and media offers
This commit is contained in:
1 parent
e9a4c965ee
commit
6b2e1bc380
11 files changed
+161
-22
No files matched your search
@@ -30,11 +30,22 @@ const FULL_STOP_PATTERNS = [
|
||||
];
|
||||
|
||||
export function containsMediaRequest(text: string): boolean {
|
||||
return new RegExp(String.raw`\b${MEDIA_VERB}\b[^.!?\n]{0,60}\b${MEDIA_NOUN}\b`, 'i').test(text)
|
||||
|| new RegExp(String.raw`\b(?:can|could|would|will) you\b[^.!?\n]{0,60}\b(?:${MEDIA_VERB}\b[^.!?\n]{0,30})?\b${MEDIA_NOUN}\b`, 'i').test(text)
|
||||
return new RegExp(String.raw`\b(?:can|could|would|will) you\b[^.!?\n]{0,60}\b(?:${MEDIA_VERB}\b[^.!?\n]{0,30})?\b${MEDIA_NOUN}\b`, 'i').test(text)
|
||||
|| new RegExp(String.raw`\byou (?:can|could|may)\b[^.!?\n]{0,40}\b${MEDIA_VERB}\b[^.!?\n]{0,40}\b${MEDIA_NOUN}\b`, 'i').test(text)
|
||||
|| new RegExp(String.raw`\b(?:send|share|show|give|drop) me\b[^.!?\n]{0,40}\b${MEDIA_NOUN}\b`, 'i').test(text)
|
||||
|| new RegExp(String.raw`(?:^|[.!?]\s+|,\s+)(?:please\s+)?${MEDIA_VERB}\b[^.!?\n]{0,60}\b${MEDIA_NOUN}\b`, 'i').test(text)
|
||||
|| new RegExp(String.raw`\bgot any (?:more )?${MEDIA_NOUN}\b`, 'i').test(text);
|
||||
}
|
||||
|
||||
/** A generic promise or invitation to share our own approved media, not a request for theirs. */
|
||||
export function containsMediaOffer(text: string): boolean {
|
||||
return new RegExp(
|
||||
String.raw`\b(?:i (?:can|could|would|will|might)|i['’]ll|want me to|how about i)\b[^.!?\n]{0,40}\b${MEDIA_VERB}\b[^.!?\n]{0,40}\b${MEDIA_NOUN}\b`,
|
||||
'i',
|
||||
).test(text)
|
||||
|| new RegExp(String.raw`\bi(?:['’]ve| have) got\b[^.!?\n]{0,40}\b${MEDIA_NOUN}\b[^.!?\n]{0,30}\b(?:if you want|to share|to show you)\b`, 'i').test(text);
|
||||
}
|
||||
|
||||
export function isFullConversationStop(text: string): boolean {
|
||||
return FULL_STOP_PATTERNS.some((pattern) => pattern.test(text));
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user