patcher для rtorrent (на php), на основе wTorrent |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
patcher для rtorrent (на php), на основе wTorrent |
![]()
Сообщение
#1
|
|
Активный участник ![]() ![]() ![]() Группа: Пользователи Сообщений: 37 Регистрация: 18.1.2009 Пользователь №: 281 ![]() |
Как я понял, здесь патчер отдельно от рторрента существует.
Если рторрент работает совместно в 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){ ------------------------------------------------------------------- И, раз уж тема от специфическом торрент-клиенте, подскажите, как можно, ограничивая скорость по одному интерфейсу, не ограничивать ее по другому или как настроить рторрент чтобы он не ограничивал скорость отдачи определенным пользователям? |
|
|
![]()
Сообщение
#2
|
|
![]() Активный участник ![]() ![]() ![]() Группа: Главные Админы Сообщений: 661 Регистрация: 15.12.2008 Из: Москва Пользователь №: 15 ![]() |
Если рторрент работает совместно в wTorrent`ом и только через него производятся все операции с файлами, давайте подумаем, как на него навесить патчер?! Вариант ![]() И, раз уж тема от специфическом торрент-клиенте, подскажите, как можно, ограничивая скорость по одному интерфейсу, не ограничивать ее по другому или как настроить рторрент чтобы он не ограничивал скорость отдачи определенным пользователям? Никак, у rtorrent-а один пользователь, точнее у него вообще нет такого понятия, многопользовательский режим реализуется только через wTorrent, соответственно скорость ограничивается всем пользователям. -------------------- |
|
|
![]()
Сообщение
#3
|
|
Активный участник ![]() ![]() ![]() Группа: Пользователи Сообщений: 37 Регистрация: 18.1.2009 Пользователь №: 281 ![]() |
FreeM@N, под пользователями я имел ввиду пиров >_<.
Выложил исходник, вроде, работает. Скрипт, который апдейтит существующие торренты, пишется схожим образом. CODE <? Следует учесть, что папка /usr/home/ftpall/session/*.torrent не простая, нужно сделать chmod 666 /usr/home/ftpall/session/*.torrent и chmod 777 /usr/home/ftpall/session
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)); } ?> |
|
|
![]()
Сообщение
#4
|
|
![]() Активный участник ![]() ![]() ![]() Группа: Главные Админы Сообщений: 661 Регистрация: 15.12.2008 Из: Москва Пользователь №: 15 ![]() |
FreeM@N, под пользователями я имел ввиду пиров >_<. От этого что-то изменилось? Разве в rtorrent можно ограничить скорость отдачи отдельному пиру? (я не пользуюсь ограничениями вообще, так что извиняйте - не в курсе) -------------------- |
|
|
![]()
Сообщение
#5
|
|
Активный участник ![]() ![]() ![]() Группа: Пользователи Сообщений: 37 Регистрация: 18.1.2009 Пользователь №: 281 ![]() |
Ой, спасибо за форк =))
Теперь это отдельная тема с обсуждением глюков и недоработок именно этого скрипта =) |
|
|
![]()
Сообщение
#6
|
|
![]() Активный участник ![]() ![]() ![]() Группа: Главные Админы Сообщений: 661 Регистрация: 15.12.2008 Из: Москва Пользователь №: 15 ![]() |
Есть вариант сделать модификацию wTorrent-a и отправить её автору - возможно он её включит в trunk.
-------------------- |
|
|
![]()
Сообщение
#7
|
|
Активный участник ![]() ![]() ![]() Группа: Пользователи Сообщений: 37 Регистрация: 18.1.2009 Пользователь №: 281 ![]() |
FreeM@N, я не буду этим заниматься, как и обновлением wTorrent`а на своем клиенте, т.к. вижу множество недостатков, которые лень дорабатывать:
0) дофигища доработок самого wTorrent, 1) увеличение количества дополнительных ретреккеров - то же самое, но с массивом, 2) навеска дополнительных параметров "для статистики", 3) расширение формы добавления торрент-файлов, чтобы пользователь сам вводил треккеры. 4) работа с треккерами торрентов, уже имеющимися в списке... Если вам это интересно, я не против. |
|
|
![]()
Сообщение
#8
|
|
![]() Активный участник ![]() ![]() ![]() Группа: Главные Админы Сообщений: 661 Регистрация: 15.12.2008 Из: Москва Пользователь №: 15 ![]() |
Понятно, я предполагал это в виде секции настроек у администратора - задаётся один раз и нигде больше не показывается, а также обработка при загрузке торента, ИМХО этого достаточно. Торенты, уже имеющиеся в списке, можно обработать патчером на perl-e.
-------------------- |
|
|
![]()
Сообщение
#9
|
|
Активный участник ![]() ![]() ![]() Группа: Пользователи Сообщений: 37 Регистрация: 18.1.2009 Пользователь №: 281 ![]() |
Ненавижу перл. Хоть начинал свое образование веб-программирования с книги с примерами именно на перле - "CGI-программирование". Уж очень он страшный. PHP, имхо, проще =)
Кстати, да, приведенный выше патчер уже имеющихся торрентов как бы не относится напрямую к wTorrent |
|
|
![]()
Сообщение
#10
|
|
![]() Активный участник ![]() ![]() ![]() Группа: Главные Админы Сообщений: 661 Регистрация: 15.12.2008 Из: Москва Пользователь №: 15 ![]() |
Ненавижу перл. Хоть начинал свое образование веб-программирования с книги с примерами именно на перле - "CGI-программирование". Уж очень он страшный. PHP, имхо, проще =) Так там уже всё сделано - берите и пользуйте ![]() Кстати, да, приведенный выше патчер уже имеющихся торрентов как бы не относится напрямую к wTorrent Разве? А вот это не из wTorrent-a подключается: Код require ('conf/user.conf.php');
require ('lib/bdecode/class.bdecode.php'); require ('lib/bdecode/bencode.php'); -------------------- |
|
|
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 26.4.2024, 18:59 |