Здравствуйте, гость ( Вход | Регистрация )
Отправлено: 25.2.2010, 12:04 | |
![]() Абсолютный новичок Группа: Пользователи Сообщений: 5 Регистрация: 10.2.2010 Пользователь №: 6 016 ![]() |
Постепенно на перле пилится такая библиотека Net::DirectConnect. Привет. Хочу сделать еще одно предложение по расширению функционала: Сейчас метод "get" загружает файл полностью, было бы неплохо реализовать частичную загрузку с указанного места в файле и указанное кол-во байт. Такая возможность нужна для получения информации о видео, аудио файле и т.д. Скачал первые 10 Кб - и все стало ясно)) |
Форум: Отдельные боты · Просмотр сообщения: #27530 · Ответов: 33 · Просмотров: 44 210 |
Отправлено: 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 |
Отправлено: 16.2.2010, 13:01 | |
![]() Абсолютный новичок Группа: Пользователи Сообщений: 5 Регистрация: 10.2.2010 Пользователь №: 6 016 ![]() |
Библиотека Net::DirectConnect позволяет делать поиск по ттх, достаточно при поиске в методе search указать искомый TTH я так рассчитываю банить юзеров за порнушку |
Форум: Отдельные боты · Просмотр сообщения: #27032 · Ответов: 33 · Просмотров: 44 210 |
Отправлено: 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 |
Отправлено: 10.2.2010, 15:36 | |
![]() Абсолютный новичок Группа: Пользователи Сообщений: 5 Регистрация: 10.2.2010 Пользователь №: 6 016 ![]() |
сочинен вариант автоматически скачивающий самое популярное файло - 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 |
![]() ![]() ![]() ![]() |
![]() ![]() ![]() ![]() |
![]() |
Сейчас: 3.4.2025, 4:08 |