myDC.ru

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

 

mrsir
Отправлено: 25.2.2010, 12:04


Абсолютный новичок


Группа: Пользователи
Сообщений: 5
Регистрация: 10.2.2010
Пользователь №: 6 016


Цитата(pro @ 29.1.2010, 2:11) *
Постепенно на перле пилится такая библиотека Net::DirectConnect.


Привет.
Хочу сделать еще одно предложение по расширению функционала:
Сейчас метод "get" загружает файл полностью, было бы неплохо реализовать частичную загрузку с указанного места в файле и указанное кол-во байт. Такая возможность нужна для получения информации о видео, аудио файле и т.д. Скачал первые 10 Кб - и все стало ясно))

  Форум: Отдельные боты · Просмотр сообщения: #27530 · Ответов: 33 · Просмотров: 44 210

mrsir
Отправлено: 16.2.2010, 14:14


Абсолютный новичок


Группа: Пользователи
Сообщений: 5
Регистрация: 10.2.2010
Пользователь №: 6 016


вот пример моего простого бота, который делает запрос по 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;

  Форум: Отдельные боты · Просмотр сообщения: #27038 · Ответов: 33 · Просмотров: 44 210

mrsir
Отправлено: 16.2.2010, 13:01


Абсолютный новичок


Группа: Пользователи
Сообщений: 5
Регистрация: 10.2.2010
Пользователь №: 6 016


Библиотека Net::DirectConnect позволяет делать поиск по ттх, достаточно при поиске в методе search указать искомый TTH
я так рассчитываю банить юзеров за порнушку
  Форум: Отдельные боты · Просмотр сообщения: #27032 · Ответов: 33 · Просмотров: 44 210

mrsir
Отправлено: 12.2.2010, 9:15


Абсолютный новичок


Группа: Пользователи
Сообщений: 5
Регистрация: 10.2.2010
Пользователь №: 6 016


еще неплохо было бы добавить в метод search дополнительные параметры поиска - тип файлов, размер и тип поиска по размеру (больше, меньше, равно), а то сейчас приходится юзать sendcmd

и еще вопрос у меня такой - я юзаю бота в сети за NATом, использую порт форвардинг, настройки бота следующие:

M = A
myport = 5556
myport_udp = 5556
myip = 10.0.0.2 (IP файервола с порт форвардингом)

нужно ли какие-либо дополнительные параметры настраивать для использования за NATом? Дело в том, что результаты на поисковые запросы приходят, но их мало. Например, Linuxdc++ при поиске по слову russia возвращает ~800 результатов, а бот всеголишь ~400. Возможно остальное теряется из-за бага, но может я что-то забыл добавить?
  Форум: Отдельные боты · Просмотр сообщения: #26856 · Ответов: 33 · Просмотров: 44 210

mrsir
Отправлено: 10.2.2010, 15:36


Абсолютный новичок


Группа: Пользователи
Сообщений: 5
Регистрация: 10.2.2010
Пользователь №: 6 016


Цитата(pro @ 9.2.2010, 6:14) *
сочинен вариант автоматически скачивающий самое популярное файло - examples/get.pl

сам алгоритм скачивания пока сырой, для лучшести рекомендуется перезапускать скрипт напрмиер каждый час.


Спасибо за модуль. Только жаль документации нет.
Пытаюсь написать бота, столкнулся с некоторыми проблемами:

При создании объекта указываю myport = 41111, но он все равно затирается тем, что по умолчанию прописан в модуле DirectConnect.pm
такая же фигня с атрибутом auto_connect. В перле я не очень хорошо разбираюсь, поэтому прошу помочь решить проблему.

код:

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

Код
#!/usr/bin/perl

use 5.10.0;
use strict;
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://192.168.186.10:411',
'M'            => 'A',
'myport'       => 41111,
'Nick'         => "spy",
'Pass'         => '123',
'S'           => 20,
'O'           => 0,
'lock'         => 'EXTENDEDPROTOCOLABCABCABCABCABCABC Pk=DCPLUSPLUS0.668ABCABC',
'cmd_sep'      => ' ',
'sharesize'    => 1000000000000,
'client'       => 'dc++',
'V'            => '0.777',
'description'  => 'spy',
'connection'   => 'LAN(T3)',
'email'           => '',
'flag'           => 1,
'log'          => sub(){},
'auto_GetINFO' => 0,
);

print 'myport='.$dc->{'myport'}."\n";

exit 0;


  Форум: Отдельные боты · Просмотр сообщения: #26802 · Ответов: 33 · Просмотров: 44 210


New Posts  Открытая тема (есть новые ответы)
No New Posts  Открытая тема (нет новых ответов)
Hot topic  Горячая тема (есть новые ответы)
No new  Горячая тема (нет новых ответов)
Poll  Опрос (есть новые голоса)
No new votes  Опрос (нет новых голосов)
Closed  Закрытая тема
Moved  Тема перемещена
 

RSS Сейчас: 3.4.2025, 4:08