Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: patcher для rtorrent (на php)
Re-Tracker | Система локальных ретрекеров | Ретрекер > РеТрекер > Патчер торрентов
nkk
Как я понял, здесь патчер отдельно от рторрента существует.
Если рторрент работает совместно в wTorrent`ом и только через него производятся все операции с файлами, давайте подумаем, как на него навесить патчер?!

-------------------------------------------------------------------

Все, сделал.
1. Открыть /conf/user.conf.php и дописать
Код
define ('TRACKER_URL', 'http://127.0.0.1:80/announce');// GPK INJECTION
где 127.0.0.1 - хост ретреккера, 80 - порт, /announce - путь

2. Открыть /wt/cls/AddT.cls.php, найти в нем
Код
if($private == 'on'){.......}
и дописать после закрывающей скобки (строка ~201)
CODE
// GPK INJECTION {
elseif(TRACKER_URL){
$torrent = new BDECODE($uploadfile);
$bencode = new BEncodeLib();
if($torrent->result['announce']){
if($torrent->result['announce-list']){
if(!in_array($tmp = array(TRACKER_URL), $torrent->result['announce-list']))
$torrent->result['announce-list'][] = $tmp;
}
elseif($torrent->result['announce'] != TRACKER_URL)
$torrent->result['announce-list'] = array(array($torrent->result['announce']), array(TRACKER_URL));
}
else
$torrent->result['announce'] = TRACKER_URL;
file_put_contents($uploadfile,$bencode->bencode($torrent->result));
}
// GPK INJECTION }

После чего, если в конфигурационном файле определена константа TRACKER_URL и торрент загружается без выставления опции `Частное` на странице загрузки (а не то `частное`, которое отмечается при создании торрента), то в список треккеров будет добавлен Ваш. Если же в торренте не было указано ни одного треккера, Ваш будет единственным.

Если же хотите добавлять треккер и для частных торрентов, удалите else в строке elseif(TRACKER_URL){

-------------------------------------------------------------------

И, раз уж тема от специфическом торрент-клиенте, подскажите, как можно, ограничивая скорость по одному интерфейсу, не ограничивать ее по другому или как настроить рторрент чтобы он не ограничивал скорость отдачи определенным пользователям?
FreeM@N
Цитата(nkk @ 27.11.2009, 16:23) *
Если рторрент работает совместно в wTorrent`ом и только через него производятся все операции с файлами, давайте подумаем, как на него навесить патчер?!

Вариант smile.gif
Цитата(nkk @ 27.11.2009, 16:23) *
И, раз уж тема от специфическом торрент-клиенте, подскажите, как можно, ограничивая скорость по одному интерфейсу, не ограничивать ее по другому или как настроить рторрент чтобы он не ограничивал скорость отдачи определенным пользователям?

Никак, у rtorrent-а один пользователь, точнее у него вообще нет такого понятия, многопользовательский режим реализуется только через wTorrent, соответственно скорость ограничивается всем пользователям.
nkk
FreeM@N, под пользователями я имел ввиду пиров >_<.

Выложил исходник, вроде, работает.

Скрипт, который апдейтит существующие торренты, пишется схожим образом.
CODE
<?
require ('conf/user.conf.php');
require ('lib/bdecode/class.bdecode.php');
require ('lib/bdecode/bencode.php');
foreach (glob('/usr/home/ftpall/session/*.torrent') as $file){
$torrent = new BDECODE($file);
$bencode = new BEncodeLib();
if(!$torrent->result)
continue;
if($torrent->result['announce']){
if($torrent->result['announce-list']){
if(!in_array($tmp = array(TRACKER_URL), $torrent->result['announce-list']))
$torrent->result['announce-list'][] = $tmp;
}
elseif($torrent->result['announce'] != TRACKER_URL)
$torrent->result['announce-list'] = array(array($torrent->result['announce']), array(TRACKER_URL));
}
else
$torrent->result['announce'] = TRACKER_URL;
file_put_contents( $file, $bencode->bencode($torrent->result));
}
?>
Следует учесть, что папка /usr/home/ftpall/session/*.torrent не простая, нужно сделать chmod 666 /usr/home/ftpall/session/*.torrent и chmod 777 /usr/home/ftpall/session
FreeM@N
Цитата(nkk @ 28.11.2009, 1:25) *
FreeM@N, под пользователями я имел ввиду пиров >_<.

От этого что-то изменилось? Разве в rtorrent можно ограничить скорость отдачи отдельному пиру? (я не пользуюсь ограничениями вообще, так что извиняйте - не в курсе)
nkk
Ой, спасибо за форк =))

Теперь это отдельная тема с обсуждением глюков и недоработок именно этого скрипта =)
FreeM@N
Есть вариант сделать модификацию wTorrent-a и отправить её автору - возможно он её включит в trunk.
nkk
FreeM@N, я не буду этим заниматься, как и обновлением wTorrent`а на своем клиенте, т.к. вижу множество недостатков, которые лень дорабатывать:
0) дофигища доработок самого wTorrent,
1) увеличение количества дополнительных ретреккеров - то же самое, но с массивом,
2) навеска дополнительных параметров "для статистики",
3) расширение формы добавления торрент-файлов, чтобы пользователь сам вводил треккеры.
4) работа с треккерами торрентов, уже имеющимися в списке...

Если вам это интересно, я не против.
FreeM@N
Понятно, я предполагал это в виде секции настроек у администратора - задаётся один раз и нигде больше не показывается, а также обработка при загрузке торента, ИМХО этого достаточно. Торенты, уже имеющиеся в списке, можно обработать патчером на perl-e.
nkk
Ненавижу перл. Хоть начинал свое образование веб-программирования с книги с примерами именно на перле - "CGI-программирование". Уж очень он страшный. PHP, имхо, проще =)

Кстати, да, приведенный выше патчер уже имеющихся торрентов как бы не относится напрямую к wTorrent
FreeM@N
Цитата(nkk @ 30.11.2009, 0:02) *
Ненавижу перл. Хоть начинал свое образование веб-программирования с книги с примерами именно на перле - "CGI-программирование". Уж очень он страшный. PHP, имхо, проще =)

Так там уже всё сделано - берите и пользуйте smile.gif
Цитата(nkk @ 30.11.2009, 0:02) *
Кстати, да, приведенный выше патчер уже имеющихся торрентов как бы не относится напрямую к wTorrent

Разве? А вот это не из wTorrent-a подключается:
Код
require ('conf/user.conf.php');
require ('lib/bdecode/class.bdecode.php');
require ('lib/bdecode/bencode.php');
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
пїЅпїЅпїЅпїЅпїЅ IP.Board © 2001-2024 IPS, Inc.