ARX-Bot - Информационный Icq-бот.
Навигация
  • Первая
  • Контакты
  • FAQ
  • Помощь проекту

  • Боты
  • ARX-Bot #1 − 56544550
  • ARX-Bot #2 − 4298969
  • ARX-Bot #3 − 8396869
  • ARX-Bot #4 − 7570907
  • ARX-Bot #5 − 8808780
  • ARX-Bot #6 − 8558580
  • ARX-Bot #7 − 8996898

  • Создание ICQ ботаПолезно » Статьи
    Предисловие
    Начну с того, что я решил написать своего ICQ бота и столкнулся с рядом проблем: недостаток документации, не нашел готовых ботов, чтобы посмотреть и переделать под себя, в основном все было под Windows...

    Дело сдвинулось с мертвой точки когда прочитал статью на opennet.ru, где описывался принцип создания бота с использованием micq... Но здесь мне не понравились некоторые моменты: сообщения от micq приходили не в "чистом" виде, а приходилось обрабатывать вывод программы micq, что, мягко говоря, не удобно...

    В принципе, только это мне и не нравилось... Хотя, быть может, я просто что-то неправильно понял... Поэтому решил попробовать сделать свое, но с помощью licq... Хотя получилось почти по тому же принципу, и статья с opennet.ru здесь сильно помогла...

    Немного теории
    В общих чертах все это выглядит так: создаем для бота индивидуальные настройки (чтобы можно было использовать и нашу основную аську), запускаем licq и включаем только модуль autoreply, который все входящие сообщения передает нашему скрипту... Скрипт обрабатывает сообщение и ответ передает аське ответ... Для управления же аськой, как и в случае с micq есть пайп BASEDIR/licq_fifo (BASEDIR - каталог с настройками бота)...

    Практика
    Итак, сначала надо зарегистрировать новый uin для бота...

    Далее, нужно создать каталог для настроек аськи бота:

    $ mkdir ~/icq_bot


    Начальные настройки возьмем из каталога licq по умолчанию ~/.licq:

    $ cp -R ~/.licq/* ~/icq_bot/


    И изменим в файле ~/icq_bot/owner.uin параметры Password и Uin на пароль и номер аськи нашего бота:

    $ cat ~/icq_bot/owner.uin | sed "s/^Password\s*=.*$/Password = /i; s/^Uin\s*=.*$/Uin = /i" > ~/temp
    $ mv ~/temp ~/icq_bot/owner.uin


    Теперь для изменения остальных настроек бота можно запустить licq как обычно, но с настройками бота:

    $ licq -b ~/icq_bot/


    Осталось настроить плагин licq autoreply, который будет передавать сообщения нашему скрипту... Для этого надо создать файл licq_autoreply.conf в каталоге с настройками нашего бота... Пример этого файла есть в документации к licq... А вот то, что сделал я:

    $ cat > ~/icq_bot/licq_autoreply.conf << EOF
    #Begin of ~/icq_bot/licq_autoreply.conf

    [Reply]
    Program = ~/icq_bot/icq_bot.pl
    Arguments = %u
    PassMessage = 1

    #End of ~/icq_bot/licq_autoreply.conf
    EOF


    Теперь сообщения, присыланные боту будут перенаправлены на стандартный ввод нашего скрипта, указанного в параметре Program файла licq_autoreply.conf... Это обеспечивается установкой параметра PassMessage в единицу... В качестве аргумента скрипту будет передан только uin того, кто прислал сообщение...

    Осталось написать сам скрипт, т. е. создать файл ~/icq_bot/icq_bot.pl:

    $ cat > ~/icq_bot/icq_bot.pl << EOF
    #!/usr/bin/perl

    $uin = $ARGV[0];

    print $_ while ();
    EOF
    $ chmod a+x ~/icq_bot/icq_bot.pl


    Здесь вместо эхоответа вы, вероятно, сделаете свою обработку сообщений... Кроме того, вы можете управлять аськой бота посредством пайпа ~/icq_bot/licq_fifo просто записывая в него команды... Подробное описание команд можно найти в документации к licq...

    Осталось только запустить нашего бота:

    $ licq -b ~/icq_bot/ -p autoreply -- -e -l online > /dev/null 2>&1 &


    Для остановки бота используем следующую команду:

    $ echo "exit" > ~/icq_bot/licq_fifo


    Вам, наверное, будет удобнее написать отдельный скрипт для запуска и остановки бота...

    Автор: Антон Горев aka Вий
    [ автор: poison / дата: 14 декабря 2007 / просмотров: 1885 / напечатать ]
    #4 Антон Горев aka Вийцитировать  
    вопрос: как получить строку с пришедшим сообщением?

    Читаешь со стандарртного ввода:
    @s = <STDIN>;
    В @s будет написанное сообщение.
    Далее, нужно создать каталог для настроек аськи бота обьясни попонятнее

    Надо создать каталог, в котором будем хранить настройки (файлы конфигурации) licq, на основе которой мы и делали бота.

    Статью с ошибкой перепечатали (Точнее как тег рассмотрели <STDIN>). Вместо
    print $_ while ();
    должно быть
    print $_ while (<STDIN>);


    Кстати, оригинал находится на veei.elabugae.ru
    Комментариев: 0 | Регистрация: -- | Icq: -- |
    # Антон Горев aka Вий (15 августа 2008 18:48)
    вопрос: как получить строку с пришедшим сообщением?

    Читаешь со стандарртного ввода:
    @s = <STDIN>;
    В @s будет написанное сообщение.
    Далее, нужно создать каталог для настроек аськи бота обьясни попонятнее

    Надо создать каталог, в котором будем хранить настройки (файлы конфигурации) licq, на основе которой мы и делали бота.

    Статью с ошибкой перепечатали (Точнее как тег рассмотрели <STDIN>). Вместо
    print $_ while ();
    должно быть
    print $_ while (<STDIN>);


    Кстати, оригинал находится на veei.elabugae.ru

    # michak (13 июня 2008 19:50)
    вопрос: как получить строку с пришедшим сообщением?

    # Snake (30 мая 2008 09:28)
    Далее, нужно создать каталог для настроек аськи бота обьясни попонятнее


    непонял обьясни попроще

    # Darna (24 декабря 2007 20:02)
    м, спасибо. я полгода назад тоже хотела создать бота, и действительно, инфы днём с огнём не сыщещь )

    Добавление комментария

    Имя:
    E-Mail:


    Включите эту картинку для отображения кода безопасности
    обновить код

    Юзер панель
    логин : 
    пароль : 
      

    Хочу к вам!
    Восстановить пароль за $2

     

    © 2007 ARX-Bot's (www.arx-bot.info) by Poison

    arx-bot's Music  службы мониторинга серверов В Контакте | ARX-Bot user's