v0.6.5
This commit is contained in:
35
config.yml
35
config.yml
@@ -7,30 +7,25 @@ vk_api:
|
||||
# Токен
|
||||
token: TOKEN
|
||||
|
||||
# Отправка сообщений
|
||||
messages:
|
||||
# Шанс генерации
|
||||
# Основное
|
||||
general:
|
||||
# Шанс генерации сообщения
|
||||
chance: 20
|
||||
# Минимальное кол-во слов в тексте
|
||||
min_words: 5
|
||||
# Максимальное кол-во символов в тексте
|
||||
symbols_limit: 250
|
||||
max_symbols: 250
|
||||
# ID бесед, в которых бот активен
|
||||
active_chats: all
|
||||
# Форматирование текста
|
||||
format:
|
||||
# Строчные буквы
|
||||
to_lower_case: true
|
||||
# Заглавная буква в начале
|
||||
capitalize_word: true
|
||||
# Точка в конце
|
||||
end_dot: true
|
||||
|
||||
# Генерация текста
|
||||
generation:
|
||||
# Минимальное кол-во слов в генерируемом тексте
|
||||
min_words: 5
|
||||
|
||||
# Настройки БД
|
||||
database:
|
||||
# Сохранение сообщений пользователей
|
||||
# * Одинаковые строки не сохраняются
|
||||
data_save: true
|
||||
|
||||
# Формат текста
|
||||
format:
|
||||
# Строчные буквы
|
||||
to_lower_case: true
|
||||
# Заглавная буква в начале
|
||||
capitalize_word: true
|
||||
# Точка в конце
|
||||
end_dot: true
|
||||
16
core/core.js
16
core/core.js
@@ -82,7 +82,7 @@ vk.updates.on('message_new', async ctx => {
|
||||
|
||||
// Игнорирование лишних сообщений
|
||||
if (!ctx.isChat) return
|
||||
if (config.messages.active_chats != 'all' && !config.messages.active_chats.includes(ctx.chatId)) return
|
||||
if (config.general.active_chats != 'all' && !config.general.active_chats.includes(ctx.chatId)) return
|
||||
|
||||
// Логирование сообщений
|
||||
Logger.info(`#${ctx.chatId} ${ctx.senderId} ${ctx.isOutbox ? '<-' : '->'} ${ctx?.text ? ctx.text : '<no_text>'} ${ctx?.attachments}`)
|
||||
@@ -94,7 +94,7 @@ vk.updates.on('message_new', async ctx => {
|
||||
ctx.chat = await db.getChat(ctx.chatId)
|
||||
|
||||
// Запись сообщения в БД
|
||||
if (ctx.text && config.database.data_save && !ctx.chat.data.includes(ctx.text)) {
|
||||
if (ctx.text && config.general.data_save && !ctx.chat.data.includes(ctx.text)) {
|
||||
|
||||
// Запись в БД
|
||||
db.chats.find(chat => chat.id == ctx.chatId).data.push(ctx.text)
|
||||
@@ -104,22 +104,22 @@ vk.updates.on('message_new', async ctx => {
|
||||
}
|
||||
|
||||
// Генерация сообщения с определенным шансом
|
||||
if (Math.random() * 100 < config.messages.chance) {
|
||||
if (Math.random() * 100 < config.general.chance) {
|
||||
|
||||
// Сообщение в консоль о генерации текста
|
||||
Logger.info('Генерация текста ...')
|
||||
|
||||
// Генерация текста
|
||||
// Если данных будет недостаточно произойдет ошибка <<Maximum call stack size exceeded>>
|
||||
let sentence = new Markov(ctx.chat.data, config.generation.min_words).makeChain()
|
||||
let sentence = new Markov(ctx.chat.data, config.general.min_words).makeChain()
|
||||
|
||||
// Форматирование текста
|
||||
if (config.messages.format.to_lower_case) sentence = sentence.toLowerCase()
|
||||
if (config.messages.format.capitalize_word) sentence = sentence.charAt(0).toUpperCase() + sentence.slice(1)
|
||||
if (config.messages.format.end_dot) sentence = sentence + '.'
|
||||
if (config.format.to_lower_case) sentence = sentence.toLowerCase()
|
||||
if (config.format.capitalize_word) sentence = sentence.charAt(0).toUpperCase() + sentence.slice(1)
|
||||
if (config.format.end_dot) sentence = sentence + '.'
|
||||
|
||||
// Предупреждение при превышении лимита символов
|
||||
if (sentence.split('').length > config.messages.max_symbols) return Logger.warn(`#${ctx.chatId} Превышен лимит символов (${sentence.split('').length}/${config.messages.symbols_limit})`)
|
||||
if (sentence.split('').length > config.general.max_symbols) return Logger.warn(`#${ctx.chatId} Превышен лимит символов (${sentence.split('').length}/${config.general.max_symbols})`)
|
||||
|
||||
// Статус набора текста
|
||||
await ctx.setActivity()
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "cortex-bot",
|
||||
"version": "0.6.4",
|
||||
"version": "0.6.5",
|
||||
"description": "vk delirium generator bot",
|
||||
"main": "core/core.js",
|
||||
"type": "module",
|
||||
|
||||
Reference in New Issue
Block a user