Документация по ОС FreeBSD Среда, 01.05.2024, 18:08
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Apache [58]
DNS [25]
FTP [27]
Mail [74]
Samba [24]
Squid [46]
SSH [23]
VPN [35]
РРР [20]
Net [173]

Главная » Статьи » Сеть » Net

Использование micq для создания ICQ ботов
Давно была идея сделать icq bot'a, и требовалось от него реагировать на определенные команды + оповещение.
 
Можно написать своего icq bot'a используя библиотеки работы с icq, благо х можно свободно  скачать из интернета. Мой выбор пал на консольного cq клиента micq (http://www.micq.org).
 
Конфигурация самой программы micq не сложна, программа попросит весть же существующие uin/pass, либо зарегистрировать новые.
 
Теперь основное, выбрал я micq потому что у неё есть так называемый emote-control - это обычный pipe, который позволяет общаться с рограммой, запустив её например в background.
 
Запустите программу (если вы не укажите параметр -b BASEDIR, то программа будет хранить все свои файлы у вас в ~/.micq/), в pipe нужно писать теже команды, которые вы бы писали в самой micq, например.
 
    echo "msg UIN hello, kotiki rulez tommorow" > BASEDIR/remote-control
                    - эта комманда пошлёт UIN'у сообщение "hello, kotiki rulez tommorow",
                    или:
    echo "finger UIN" > BASEDIR/remote-control
                    - выдаст в micq информацию о UIN'e
                   
т.е. хотя бы на базе этого можно уже написать скрипты, который будут оповещать вас о чем то.
 
Теперь, нужно чтобы бот реагировал на определенные команды и отсылал результат этих команд.
 
Нужно придумать механизм общения самой icq, с каким то вашем внешнем обработчиком, ничего лучше чем pipe придумать нельзя :).
 
создаем pipe: mkfifo /tmp/micq.pipe и говорим чтобы micq весь свой вывод перенаправляла в него:
 
    /home/spanka/micq -b /var/tmp/icq > /tmp/micq.pipe
 
чтобы проверить, что все работает как надо, запустите
    tail -f /tmp/micq.pipe
 
и вы должны увидеть, вывод программы micq.
 
Теперь вам осталось написать программу которая читает пайп и парсит вывод micq.
 
Для примера вот заготовка :))
 
    #!/usr/bin/perl
    open(FIFO, "<$ARGS[0]") || die "Can't open file: $ARGS[0]";
    while () {
            тут_вы_уже_сами_парсите.
    }
    close(FIFO);
 
ну и последние, чтобы запустить micq в background я пользую довольно корявый способ, если найдете лучше, буду только рад :)
 
    /usr/local/bin/icq_parsers.pl /tmp/icq.pipe >/dev/null 2>&1                              #parser
    tail -f /dev/null | /home/spanka/micq -b /var/tm/icq > /tmp/icq.pipe 2>&1 &     #micq
 
 
Автор: spanka 
Категория: Net | Добавил: oleg (11.11.2007)
Просмотров: 1006 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024