QIP Home QIP Forum

Go Back   QIP Forum > Все для QIP 2012 > QIP 2012. Доступные модули и утилиты. Plugins.

QIP 2012. Доступные модули и утилиты. Plugins. Здесь постить сами модули(плагины), утилиты и темы для их обсуждения.

Reply
 
Thread Tools Display Modes
Old 17.04.2008, 04:45   #1
suitepee
QIP Newcomer
 
Join Date: 11/2006
Posts: 48
Default QIP Bot

Представляю вашему вниманию плагин QIPBot — автоматический отвечатель, который можно настроить как душе угодно :).


Описание

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

Шаблоны берутся из файла reg.txt. Синтаксис таков:
Регулярное выражение
Условия и параметры ответа
Ответ 1
Ответ 2 и т. д.
<Пустая строка>
Регулярное выражение
<...>

и так далее.

При получении сообщения плагин проверяет собеседника на наличие в белом и отсутствии в черном списках (по желанию пользователя), затем ищет первое присутствующее в сообщении регулярное выражение. После, производит замену по правилу, описанному в поле «ответ» (если их несколько, выбирается случайно) и отправляет сообщение обратно. Тот, кто знаком с Perl-регулярными выражениями, все понял :)
Бот работает и в ICQ, и в Jabber'е с Mail'ом.

Примеры использования (самые примитивные, на самом деле у регулярных выражений возможностей масса):

Code:
^(?i)(.*)http://.{1,}$

Боян!
Баян.
Отправляет слово «боян», в ответ на любую ссылку.

Разберем пример:
^ — начало сообщения, нужно ставить, чтобы замена исключала из ответа само сообщение.
(?i) — модификатор, включает регистро-независимый режим.
(.*) — любое количество любых символов. Точкой обозначается любой символ, а звездочкой - любое количество.
http:// — текст, обычно присутвующий в ссылке.
.{1,} — любые символы в количестве от 1 до бесконечности.
$ — конец сообщения.

Code:
^(?i)(.*)(http://|www\.)(.*)\.(.{1,5})(.*)$
Более сложная версия.

Code:
^(?i)Привет.{0,3}$

Здравствуй.
Здоровается со всеми.

Code:
^(?i)Ты (.{1,9})(!{0,})$

Сам $1!
Сам ты $1
Отвечает на сообщения вида «ты *!» сообщением «сам ты *». Например:
— Ты дурак.
— Сам дурак!

Code:
^(.*)$
w=123456;654321
Ну $1. И че дальше?
Отвечает пользователям 123456 и 654321 на любую реплику "Ну <реплика>. И че дальше?".


Синтаксис параметров ответа

Параметры обозначаются одной буквой, значение отделяется от параметра знаком равно (=), разные параметры разделяются символом вертикальной черты(|). Например:
Code:
t=1000|w=123456;654321|s=1;2|l=1
Данная строка обозначает, что время ожидания данного ответа будет 1000 миллисекунд, назначает для данного ответа белый список 123456;654321, ставит условие ответа при статусах 1 и 2 и включает воспроизведение звука для данного ответа в независимости от настроек плагина по умолчанию.

Список параметров:
t — время ожидания перед ответом (если не указать, будет использовано время ответа по умолчанию)
w — белый список аккаунтов через точку с запятой для данного ответа (заменяет собой белый список в настройках плагина, т. е. он будет проигнорирован).
b — черный список (задан может быть либо черный список, либо белый)
y — воспроизводить звук при данном ответе (1 - да, что-либо другое - нет)
s — список онлайн статусов через точку с запятой при которых будет срабатывать этот ответ (для того чтобы, посмотреть соответствия номеров статусам нажмите кнопку с вопросом около настроек статусов по умолчанию)
p — список приватных статусов через точку с запятой, при которых будет срабатывать этот ответ
l — метка ответа (любая последовательность символов)
c — если задан этот параметр, то ответ будет срабатывать, только если метка предыдущего ответа данному собеседнику была равна значению этого параметра). Пример использования меток:

Code:
^привет$
c=privet2
Да сколько можно?!

^привет$
c=privet|l=privet2
Уже здоровались...

^привет$
l=privet
Здравствуй.
Одна строка без обозначений параметра будет воспринята как белый список (для совместимости с предыдущими версиями).

Изучить построение регулярных выражений можно в приложенном справочном файле компонента RegExp (который, кстати, использовался в проекте), раздел «синтаксис», либо в википедии.

Приветствуется выкладывание в эту тему своих шаблонов, дающих интересные способы применения плагина :).

Версия 0.6
— Несколько мелких исправлений.

Версия 1.0beta
— Полная переделка и уйма наворотов.

Немного усовершенствованная версия 1.0beta elimS Edition

Анимированный скриншот

Attached Files
File Type: rar QIPBot1.0beta.rar (266.7 KB, 23180 views)
File Type: rar QIBot1.0beta_src.rar (58.2 KB, 6813 views)

Last edited by Providence; 17.11.2010 at 23:20.
suitepee вне форума   Reply With Quote
Old 17.04.2008, 09:19   #2
Марфа
QIP Elder
 
Марфа's Avatar
 
Join Date: 03/2008
Posts: 1,167
Default

щас и этого скачаем.... Он хоть с базой?
Марфа вне форума   Reply With Quote
Old 17.04.2008, 09:28   #3
UksusoFF
QIP Elder
 
UksusoFF's Avatar
 
Join Date: 12/2006
Posts: 595
Default

suitepee,
Крута! пасип!) Пригодится на экзаменах) Слушай, а ты не мог бы сделать бота-переводчика? чтобы присылаеш ему сообщение на русском, а он тебе его на английском назад?????? был бы очень благодарен!
UksusoFF вне форума   Reply With Quote
Old 17.04.2008, 09:40   #4
Марфа
QIP Elder
 
Марфа's Avatar
 
Join Date: 03/2008
Posts: 1,167
Default

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

и, еще разаработчик, наверно, в курсе, но все же
Attached Thumbnails
Click image for larger version

Name:	1.jpg
Views:	7205
Size:	16.8 KB
ID:	9878  
Марфа вне форума   Reply With Quote
Old 17.04.2008, 09:52   #5
iwfriends
QIP User
 
iwfriends's Avatar
 
Join Date: 01/2008
Posts: 414
Default

Quote:
Originally Posted by UksusoFF View Post
Слушай, а ты не мог бы сделать бота-переводчика?
дык а в чем проблема ему базу расширить?

Quote:
Originally Posted by UksusoFF View Post
Пригодится на экзаменах)
Вот это ты реально точно подметил.
__________________
http://twitter.com/formalizator
iwfriends вне форума   Reply With Quote
Old 17.04.2008, 12:18   #6
VitZi
QIP Newcomer
 
Join Date: 11/2007
Posts: 16
Default

Работает только в асе с jabber'ом нет?
VitZi вне форума   Reply With Quote
Old 17.04.2008, 12:26   #7
Марфа
QIP Elder
 
Марфа's Avatar
 
Join Date: 03/2008
Posts: 1,167
Default

Если написать "Ты то-то се-то" то он реагирует только на фразу из двух слов, а не более
Марфа вне форума   Reply With Quote
Old 17.04.2008, 12:29   #8
suitepee
QIP Newcomer
 
Join Date: 11/2006
Posts: 48
Default

ex Me, точно, опять забыл на Label'ах кодировку поставить, с моим "фирстильном" Verdana она иногда сбивается ;)

ex Me, так это намеренно.
Выражение ".{0,3}" - ознчает "от нуля до трех любых символов".
А вообще база приведена исключительно для примера. Возможно, потом добавлю побольше прикольных примеров использования. Либо пользователи придумают ;)

VitZi, я не ставил никаких ограничений, так что все зависит от самого Infium'а.
suitepee вне форума   Reply With Quote
Old 17.04.2008, 16:12   #9
UksusoFF
QIP Elder
 
UksusoFF's Avatar
 
Join Date: 12/2006
Posts: 595
Default

Quote:
дык а в чем проблема ему базу расширить?
Проблема в том что в ручную это замучаешся делать... а было бы не плохо если бы бот брал слова из какогонить известного словаря например Lingvo.
Quote:
база, конечно, маловата, а от руки ее дописывать сами не все захотят, это уж точно
я так полагаю что это не "бот болтун" это для несколько другиц целей....

suitepee,
Ну так чо на счет переводчика?)

добавлено через 1 минуту
ex Me,
замени кодовую страницу в реестре тогда все будет нормально отображаться

Last edited by UksusoFF; 17.04.2008 at 16:12. Reason: Добавлено сообщение
UksusoFF вне форума   Reply With Quote
Old 17.04.2008, 19:50   #10
suitepee
QIP Newcomer
 
Join Date: 11/2006
Posts: 48
Default

UksusoFF, ну это легко, а смысл? :)
suitepee вне форума   Reply With Quote
Old 17.04.2008, 20:22   #11
UksusoFF
QIP Elder
 
UksusoFF's Avatar
 
Join Date: 12/2006
Posts: 595
Default

Quote:
Originally Posted by suitepee View Post
UksusoFF, ну это легко, а смысл? :)
эээ.... всмысле смысл? о_О Бот переводчик) удобно на паре пользоваться только все общественные боты тормозят из-за нагрузок. А это дома поставил и пошол на пару)
UksusoFF вне форума   Reply With Quote
Old 18.04.2008, 00:59   #12
Марфа
QIP Elder
 
Марфа's Avatar
 
Join Date: 03/2008
Posts: 1,167
Default

а на него никак не повесить сообщение ушел, как в DC ++ на личку в конференциях?
Раз уж он не для разговоров...

добавлено через 2 часа 36 минут
вот
http://forum.qip.ru/showpost.php?p=209225&postcount=29
и вот
http://forum.qip.ru/showpost.php?p=209228&postcount=30

Last edited by Марфа; 18.04.2008 at 00:59. Reason: Добавлено сообщение
Марфа вне форума   Reply With Quote
Old 18.04.2008, 01:55   #13
Shedko
QIP Elder
 
Shedko's Avatar
 
Join Date: 10/2006
Posts: 691
Default

suitepee,
по поводу ошибки, что ex Me описывает:
PM_PLUGIN_RUN в плагин не приходит когда он выключен в модулях, но вот PM_PLUGIN_QUIT все равно в плагин придет, поэтому смотрите в сторону SavePluginOptions и FreeControls, может в SavePluginOptions есть ссылки на какой компонент, который при выключенном плагине не создается, так как вызова CreateControls небыло. Или же в FreeControls есть уничтожение чего либо без проверки, что оно Assigned .


ни в коем случае не хотел обидеть данной ремаркой, мне тоже так тут на форуме люди помогали в меру своих возможностей, надеюсь что смог помочь вам.
__________________
Programming is like sex: one mistake and you have to support it for life.
Shedko вне форума   Reply With Quote
Old 18.04.2008, 02:13   #14
Selff
QIP Newcomer
 
Join Date: 06/2007
Posts: 7
Default

а моно какнибуть прописать энтр без переноса в блокноте на новою строку... а то ведь сволоч он будет писать только по одной строчки стиха)))
Selff вне форума   Reply With Quote
Old 18.04.2008, 02:35   #15
suitepee
QIP Newcomer
 
Join Date: 11/2006
Posts: 48
Default

Shedko, не понял, почему вы подумали что я решу обидеться. Я давно заметил, что в Infium какие-то глюки с сохранением опций. У меня проверяется Assigned(aPluginSpecific), но вот сами параметры берутся с формы, а существует ли она не проверяется. Наверное, в этом ошибка, посмотрю.

Selff, пока не знаю даже, простой \n не срабатывает. Но возможно, что это возможно.
suitepee вне форума   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +4. The time now is 06:00.


Powered by vBulletin.
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.
©2004 - 2012 QIP.RU