/* 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. Debug - ДЕЙСТВИТЕЛЬНО вербозный уровень логгирования. # Есть ещё trace :) "loglevel": "debug", # Если не задан, логи идут в STDOUT "log": "/var/log/buny-jabber-bot/error.log" }