v0.6.5
This commit is contained in:
27
config.yml
27
config.yml
@@ -7,15 +7,21 @@ vk_api:
|
|||||||
# Токен
|
# Токен
|
||||||
token: TOKEN
|
token: TOKEN
|
||||||
|
|
||||||
# Отправка сообщений
|
# Основное
|
||||||
messages:
|
general:
|
||||||
# Шанс генерации
|
# Шанс генерации сообщения
|
||||||
chance: 20
|
chance: 20
|
||||||
|
# Минимальное кол-во слов в тексте
|
||||||
|
min_words: 5
|
||||||
# Максимальное кол-во символов в тексте
|
# Максимальное кол-во символов в тексте
|
||||||
symbols_limit: 250
|
max_symbols: 250
|
||||||
# ID бесед, в которых бот активен
|
# ID бесед, в которых бот активен
|
||||||
active_chats: all
|
active_chats: all
|
||||||
# Форматирование текста
|
# Сохранение сообщений пользователей
|
||||||
|
# * Одинаковые строки не сохраняются
|
||||||
|
data_save: true
|
||||||
|
|
||||||
|
# Формат текста
|
||||||
format:
|
format:
|
||||||
# Строчные буквы
|
# Строчные буквы
|
||||||
to_lower_case: true
|
to_lower_case: true
|
||||||
@@ -23,14 +29,3 @@ messages:
|
|||||||
capitalize_word: true
|
capitalize_word: true
|
||||||
# Точка в конце
|
# Точка в конце
|
||||||
end_dot: true
|
end_dot: true
|
||||||
|
|
||||||
# Генерация текста
|
|
||||||
generation:
|
|
||||||
# Минимальное кол-во слов в генерируемом тексте
|
|
||||||
min_words: 5
|
|
||||||
|
|
||||||
# Настройки БД
|
|
||||||
database:
|
|
||||||
# Сохранение сообщений пользователей
|
|
||||||
# * Одинаковые строки не сохраняются
|
|
||||||
data_save: 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 (!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}`)
|
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)
|
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)
|
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('Генерация текста ...')
|
Logger.info('Генерация текста ...')
|
||||||
|
|
||||||
// Генерация текста
|
// Генерация текста
|
||||||
// Если данных будет недостаточно произойдет ошибка <<Maximum call stack size exceeded>>
|
// Если данных будет недостаточно произойдет ошибка <<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.format.to_lower_case) sentence = sentence.toLowerCase()
|
||||||
if (config.messages.format.capitalize_word) sentence = sentence.charAt(0).toUpperCase() + sentence.slice(1)
|
if (config.format.capitalize_word) sentence = sentence.charAt(0).toUpperCase() + sentence.slice(1)
|
||||||
if (config.messages.format.end_dot) sentence = sentence + '.'
|
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()
|
await ctx.setActivity()
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "cortex-bot",
|
"name": "cortex-bot",
|
||||||
"version": "0.6.4",
|
"version": "0.6.5",
|
||||||
"description": "vk delirium generator bot",
|
"description": "vk delirium generator bot",
|
||||||
"main": "core/core.js",
|
"main": "core/core.js",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
|
|||||||
Reference in New Issue
Block a user