myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 
История благодарностей участнику mrsir. Спасибо сказали: 1
Дата поста: В теме: За сообщение: Спасибо сказали:
16.2.2010, 14:14 perl Net::DirectConnect
вот пример моего простого бота, который делает запрос по TTH и печатает результаты ответов

Раскрывающийся текст

Код
#!/usr/bin/perl

use 5.10.0;
use strict;
use IO::Socket::INET;
eval { use Time::HiRes qw(time sleep); };

use lib '../lib';

use Net::DirectConnect;    #::clihub;
use Data::Dumper;

$Data::Dumper::Sortkeys = $Data::Dumper::Useqq = $Data::Dumper::Indent = 1;

my $dc = Net::DirectConnect->new(
'host'           => 'dchub://example.ru:411',
'Nick'         => "Spy",
'Pass'         => '*****',
'M'            => 'A',
'reconnects'   => 500,

#следующие три параметра указывать если бот за NATом, на нате включить портфорвардинг
'myport'       => 4444,
'myport_udp'   => 4444,
'myip'           => '10.0.0.2',
################################
'S'           => 20,
'O'           => 0,
'sharesize'    => 1000099800000,

'client'       => 'dc++',

'V'            => '0.777',

'description'  => 'spy',
'connection'   => 'LAN(T3)',
'email'           => '',

'flag'           => 1,

'log'          => sub(){},

'auto_GetINFO' => 0,
);



#эта функция вызывается тогда когда к боту приходит поисковый запрос
$dc->{'handler'}{'Search'} = sub
{
    my $dc = shift;
    my $s = shift;
    #print $s."\n" if !($s =~ m/tth:/i);
};

#эта функция вызывается тогда когда к боту приходит результат на его(бота) поисковый запрос
$dc->{'handler'}{'SR'} = sub
{
    my $dc = shift;
    my %s = %{ $_[1] || return };
    if ($s{tth} ne '')
    {
        print $s{nick}.':::'.$s{filename}."\n";
    }
};

my $i = 0;
while ($dc->active())
{
    if ($i == 1000)
    {
        $dc->search('6U4DTAKUXPXNUXNS366T5CS7ALJZWRQ2PH4ZSMI');
    }
    
    $dc->work();
    $i++;
}

$dc->wait_finish();
$dc->disconnect();
exit 0;

KenGuru

RSS Сейчас: 18.4.2024, 7:35