Refactor
This commit is contained in:
+24
@@ -14,3 +14,27 @@ export function sample<T>(arr: T[], n: number = arr.length): T[] {
|
||||
/** sleep for N milliseconds */
|
||||
export const sleep = (msec: number) =>
|
||||
new Promise((resolve) => setTimeout(resolve, msec));
|
||||
|
||||
/** normalize user-visible text and neutralize accidental mentions/tags */
|
||||
export const sanitizeText = (text: string) =>
|
||||
text
|
||||
.replaceAll(/\r\n?/g, "\n")
|
||||
.replaceAll(/\n[\t ]+/g, "\n")
|
||||
.replaceAll(/\n{3,}/g, "\n\n")
|
||||
.trim()
|
||||
.replaceAll("@", "@")
|
||||
.replaceAll("#", "#");
|
||||
|
||||
const POLITE_ENDING =
|
||||
/(?:です|ます|ません|でした|ました|でしょう|ください)(?:ね|よ|か)?$/u;
|
||||
|
||||
export function isPoliteEnough(text: string) {
|
||||
const sentences = text
|
||||
.split(/[。!?]+/u)
|
||||
.map((sentence) => sentence.trim())
|
||||
.filter(Boolean);
|
||||
return (
|
||||
sentences.length > 0 &&
|
||||
sentences.some((sentence) => POLITE_ENDING.test(sentence))
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user