Files
buny-jabber-bot/data/sample_config.json

201 lines
12 KiB
Plaintext

/* vim: set ft=text noet ai ts=2 sw=2 sts=2: */
{
# Фронт-энд бота
"jabber": {
# Если не задан, будет localhost
"server": "jabber.tld",
# Если не задано - 5222 для нешифрованного соединения или для starttls и 5223 для голого (старорежимного) ssl
"port": 5222,
# Включить шифрование
"ssl": true,
# Это более современный протокол и как раз на нём работет большинство jabber-серверов, порт 5222,
# jabber.ru по этому протоколу как-то странно работает, если его включить, я получаю
# tls: first record does not look like a TLS handshake
"starttls" : true,
# Не проверяем сертификаты по-умолчанию.
# Вам правда хочется всё это проверять? Там по идее могут быть всякие Lets Encrypt, которые хоть и работают, но
# создают кучу проблем
"ssl_verify": false,
# Позволять авторизацию логин-паролем по незашифрованному каналу связи
"insecureallowunencryptedauth": false,
# Таймаут установления соединения с сервером, в секундах. 10 секунд, если не задано.
"connection_timeout": 10,
# Задержка перед пере-коннекчиванием. 3 секунды, если не задано.
"reconnect_delay": 3,
# Промежуток между пингами сервера, для определения его живости. По-умолчанию 60 секунд.
# Пинги посылаются, если в течение этого времени не было активности со стороны сервера.
"server_ping_delay": 60,
# Промежуток между пингами muc-ов. По-умолчанию 900 секунд. (Согласно рекомендации в xep-0410.)
# Пинги посылаются, если в течение этого времени не было активности со стороны muc-а.
"muc_ping_delay": 900,
# Сколько ждать перед переджоиванием к комнате. По-умолчанию, 3 секунды.
"muc_rejoin_delay": 3,
# Ping-to-ping splay delay. Варьируемая задержка между пингами, чтобы не набирать высокий message rate.
# По-умолчанию, 3 секунды. Под капотом преобразуются в миллисекунды. Важна для пингов MUC-ов, особенно,
# если их МНОГО.
"ping_splay_delay": 3,
# Ник бота, с которым он будет заходить в комнаты
"nick": "buny",
# Уникальная часть jid-а, специфичная для клиента
"resource" : "Лунная призма",
# Имя пользователя для авторизации на сервере
"user": "buny@jabber.tld",
# Пароль для авторизации
"password": "secret",
# Список JID-ов, которым позволено управлять ботом (например, давать отмашку на rehash).
# В списке jid-ы без resource-а.
# Если не задано ни одного мастера, то бот сам себе мастер.
"bot_masters": [
"luna@earth.tld"
],
# Jabber-каналы, к которым бот попробует присоединиться при старте
"channels": [
{
# Название канала, обязательное поле
"name" : "my_channel@conference.jabber.tld",
# Под каким ником бот зайдёт конкретно на этот канал. Если не задано, будет использован ник, заданный в
# общих настройках Jabber, выше по конфигу.
"nick" : "sailormoon",
# Настройки байесовского классификатора. В виду вероятности ложного срабатывания возможно, имеет смысл
# воздержаться от использования. Зависит от использования и от словарей.
"bayes": {
# Если не указано, то он выключен
"enabled": false,
# Минимальное количество слов во фразе, по-умолчанию 8, если не указано или указано меньше
"min_words": 10,
# Минимальная длина фразы, по-умолчанию 40 символов, если не указано или указано меньше
"min_length": 50,
# Действие по умолчанию log, devoice, kick, ban. Если не задано, то log.
"default_action": "kick"
},
"password": ""
# Проверка на фразы, написанные капсом
"all_caps": {
# Если не указано, то выключено
"enabled": false,
# Минимальное количество буквенных символов в проверяемой фразе
"min_length": 15,
# Действие по-умолчанию log, devoice, kick, ban. Если не задано, то log.
"default_action": "kick"
}
},
{
"name" : "another_channel@conference.jabber.tld"
}
],
# Статус, с которым бот запускается. (если всё нормально, этот статус будет видать только в логах сервера и
# на долю секунды он промелькнёт у всех в ростере, у кого бот в знакомых. Может отсуствовать, тогда статус будет
# пустой строкой
"startup_status": [
"bunny bot is starting"
],
# Статус, который демонстрируется во время работы бота, как xa
# (по задумке - extended away, на практике, к away обычно отношения не имеет)
"runtime_status": {
# Сам текст статуса, может отсустствовать, тогда статус - это пустая строка
"text": [
"Тот, кто не знает силу пешек, не имеет права ходить королевой.",
"Когда ты пройдешь сквозь мрак беспомощности и попадешь в мир надежды, тогда ты преодолеешь все преграды.",
"По-моему, тебе очень хочется стать уткой по-пекински!",
"If a soldier’s pride means hurting one another, I don’t want it.",
"Without the bad times, we wouldn’t appreciate the good times.",
"I’ll just warn you now, I don’t know how to use a computer.",
"Thinking isn’t going to get us anywhere.",
"Вместо того, чтобы произносить речи, лучше бы подумала, что ты будешь делать дальше.",
"Да как ты смела разгадать мой замысел?! Я же целую ночь не спала, пока его придумала. Верни мне мой сон!",
"Не волнуйся, жизнь намного скучнее, чем ты себе её представляешь.",
"Я бы завела котёнка, но у меня уже есть Луна и она жрёт как лошадь.",
"Звезда нашей надежды никогда не исчезнет. Пока она горит, всё будет в порядке. Мы не сможем проиграть",
"Голова с хвостиками… Не вмешивайся в наши дела! Играть в войну — это опасно"
],
# Период смены статуса, сек. Если параметра нет или он выставлен в 0, ротации не будет
# 3 дня
"rotation_time": 259200,
# Рандомная составляющая, добавляемая к периоду смены статуса, сек.
# 4 дня
"rotation_splay_time": 345600
},
# Задержка перед баном, миллисекунды. Иногда сервер может подтормаживать на моменте бана. Jabber.ru так делает.
# В этом случае бан не записывается в банлист комнаты.
"ban_delay": 600,
# Произносим ли что-то пафосное в момоент бана
"ban_phrases_enable": false,
# Пафосные фраза, произносимые перед баном
"ban_phrases": [
"Во имя Луны, я накажу тебя!",
"Сила Луны, проснись!",
"Мы — воительницы справедливости!",
"Любовь и справедливость победят всегда!",
"Я буду защищать этот мир до последнего вздоха!",
"Мысли о любви делают нас сильнее!",
"Никогда не сдавайся, даже если все кажется безнадежным!",
"Мы можем преодолеть любые трудности, если будем вместе!",
"Любовь — это самая мощная сила во Вселенной!",
"Верь в себя и свою силу!",
"Красавица-воин Сейлор Мун, покоряющая сердца!",
"Мы несем свет и надежду в этот мир!",
"Луна, дай мне силу!",
"Мысли о друзьях дают мне силу!",
"Мы боремся за мир и справедливость!",
"Мы всегда найдем путь к победе!",
"Наша дружба — это наша сила!",
"Мы — защитницы мира, и ничто не остановит нас!",
"Любовь — это то, что делает нас сильнее!",
"Мы сражаемся за будущее всех живых существ!",
"Мы всегда будем вместе, независимо от трудностей!",
"Мы — сестры по духу и воительницы справедливости!",
"Мы несем свет и надежду в этот мир!",
"Любовь — это самое важное чувство во Вселенной!",
"Мы сражаемся за справедливость и защищаем тех, кто слабее!",
"Мы — герои, которые противостоят тьме!",
"Луна, дай мне силу стать красавицей-воином!",
"Мы сражаемся за мир и равенство!",
"Мы — надежда для всех, кто нуждается в защите!",
"Мы — воительницы справедливости, и ничто не остановит нас!"
]
},
# command sign символ-суффикс команды, например !rehash или !help. По-умолчанию "!".
"csign" : "!",
# Многословность логов. Если не задано, то info.
# Есть разные уровни trace, debug, debug, info, warn, error, fatal.
# Практически задействованы только trace, debug, info.
"loglevel": "debug",
# Если не задан, логи идут в STDOUT
"log": "/var/log/buny-jabber-bot/error.log"
}