Files
bot/packages/bot-engine/src/services/chat.ts

34 lines
948 B
TypeScript
Raw Normal View History

import {
2022-06-11 07:27:38 +02:00
BubbleBlock,
BubbleBlockType,
InputBlock,
InputBlockType,
Block,
TypingEmulation,
} from 'models'
2022-06-11 07:27:38 +02:00
import { isBubbleBlock, isInputBlock } from 'utils'
2021-12-23 13:49:24 +01:00
export const computeTypingTimeout = (
bubbleContent: string,
typingSettings: TypingEmulation
2021-12-23 13:49:24 +01:00
) => {
let wordCount = bubbleContent.match(/(\w+)/g)?.length ?? 0
if (wordCount === 0) wordCount = bubbleContent.length
2021-12-23 13:49:24 +01:00
const typedWordsPerMinute = typingSettings.speed
let typingTimeout = typingSettings.enabled
? (wordCount / typedWordsPerMinute) * 60000
: 0
if (typingTimeout > typingSettings.maxDelay * 1000)
typingTimeout = typingSettings.maxDelay * 1000
return typingTimeout
}
2022-06-11 07:27:38 +02:00
export const getLastChatBlockType = (
blocks: Block[]
): BubbleBlockType | InputBlockType | undefined => {
const displayedBlocks = blocks.filter(
(s) => isBubbleBlock(s) || isInputBlock(s)
) as (BubbleBlock | InputBlock)[]
return displayedBlocks.pop()?.type
}