Comments 88
А как там обстоят дела с русскими именами и файлами больше 2Г? Просто под фрей и то, и другое — геморрой. xmlrpc и rtorrent мне пришлось пересобирать самому (вместо портов) чтобы решить проблему 2Г. А русский так и глючит — некоторые имена просто крашат rtorrent при попытке обратиться к ним через xmlrpc. Правда, я в качестве морды использую rtGui, но не думаю, что проблема именно в нем.
а что за проблема с файлами более 2х гигов?
Размеры файлов неправильно показывает. Тот xmlrpc, который у фри в портах, использует маленькие int. Чтобы получить правильный размер надо брать из репозитория advanced-версию.
вообщем штука не подходит для России, без патча падает если трекер возвращает ошибку на русском. названия файлов сохраняет(русские) ??????
Именуют торренты по-русски только извращенцы, imho.
Надо сказать что падает не всегда. У меея падало один раз вроде. Да ну и фс должна уметь писать по русски естественно.
Надо сказать что падает не всегда. У меея падало один раз вроде. Да ну и фс должна уметь писать по русски естественно.
По моему извращенцы это те, кто пишут программы так, что они падают от наличия не-latin символов в именах данных.
А почему программа должна поддерживать какую-то кодировку win1251? А 99% торрентов с русскими именами именно в этой кодировке. С юникодом там вроде всё в порядке.
А по моему извращенцы используют cp1251 в 2009 году. Хватит насиловать труп.
На каждую кодировку поддержку писать — глупо. Тогда надо и cp1251 (windows xp), и UTF-8 (Linux\FreeBSD), и KOI8 (OpenBSD) и даже CP866 (А вдруг?).
При том, что автор программы — не из России, а за рубежом cp1251 практически не распространена, давно везде юникод.
На каждую кодировку поддержку писать — глупо. Тогда надо и cp1251 (windows xp), и UTF-8 (Linux\FreeBSD), и KOI8 (OpenBSD) и даже CP866 (А вдруг?).
При том, что автор программы — не из России, а за рубежом cp1251 практически не распространена, давно везде юникод.
Не надо «писать поддержку», вполне достаточно обеспечить, чтобы программа не падала.
>некоторые имена просто крашат rtorrent при попытке обратиться к ним через xmlrpc.
>падает если трекер возвращает ошибку на русском
Падает, насколько я понял, если трекер возвращает ошибку по-русски. Или при обращении к русскому торренту через _xmlrpc_. И виноват в этом не rTorrent, а фряшный xmlrpc-c, ибо в линуксе все отлично работает.
Русская ошибка в протоколе общения клиент-сервер, да еще и при работе не в Unicode — это бред. Так делать _нельзя_ и за такое нужно обрывать руки автору трекера, а не клиента. Это потенциально выдает феерические глюки под не-интернациональными системами, например в OpenBSD, где близко нет юникода и вообще все очень туго с локалями.
Не задумывались, почему почтовые сервера возвращают ошибки (rejected, redirected, unavail и т.д.) на английском и только на английском?
>падает если трекер возвращает ошибку на русском
Падает, насколько я понял, если трекер возвращает ошибку по-русски. Или при обращении к русскому торренту через _xmlrpc_. И виноват в этом не rTorrent, а фряшный xmlrpc-c, ибо в линуксе все отлично работает.
Русская ошибка в протоколе общения клиент-сервер, да еще и при работе не в Unicode — это бред. Так делать _нельзя_ и за такое нужно обрывать руки автору трекера, а не клиента. Это потенциально выдает феерические глюки под не-интернациональными системами, например в OpenBSD, где близко нет юникода и вообще все очень туго с локалями.
Не задумывались, почему почтовые сервера возвращают ошибки (rejected, redirected, unavail и т.д.) на английском и только на английском?
Под линуксом — и то и другое ок.
Под фрей русский не тестировал, не попадалось таких торрентов.
Под фрей русский не тестировал, не попадалось таких торрентов.
Странно, у меня фря шестая, ставил давно, никаких проблем у wTorrenta ни с русскими файлами, ни с размерами нет.
мне пришлось 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);
— 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 у вас какой? Текущий из портов или что-то свое?
Отлично, все заработало. Размер файлов, действительно, теперь показывает правильно. Насчет русских имен пока не пробовал, но радует уже то, что запустилась портовая версия — не надо геморроиться со сборкой из репозитория.
Еще раз спасибо.
Еще раз спасибо.
А мне больше ruTorrent нравится. Красивее и фич больше
а вы проболи wtorrent открывать в IE8? это же ужос:) интересно у кого проблемы — МС не поддерживает стандарты как бещал и wtorrent не по стандартам написан?
Спасибо автору за статью, так же советую посмотреть в сторону deluge мне лично показался проще и удобнее
Ага, месяц юзаю deluge — очень приятная вэб-морда, но Ajax вариант пока что не всё умеет, в частности — добавление торрентов у меня работает только переключившись на Classic.
Слышал, что он прожорливый к ресурсам очень. Нет?
Согласен, 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
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+самописную тулзу в трее )
PS сам использую связку screen+rtorrent+wtorrent+самописную тулзу в трее )
Он так и не потдерживает, просто init скрипт, как раз и запускает его через screen. В Gentoo скрипт готовый после установки, а в Archlinux, например — можно найти готовый и положить куда следует.
Думаю тогда автору надо было упомянуть об этом, для полноты инструкции.
2.6.29-gentoo-r3
нету :(
нету :(
После emrge rtorrent в /etc/init.d/rtorrentd нету?
Сейчас немогу проверить, возможно поставил пакет из тестовой ветки (~x86)
Сейчас немогу проверить, возможно поставил пакет из тестовой ветки (~x86)
да
net-p2p/rtorrent-0.8.4-r1
net-p2p/rtorrent-0.8.4-r1
/etc/init.d/rtorrentd — только если собиралось с USE флагом daemon. Это простенький скрипт, сводящийся к «screen — -dmS rtorrentd rtorrent».
собирал как в мане выше, с xmlrpc и daemon
на гунтру есть скрипты, копирнул, поправил, запустился
А что за гунтру такой. Гугление ниасилил, несмог угодать, как пишется.
в темноте кнопочки плохо видно :)
gentoo.ru/
gentoo.ru/
спасибо, в своё время так и не смог его завести6 в итоге поставил n2hell, правда с течением времени всё-равно перестал пользоваться веб-интерфейсом и по ссш рулю
А зачем XML-RPC? Почему не более простой RESTfull?
а зачем? XML-RPC тоже довольно прост и при этом функциональней
XML-RPC сложнее, раз вам требуются библиотеки :). RESTfull их не требует. Ему даже XML-парсер не нужен. Так что в итоге веб-интерфейс имел бы меньше зависимостей. Про функциональность не совсем верно в данном случае.
Можно не использовать библиотеку и изобретать велосипед, но для работы REST требуется вебсервер как минимум, что есть тоже дополнительный компонент.
Про функциональность, не силен в REST, но можно ли там реализовать multycal, сложные вызовы с логикой (доступна команда if).
Про функциональность, не силен в 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
wget localhost/status.txt | grep Some torrent name
Основная идея REST — это как раз упрощение самой системы RPC, потому что что любую логику можно реализовать с помощью идеологии ресурсов и обычных HTTP-запросов.
я вижу там есть «download directory», для меня это очень положительный момент.
Хочу организовоть дома файловое хранилище, интересно а бывают remote клиенты с возможностью указания(а лучше выбором) пути для загрузки фыйла, т.к. даже uremote не имеет такого.
Хочу организовоть дома файловое хранилище, интересно а бывают remote клиенты с возможностью указания(а лучше выбором) пути для загрузки фыйла, т.к. даже uremote не имеет такого.
вродь всё сделал как описано, кроме редактирования /etc/conf.d/rtorrent ну и соответственно запуска автоматического, ибо нет у меня его, запустил через скрин, но wtorrent говорит что не видит rtorrent :((
Были те же грабли на двух дистрах (Gentoo и Archlinux)
Пытался настроить через lighttpd — получал сообщение, что не видит рторрент, потом попробовал настроить апач, довольно быстро завелось. Поподались еще рекомендации настроить на порт 80, мне не помогло, хоть под апачем работает и на 80, но этого было не достаточно.
Пытался настроить через lighttpd — получал сообщение, что не видит рторрент, потом попробовал настроить апач, довольно быстро завелось. Поподались еще рекомендации настроить на порт 80, мне не помогло, хоть под апачем работает и на 80, но этого было не достаточно.
мб статистический порт поставить и wtorrent натравить на него? в конфиге директива random_port = no
Warning: disk_free_space() [function.disk-free-space]: Permission denied in… чета потыкал права, так и не врубился где крутить
Стоит дома на Arch Linux. Нареканий никаких, кроме того, что задать приоритет для скачивания отдельного файла из одного торрента получается не всегда с первого раза :) Ну и при добавлении нового торрента было бы неплохо, если была бы возможность выбирать отдельные файлы сразу. Правда может это поправили уже. У меня староватая версия.
А мне вот transmission больше нравится.
Для него даже отдельный web-сервер не нужен и влезает он в жалкие 32 мегабайта оперативки ADSL-роутера :-)
Для него даже отдельный web-сервер не нужен и влезает он в жалкие 32 мегабайта оперативки ADSL-роутера :-)
torrentflux-b4rt с интересом наблюдает за этим топиком.
Сидел пол года на ТоррентФлуксе. Хороший клиент, но меня в нем убивает прожорливость к ресурсам и глюки в веб-интерфейсе (локализация, кодировки).
А добила блокировка BitTornado на HDTracker.ru. После этого и ушел обратно на rtorrent.
А добила блокировка BitTornado на HDTracker.ru. После этого и ушел обратно на rtorrent.
Торрентс.ру меня начал в последнее время бесить своими размерами.
Найти там то, что нужно — фильм (а не аниме, мангу, игру, саундрек или видео для айпода), в хорошем качестве (а не экранку, бета-версию или сатрип), на русском языке (а не на японском и не в фандабе, и без неотключаемых украинских субтитров) меньше чем за 20 минут стало практически невозможно.
Ну и паранойа на фоне копирастии у модераторов тоже несколько не радует, особенно когда действует принцип «сначала закроем раздачу, потом разберемся за что».
А админы — наплевать. Мне админы не надо, мне надо фильмы. Я и их форум-то не читаю.
Найти там то, что нужно — фильм (а не аниме, мангу, игру, саундрек или видео для айпода), в хорошем качестве (а не экранку, бета-версию или сатрип), на русском языке (а не на японском и не в фандабе, и без неотключаемых украинских субтитров) меньше чем за 20 минут стало практически невозможно.
Ну и паранойа на фоне копирастии у модераторов тоже несколько не радует, особенно когда действует принцип «сначала закроем раздачу, потом разберемся за что».
А админы — наплевать. Мне админы не надо, мне надо фильмы. Я и их форум-то не читаю.
Sign up to leave a comment.
wTorrent — web-based bittorrent клиент для Linux\BSD