JuBo logoJuBo - домашняя страница

Бот позволяет более гибко следить за новыми сообщениями в сервисе микроблоггинга juick.com

JID бота: jubo@nologin.ru

Основные фичи бота:

Чтобы начать пользоваться ботом просто добавьте его в ростер и подпишитесь на интересующие слова.

Алгоритм работы в обычном режиме очень прост - в сообщении ищутся указанные вами ключевые слова (для бота это просто подстроки), и если эти слова найдены в тексте сообщения, то это оно пересылается вам. Несмотря на кажущуюся простоту, возможностей у бота достаточно много. Я не могу здесь описать всё что можно с его помощью сделать, буду описывать только самое основное.

Если возникают какие-то вопросы, то не стесняйтесь постить их либо в камменты в блог бота ( http://juick.com/JuBo/ ), либо мне прямо в жабу: arepo@jabber.ru

Справка

Команды

Подписка на ключевое слово

Для подписки на ключевые слова вы можете использовать несколько равнозначных вариантов команды:

Ключевые слова перечисляются через запятую или пробел после команды.

Примеры:

add juick жуйк *juickbot

д juick жуйк *juickbot

Удаление подписки на ключевые слова

Для удаления подписки на ключевые слова вы можете использовать несколько равнозначных вариантов команды:

Ключевые слова перечисляются через запятую или пробел после команды.

Примеры:

del juick жуйк *juickbot

у juick жуйк *juickbot

Просмотр списка ключевых слов, на которые вы подписаны

Для удаления подписка на ключевое слово вы можете использовать несколько равнозначных вариантов команды:

Стоп-слова отображаются в списке с префиксом "-".

Ник на жуйке

Для того чтобы вам не присылались ваши же сообщения необходимо указать боту какой у вас ник на жуйке. Сделать это можно командой nick. Список альясов этой команды:

В качестве аргумента передаётся ваш ник (можно с '@' в начале, а можно и без).

Пример:

n @ваш_ник

RSS

Все получаемые сообщения можно продублировать в личной RSS-ленте, например, чтобы использовать её в Yahoo Pipes или Google Reader или иных агрегаторах. Кроме того для чтения RSS не нужен Jabber-клиент.

Управление доставкой через Jabber

Для включения или выключения доставки сообщений через жаббер используется команда spam:

Управление XHTML-форматированием

Для включения или выключения XHTML-форматирования в доставляемых сообщениях используется команда xhmtl или hmtl. Пока то форматирование включает в себя добавление ссылок на теги поста, пользователей (@username) и на посты (#12345). Все ссылки ведут на сайт.

URL, встречающиеся в тексте, ссылками не становятся. Жуйковское форматирование (жирный / курсив / подчёркнутый) не понимается (пока что).

Статистика

Некоторую статистическую информацию можно получить по команде stat.

Получение различной информации о боте

Для получение информации о боте существует команда about.

Стоп-лист

Стоп-лист служит для того, чтобы дополнительно отфильтровать сообщения, в которых содержатся ключевые слова, на которые вы подписаны. Например, если вы хотите получать сообщения со словом "palm", но вам не нужны сообщения, касающееся facepalm. В этом случае решением проблемы будет добавление "facepalm" в стоп-лист.

Стоп-слова добавляются почти так же как и обычные ключевые слова: для того чтобы указать боту что слово надо добавить в стоп-лист надо использовать префикс "-".

Пример:

add -facepalm

В списке ключевых слов стоп-слова отображаются также с префиксом "-". При удалении префикс указывать необязательно.

Учёт границ слов

По умолчанию поиск ключевых слов осуществляется простейшим образом: если в тексте есть вхождение ключевого слова, то это сообщение отправляется подписчику. Таким образом, подписчику мог приходить "мусор", из-за того что его ключевое слово является частью другого, и два этих слова никак не связаны, например "palm" и "facepalm".

Чтобы избежать таких накладок можно явно указать границу ключевого слова. Делается это символом '|' в любом месте ключевого слова (обычно в начале и конце).

Пример:

add |palm|

Границей слова считается любой не алфавитноцифровой символ, а так же начало и конец сообщения, также символы '@' и '#' не считаются граничными.

Фильтр по метаинформации

Это режим стоит использовать, если вам нужно подписаться на тег или на пользователя или же наоборот заблокировать сообщения от какого-то юзера (возможно есть и другие применения, но я их пока не придумал).

Конечно, почти аналогичного поведения можно добиться и при использовании обычных ключевых слов, но этот подход более надёжен. Несмотря на более сложную запись рекомендую именно этот вариант.

Итак, в настоящее время есть два типа метаинформации: автор сообщения (author) и теги (tag). Соответственно ими мы и можем оперировать.

Пример:

add {tag:*juick}

add -{author:@bad_user}

add {author:@good_user}

Первая строка - подписка на тег, вторая - блокировка сообщений от пользователя @bad_user (стоп-лист работает и здесь), третья - просто эмуляция жуйковской стандартной подписки на пользователя @good_user.

Как видно из примера - ключевые слова, касающиеся метаинформации, оборачиваются в фигурные скобки {}, формат внутри скобок тоже, думаю, понятен: сначала указываем тип информации ('tag' или 'author') далее двоеточие (':') и значение, например, название тега. Пробелы вокруг ':' не допускаются.

Учёт точного совпадения подстроки

На обычные ключевые слова накладываются определённые ограничения, например, в них нельзя использовать некоторые символы т.к. они рассматриваются как граница слова. Если вам не нужен учёт границ слов и вы хотите добавить ключевое слово, содержащее спецсимволы, то этот раздел для вас.

Ключевые слова точного совпадения добавляются так же как и обычные, за исключением того, что они заключены в кавычки ("). С учётом экранирования аргументов это может выглядеть, например, так:

add \"juick.com\"

add '"juick.com"'

Стоп слова в такой форме тоже работают, например:

add -\"juick.com\"

add '-"juick.com"'

add -'"juick.com"'

FAQ

Как я могу подписаться на тег?

Подписаться на тег можно двумя способами: добавлением ключевого слова с * в начале, например, "*juick":

Пример:

add *juick *jubo

Недостатки этого метода - возможны ложные срабатывания, например, если вы подписались на тег *juick, то вам будут приходить также сообщения с начинающимися на "*juick" тегами, например, "*juickbot". Можно рассматривать это как фичу, но если эта т.н. "фича" вам не нужна, то можете указать границу слова и добавить "*juick|".

Второй способ: использование метафильтра, этот способ более сложный и неинтуитивный, но более надёжный, поэтому именно его рекомундуется использовать. Хотя, если вас устраивает первый вариант - пользуйтесь им. Итак, второй способ ниже.

Пример:

add {tag:*juick} {tag:*jubo}

Как я могу подписаться на сообщения, адресованные мне?

По аналогии с предыдущим вопросом, добиться этого можно через добавления ключевого слова с @ в начале, следует также указать границу слова, например, "@username|".

Пример:

add @username|

Я хочу добавить кейворд с символами ' или ", но у меня ничего не получается

Для того чтобы добавить ключевое слово с символами ' или " надо их заэкранировать символом \. Например:

add {tag:*d\'n\'b}

или же вхять в кавычки другого "типа":

add "{tag:*d'n'b}"

Мне приходят мои же сообщения, как этого избежать?

Для этого существует команда nick.

В прошлой версии бота приходилось использовать стоп-слово "-@ваш_ник:" - если вы использовали это решение, то я рекомендую вам избавиться от него как от потенциально опасного.

Техническая информация

Поиск ключевых слов

Поиск ключевых слов осуществляется не по тексту исходного сообщения, а по уже отформатированному, т.е. по тому, которое вы видете когда получаете сообщение от жуйки или от бота, за исключением последней строки с номером и ссылкой (она при поиске ключевых слов не учитывается).

Используемое ПО

Бот написан на PHP на базе открытой библиотеки PJC.

Жалобы и предложения

Связаться с разработчиком можно через Jabber: JID arepo@nologin.ru

Пишите туда по любым вопросам функционирования бота, а так же по поводу опечаток, неточностей в описании и помощи и т.п. В общем по любому поводу ;)