Бот позволяет более гибко следить за новыми сообщениями в сервисе микроблоггинга 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-ленте, например, чтобы использовать её в Yahoo Pipes или Google Reader или иных агрегаторах. Кроме того для чтения RSS не нужен Jabber-клиент.
Для включения или выключения доставки сообщений через жаббер используется команда spam:
Для включения или выключения 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"'
Подписаться на тег можно двумя способами: добавлением ключевого слова с * в начале, например, "*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
Пишите туда по любым вопросам функционирования бота, а так же по поводу опечаток, неточностей в описании и помощи и т.п. В общем по любому поводу ;)