Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> jab bot 
:(
    Опции темы
reddim
Дата 22.10.2011, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 10.10.2011

Репутация: нет
Всего: нет



Код

#! /usr/bin/perl 
 
use strict;
use IO::Socket;
use Net::XMPP; 
use utf8;
 
        my $hostName = 'jabber.alpari.org'; 
        my $portNumber = 5222; 
        my $port = 4550;
        my $componentName = ''; 
        my $userName = 'unixbot'; 
        my $fullUserName= '[email protected]';
        my $passWord = 'unix123bot'; 
        my $resource = 'work'; 
        my $tls = 1; 
        my $connectionType = 'tcpip'; 
        my $conferenceName = '[email protected]';
        my $debugLevel = 1; 
        my $bot = new Net::XMPP::Client(
        debuglevel => $debugLevel
                                        ); 
 
# Создаем сокет
        socket(SOCK, # Указатель сокета
        PF_INET, # коммуникационный домен
        SOCK_STREAM, # тип сокета
        getprotobyname('tcp') # протокол
        ) or die ("Не могу создать сокет!");
        setsockopt(SOCK, SOL_SOCKET, SO_REUSEADDR, 1);
 
# Связываем сокет с портом
        my $paddr = sockaddr_in($port, INADDR_ANY);
        bind(SOCK, $paddr) or die("Не могу привязать порт");
# Ждем подключений клиентов
        print "Ожидаем подключения...\n";
        listen(SOCK, SOMAXCONN);
 
        $bot->SetCallBacks( 
                onconnect => \&connectedCB,
                onauth => \&authedCB, 
                ondisconnect => \&disconnectedCB
                ); 
 
        $bot->Execute( 
                hostname => $hostName, 
                port => $portNumber, 
                tls => $tls, 
                username => $userName, 
                password => $passWord, 
                resource => $resource, 
                register => 0, 
                connectiontype => $connectionType
        ); 
 
        sub connectedCB { 
                print "Connected\n"; 
                } 
 
        sub authedCB { 
                print "Authed\n"; 
                $bot->PresenceSend(show=>"available");
                $bot->PresenceSend(to=>$conferenceName."/".$userName); 
                while (my $client_addr = accept(CLIENT, SOCK)){
                        my $data;
                        my $count = sysread(CLIENT, $data, 1024);
                        chomp($data);
                        print CLIENT "$data";
                        $bot->MessageSend(to => $conferenceName,body=> $data,type=>"groupchat"); 
                        print CLIENT "Hello, world\n";
                        close(CLIENT);
 
                }
        } 
 
        $bot->Disconnect();
 
        sub disconnectedCB { 
        print "Disconnected\n"; 
        }


Такой вопрос как реализовать что бы бот заходил на канал с паролем
И можно ли реализовать запись логов в файл
PM MAIL   Вверх
Ramirez
Дата 23.10.2011, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 305
Регистрация: 18.1.2005
Где: Moscow, ExUSSR

Репутация: 4
Всего: 5



если верить http://search.cpan.org/~hacker/Net-XMPP-1....Net/XMPP/JID.pm
то выбор комнаты/канала: 
Код

$JID->SetJID('[email protected]/myresource');



про авторизацию на канале есть немного тут http://barnowl.mit.edu/browser/perl/lib/Ne...0e6d8f2ef44e9b3

функция Join:
Код

my $conn = Net::XMPP::Connection(...)

....

my $presence = Net::XMPP::Presence->new;
$presence->SetTo($self->JID);
my $x = $presence->NewChild('http://jabber.org/protocol/muc');
$x->SetPassword($password});
$conn->Send($presence);





Это сообщение отредактировал(а) Ramirez - 23.10.2011, 11:44
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0430 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.