Как стать автором
Обновить

Комментарии 88

А как там обстоят дела с русскими именами и файлами больше 2Г? Просто под фрей и то, и другое — геморрой. xmlrpc и rtorrent мне пришлось пересобирать самому (вместо портов) чтобы решить проблему 2Г. А русский так и глючит — некоторые имена просто крашат rtorrent при попытке обратиться к ним через xmlrpc. Правда, я в качестве морды использую rtGui, но не думаю, что проблема именно в нем.
а что за проблема с файлами более 2х гигов?
Размеры файлов неправильно показывает. Тот xmlrpc, который у фри в портах, использует маленькие int. Чтобы получить правильный размер надо брать из репозитория advanced-версию.
вообщем штука не подходит для России, без патча падает если трекер возвращает ошибку на русском. названия файлов сохраняет(русские) ??????
Именуют торренты по-русски только извращенцы, imho.

Надо сказать что падает не всегда. У меея падало один раз вроде. Да ну и фс должна уметь писать по русски естественно.
По моему извращенцы это те, кто пишут программы так, что они падают от наличия не-latin символов в именах данных.
А почему программа должна поддерживать какую-то кодировку win1251? А 99% торрентов с русскими именами именно в этой кодировке. С юникодом там вроде всё в порядке.
> А почему программа должна поддерживать какую-то кодировку win1251? А 99% торрентов с русскими именами именно в этой кодировке.

Именно поэтому.
А норвежскому парню не пофигу на это дело? :)
А по моему извращенцы используют cp1251 в 2009 году. Хватит насиловать труп.

На каждую кодировку поддержку писать — глупо. Тогда надо и cp1251 (windows xp), и UTF-8 (Linux\FreeBSD), и KOI8 (OpenBSD) и даже CP866 (А вдруг?).

При том, что автор программы — не из России, а за рубежом cp1251 практически не распространена, давно везде юникод.
Не надо «писать поддержку», вполне достаточно обеспечить, чтобы программа не падала.
>некоторые имена просто крашат rtorrent при попытке обратиться к ним через xmlrpc.

>падает если трекер возвращает ошибку на русском

Падает, насколько я понял, если трекер возвращает ошибку по-русски. Или при обращении к русскому торренту через _xmlrpc_. И виноват в этом не rTorrent, а фряшный xmlrpc-c, ибо в линуксе все отлично работает.

Русская ошибка в протоколе общения клиент-сервер, да еще и при работе не в Unicode — это бред. Так делать _нельзя_ и за такое нужно обрывать руки автору трекера, а не клиента. Это потенциально выдает феерические глюки под не-интернациональными системами, например в OpenBSD, где близко нет юникода и вообще все очень туго с локалями.

Не задумывались, почему почтовые сервера возвращают ошибки (rejected, redirected, unavail и т.д.) на английском и только на английском?
Еще раз:
Конечно же делать вывод в нестандартном виде это плохо.

Но еще более плохо писать программы так, что она падает всего лишь получив на вход какие-то данные в неожиданном для себя виде.
Тогда согласен, да.
Под линуксом — и то и другое ок.
Под фрей русский не тестировал, не попадалось таких торрентов.
Странно, у меня фря шестая, ставил давно, никаких проблем у wTorrenta ни с русскими файлами, ни с размерами нет.
У меня фря 7. Проблемы были давно и продолжались долго. В конце концов я не выдержал и пересобрал все. Не исключаю, что в портах тоже наконец исправили.
мне пришлось rtorrent патчить а то он падал от некоторых файлов с русскими именами, а так все отлично.
Во, а технологией не поделитесь? Что именно патчили?
не помню откуда брал патч поэтому копирую его прямо в коммент
— rtorrent/src/rpc/xmlrpc.cc (revision 1078)
+++ rtorrent/src/rpc/xmlrpc.cc (working copy)
@@ -371,8 +371,34 @@
#endif
case torrent::Object::TYPE_STRING:
— return xmlrpc_string_new(env, object.as_string().c_str());
+ {
+#ifdef XMLRPC_HAVE_I8
+ // The versions that support I8 do implicit utf-8 validation.
+ xmlrpc_value* result = xmlrpc_string_new(env, object.as_string().c_str());
+#else
+ // In older versions, xmlrpc-c doesn't validate the utf-8 encoding itself.
+ xmlrpc_validate_utf8(env, object.as_string().c_str(), object.as_string().length());
+ xmlrpc_value* result = env->fault_occurred? NULL: xmlrpc_string_new(env, object.as_string().c_str());
+#endif
+
+ if (env->fault_occurred) {
+ xmlrpc_env_clean(env);
+ xmlrpc_env_init(env);
+
+ const std::string& str = object.as_string();
+ char buffer[str.size() + 1];
+ char* dst = buffer;
+ for (std::string::const_iterator itr = str.begin(); itr != str.end(); ++itr)
+ *dst++ = ((*itr < 0x20 && *itr != '\r' && *itr != '\n' && *itr != '\t') || (*itr & 0x80))? '?': *itr;
+ *dst = 0;
+
+ result = xmlrpc_string_new(env, buffer);
+ }
+
+ return result;
+ }
+
case torrent::Object::TYPE_LIST:
{
xmlrpc_value* result = xmlrpc_array_new(env);
Спасибо, попробуем. А еще вопрос: xmlrpc-c у вас какой? Текущий из портов или что-то свое?
xmlrpc у меня из svn а портов у меня нет, я это под дебианом держу:)
Отлично, все заработало. Размер файлов, действительно, теперь показывает правильно. Насчет русских имен пока не пробовал, но радует уже то, что запустилась портовая версия — не надо геморроиться со сборкой из репозитория.

Еще раз спасибо.
А мне больше ruTorrent нравится. Красивее и фич больше
lolwhat? Это гибрид uTorrent и rTorrent?
Нигде такого не встречал.
Ага, это вебинтерфейс utorrent адаптированный к rtorrent.

wl500g.info/showthread.php?t=14256
а вы проболи wtorrent открывать в IE8? это же ужос:) интересно у кого проблемы — МС не поддерживает стандарты как бещал и wtorrent не по стандартам написан?
Слава Б-гу, не пробовал. У меня нет IE8, как и винды вообще :)

А что там ужастного? Скриншотиком не поделитесь? Интересно просто.
wtorrent.png - image uploaded to Picamatic
В «семерке» все нормально показывает (IE8)
Спасибо автору за статью, так же советую посмотреть в сторону deluge мне лично показался проще и удобнее
Ага, месяц юзаю deluge — очень приятная вэб-морда, но Ajax вариант пока что не всё умеет, в частности — добавление торрентов у меня работает только переключившись на Classic.
Слышал, что он прожорливый к ресурсам очень. Нет?
Да, достаточно прожорливый, демон плюс ГУИ где-то за 100Mb весят.
Ужас. И зачем это нужно всё?
Дык междумордие приятное до безобразия)
Не представляю что там может быть на 100 мегов. Или это как неро, со втронным варщмком кофе? :)
Согласен, ajax тема еще плохо доработана, тоже раньше переключался, а сейчас добавляться начало, правда не через вставку url, а через подгрузку самого файла торрента, раза со второго, с третьего, попробуйте, если что скину скриншоты
Он у меня на тестовой машинке болтается так что руки пока не доходят серьёзно изучать что там не так и почему.
Под MacOS X Server 10.5 PPC отлично устанавливается и работает, правда был сильный гемморой со сборкой xmlrpc, пересборкой самого rtorrent под ppc (хотя спасибо macports). Но вцелом очень хорошо.
А старательно минусящие топик не хотят сказать, что им не понравилось? :)
Стоит на сидбоксе дома под FreeBSD. Нареканий особых нет, разве что

1) чтото не особо он развивается последнее время… коммитов в свне нет давно. Так и торчит на 99ой ревизии
2) памяти ест много очень; на 1000+ пирах часто медленно качает из-за ошибок:
«file chunk write error cannot allocate memory»
хотя в конфиге прописал
max_memory_usage = 1200288000
и в /boot/loader.conf:
kern.maxdsiz=«2147483648»

Думаю попробовать transmission-webgui
У меня друг сталкивался с похожей проблемой, говорит это специфично для фряхи.
Если не ошибаюсь (у себя ставил год назад) то rTorrent не поддерживает (не поддерживал) демонизацию, то откуд взялся в init.d файл запуска. Видать чтото пропустил за это время.

PS сам использую связку screen+rtorrent+wtorrent+самописную тулзу в трее )
Он так и не потдерживает, просто init скрипт, как раз и запускает его через screen. В Gentoo скрипт готовый после установки, а в Archlinux, например — можно найти готовый и положить куда следует.
Думаю тогда автору надо было упомянуть об этом, для полноты инструкции.
2.6.29-gentoo-r3
нету :(
После emrge rtorrent в /etc/init.d/rtorrentd нету?
Сейчас немогу проверить, возможно поставил пакет из тестовой ветки (~x86)
да

net-p2p/rtorrent-0.8.4-r1
/etc/init.d/rtorrentd — только если собиралось с USE флагом daemon. Это простенький скрипт, сводящийся к «screen — -dmS rtorrentd rtorrent».
собирал как в мане выше, с xmlrpc и daemon
на гунтру есть скрипты, копирнул, поправил, запустился
А что за гунтру такой. Гугление ниасилил, несмог угодать, как пишется.
в темноте кнопочки плохо видно :)
gentoo.ru/
Тогда понятно, гугель эту страницу с коментами ещё не успел проиндексировать, а то бы меня сюда отправил бы по запросу (гунтру) :)
:)
спасибо, в своё время так и не смог его завести6 в итоге поставил n2hell, правда с течением времени всё-равно перестал пользоваться веб-интерфейсом и по ссш рулю
а не подскажите — как решить вопрос — mod_scgi masked в портах генты…
echo «www-apache/mod_scgi ~x86» >> /etc/portage/package.keyword
да, уже разобрался, пасибо
А зачем XML-RPC? Почему не более простой RESTfull?
а зачем? XML-RPC тоже довольно прост и при этом функциональней
XML-RPC сложнее, раз вам требуются библиотеки :). RESTfull их не требует. Ему даже XML-парсер не нужен. Так что в итоге веб-интерфейс имел бы меньше зависимостей. Про функциональность не совсем верно в данном случае.
Можно не использовать библиотеку и изобретать велосипед, но для работы REST требуется вебсервер как минимум, что есть тоже дополнительный компонент.

Про функциональность, не силен в REST, но можно ли там реализовать multycal, сложные вызовы с логикой (доступна команда if).
Для XML-RPC веб-сервер тоже нужен ;)
Про multicast я точно не понял, что вам нужно. Несколько вызовов в одном HTTP-запросе? Вызовы с if? Зачем это? Делайте if либо на стороне клиента, либо создавайте доп. URL. Умножение сущностей без необходимости — зло.
именно так, иногда удобно завернуть несколько вызовов в один, что позволит ускорить обработку, если необходимо обрабатывать множество объектов. По такому принципу идет опрос состояния торентов в wTorrent.

Ничто не мешает вам послать несколько HTTP запросов в одном соединении, однако я бы сделал отдельный ресурс /status, который при GET запросе возвращал бы JSON (или XML при запросе /status.xml или текст при /status.txt).
Т. е. в консоли в консоли можно было бы написать
wget localhost/status.txt | grep Some torrent name
Основная идея REST — это как раз упрощение самой системы RPC, потому что что любую логику можно реализовать с помощью идеологии ресурсов и обычных HTTP-запросов.
мне больше нравиться rtquit, хотя особых отличий нет. если ты часто вне дома, тогда рационально использовать веб-морды, а так меня вполне устраивает и интерфейс rtorrent'a.
по поводу xmlrpc, у меня этот пакет требует cmake, так что какая разница с ним или без него.
я вижу там есть «download directory», для меня это очень положительный момент.

Хочу организовоть дома файловое хранилище, интересно а бывают remote клиенты с возможностью указания(а лучше выбором) пути для загрузки фыйла, т.к. даже uremote не имеет такого.
вродь всё сделал как описано, кроме редактирования /etc/conf.d/rtorrent ну и соответственно запуска автоматического, ибо нет у меня его, запустил через скрин, но wtorrent говорит что не видит rtorrent :((
Были те же грабли на двух дистрах (Gentoo и Archlinux)
Пытался настроить через lighttpd — получал сообщение, что не видит рторрент, потом попробовал настроить апач, довольно быстро завелось. Поподались еще рекомендации настроить на порт 80, мне не помогло, хоть под апачем работает и на 80, но этого было не достаточно.
мб статистический порт поставить и wtorrent натравить на него? в конфиге директива random_port = no
статический порт где?
НЛО прилетело и опубликовало эту надпись здесь
Warning: disk_free_space() [function.disk-free-space]: Permission denied in… чета потыкал права, так и не врубился где крутить
А… посмотрел код wtorrent) уже врубился где крутить
Стоит дома на Arch Linux. Нареканий никаких, кроме того, что задать приоритет для скачивания отдельного файла из одного торрента получается не всегда с первого раза :) Ну и при добавлении нового торрента было бы неплохо, если была бы возможность выбирать отдельные файлы сразу. Правда может это поправили уже. У меня староватая версия.
А мне вот transmission больше нравится.
Для него даже отдельный web-сервер не нужен и влезает он в жалкие 32 мегабайта оперативки ADSL-роутера :-)
torrentflux-b4rt с интересом наблюдает за этим топиком.
НЛО прилетело и опубликовало эту надпись здесь
ну не знаю. меня всё устраивает.
или вы знаете что-то получше?
с возможностью деления прав пользователей, заливки 20 торрентов одним махом, и возможностью указать что делать при завершении закачки.
Сидел пол года на ТоррентФлуксе. Хороший клиент, но меня в нем убивает прожорливость к ресурсам и глюки в веб-интерфейсе (локализация, кодировки).

А добила блокировка BitTornado на HDTracker.ru. После этого и ушел обратно на rtorrent.
НЛО прилетело и опубликовало эту надпись здесь
Торрентс.ру меня начал в последнее время бесить своими размерами.

Найти там то, что нужно — фильм (а не аниме, мангу, игру, саундрек или видео для айпода), в хорошем качестве (а не экранку, бета-версию или сатрип), на русском языке (а не на японском и не в фандабе, и без неотключаемых украинских субтитров) меньше чем за 20 минут стало практически невозможно.

Ну и паранойа на фоне копирастии у модераторов тоже несколько не радует, особенно когда действует принцип «сначала закроем раздачу, потом разберемся за что».

А админы — наплевать. Мне админы не надо, мне надо фильмы. Я и их форум-то не читаю.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории