Comments and changes to this ticket
-

vovasty 2010-03-26 18:30:25 UTC
(from [d6d011a9e2ff]) initial groups [#10] http://bitbucket.org/vovasty/nativa/changeset/d6d011a9e2ff/
-

vovasty 2010-03-26 18:30:32 UTC
(from [ff9aea02009b]) groups settings, groups context menu [#10] http://bitbucket.org/vovasty/nativa/changeset/ff9aea02009b/
-

dkobzev 2010-03-26 19:24:40 UTC
Хорошо вышло, без подсветки значка цветом метки, даже как то лучше выглядит чем в трансмишине. Может и не стоит делать или сделать как нибудь информативно, но посимпатичнее чем в трансмишен?
Еще стоит учесть еще вот это http://libtorrent.rakshasa.no/ticket/1543. Это сделано для случаев к примеру, если запущу нативу с другой машины все мои группы останутся на той где настраивал.
Надо на сервер их дублировать, причем при каждом запуске, они сбрасываются при рестарте на настройки из rtorrent.rc.
Так же там есть то чего нет в трасмишен, это настройки групп. :) -

-

vovasty 2010-03-26 19:35:21 UTC
Группы хранятся в поле custom1 (это можно будет настраивать), а не в группах.
-

dkobzev 2010-03-26 20:18:04 UTC
В принципе да, но например это:
schedule = watch_directory_one_5,5,5,"load_start=/home/one/ratio_5/*.torrent,d.set_directory=/home/one/downloads, view.set_visible=ratio_5"Закачка ставится в директорию /home/one/downloads и ей ставится группа ратио ratio_5.
В трансмишен Группа = Директория закачки. Следовательно группы ратио можно по логике будет ставить и на группы, тоже касается и throttle, такого функционала в трансмишин нет :) Там только по закачкам индивидуально.А если взять в примеру добавление по маске. Ну кинет трансмишен закачку в нужную папку, ну присвоит группу. Но ограничение и ратио руками выставлять прийдется. А если сразу штук 20 закачек добавить и все они по разным группам разлетятся (все сразу выделить и поставить не прокатит…)? Вот отсюда и напрашиваются свойства групп =)
-

vovasty 2010-03-26 20:23:44 UTC
Вот только одна проблема - как узнать, в какой группе находится торрент? Считывать все группы? Я не нашел каких-лтбо комманд, касающихся определения группы.
ПС
Спасибо Вам за Ваши комментарии - очень полезно ;) -

dkobzev 2010-03-26 21:17:35 UTC
Добавить в d.multicall еще и d.get_custom1 для всех если.
для единичного d.get_custom1Еще есть это:
view_add
view_set
view_list
download_listСтавит произвольные статусы к торрентам. Для групп наверное это слишком, но тоже может быть полезно. И еще view_list выводит все стандартные статусы. Фильтровать по ним всем нет необходимости, но вот визуальную индикацию сделать для всех стоит, а то сейчас не понять что с закачкой происходит.
-

dkobzev 2010-03-26 21:19:40 UTC
для единичного d.get_custom1 "torrenthash"
torrenthash в угловых скобках вырезало :)
-

vovasty 2010-03-26 21:29:24 UTC
Тогда можно делать так: ставить название группы в custom1 и добавлять во view с таким же именем. Это, конечно, не очень надежно, но все же. Считывать каждую группу по отдельности слишком накладно.
-

dkobzev 2010-03-26 22:54:45 UTC
http://libtorrent.rakshasa.no/ticket/804
судя по примерам view служит для фильтрации по данным закачки. Метки туда не очень вписываются.Считывать поле custom1 для списка закачек прийдется все равно, оно необходимо для дальнейшей сортировки по группам всего списка. Весь список загружается со всеми параметрами при старте, почему бы в это время и не сформировать массив со списком уникальных групп? А дальше предикатом по списку. По ресурсам не более емко чем в любое время создать массив отдельным запросом.
-

vovasty 2010-03-26 23:03:29 UTC
Судя по примеру, custom1 более чем подходит для меток. View и Group могут быть сопоставлены торрентам по этому полю
-

dkobzev 2010-03-27 00:19:49 UTC
xmlrpc nas d.multicall default d.get_custom1= d.views= group.rat_7.view=
Index 0 String: '%D0%9A%D0%B0%D0%BF%D1%80%D0%B8%D0%BA%D0%B0'
Index 1 Array of 1 items: Index 0 String: 'rat_7' Index 2 String: 'rat_7'В custom, custom1,…custom(N) все текстовое. Хранят имя группы, пути и т.д….
views массив. Может содержать несколько view для одной закачки. view это отображение списка по фильтру.
А group ставит настройки ратио и ограничений и привязывает их к view.Если у закачки может быть несколько view и метки будут во view, может случиться что закачка окажется сразу в нескольких группах) Но с другой стороны group c его настройками ратио больше никак не привязать к группе в Nativa.
-

vovasty 2010-03-27 02:33:40 UTC
вот я и говорю - вы можете сделать view с фильтром по custom. Вернее так, в дальнейшем можно будет сделать этакий редактор rtorrent.rc, который и будет формировать всякие там groups
Плюс, под маками последний rtorrent не собирается с xml_rpc.advanced, а группы, насколько я понял, появились в 0.86
Итого. На данный момент я остановлюсь на реализации меток в полях custom.
В дальнейшем, когда решу проблемы с SSH, попытаюсь сделать какой-нибудь редактор групп, ratio и тп -

dkobzev 2010-03-27 03:20:04 UTC
http://www.rudix.org/packages-rst.html#rtorrent 0.8.6 доступна. Хотя у меня стоит на NAS под linux.
Вроде мак версия идентичная на 100%.torrent.rc трогать плохая идея. Все параметры конфига переназначаются через RPC, и замещают загруженные из torrent.rc и до перезагрузки сервера сброшены не будут. На данный момент у меня torrent.rc с указанием папки, порта и адреса SCGI, кодировки, ограничением места и маской прав на новые закачки и это все... А все остальное выставляет WebUI rutorrent и самописный скрипт на perl для автозакачки с rss рассылок. Гораздо правильнее хранить конфиг локально и если настройки сброшены заново их устанавливать. В случае различия комбинировать (если что-то установлено другим клиентом).
Полный спектр возможностей rtorrent доступен через xmlrpc, включая задания по расписанию и выполнение команд по событию, зачем дефолтный конфиг то трогать? -

dkobzev 2010-03-27 03:28:11 UTC
Ах да, еще еще есть session файлы, которые позволяют восстановить список закачек после рестарта. Так вот они представляют из себя обычные .torrent файлы но с добавленными полями, такими как custom, group, view и т.д. в общем со всеми установленными на закачку параметрами. Они соответственно после рестарта не сбрасываются.
-

vovasty 2010-03-27 03:54:59 UTC
спасибо за ссылку. Эта версия без xmlrpc, увы.
Дефолтные установки нужны на случай перезагрузки сервера - он может быть перезагружен во время работы клиента.
Сам по себе rtorrent.rc не такой уж и сложный, его вполне можно править без потери пользовательских данных.
В общем, пока я к этому не готов. Вроде, группы как-то работают - и слава богу =)
-

dkobzev 2010-03-27 05:04:32 UTC
спасибо за ссылку. Эта версия без xmlrpc, увы.
Но собрать все таки можно)
http://rakshasa.no/pipermail/libtorrent-devel/2008-May/001620.htmlДефолтные установки нужны на случай перезагрузки сервера - он может быть перезагружен во время работы клиента. Сам по себе rtorrent.rc не такой уж и сложный, его вполне можно править без потери пользовательских данных. В общем, пока я к этому не готов. Вроде, группы как-то работают - и слава богу =)
Всетаки лучше совсем не трогать. Практически все необходимое он возьмет из session файлов. А остальное, глобальные настройки, порты, dht, количество сокетов, соединений, портов, максимально открытых портов, используемой памяти... лучше ставить временно. На слабой машине одна ошибка убьет сервер и без редактирования конфига ручками сервер не поднимется. А так справится небольшой скрипт по крону, прибьет зависший сервер и перезапустит. А временные настройки от клиента можно обновить при восстановлении соединения после обрыва связи в случае падения сервера.
-

vovasty 2010-03-27 05:31:21 UTC
Но собрать все таки можно) http://rakshasa.no/pipermail/libtorrent-devel/2008-May/001620.html
как автор этого трика авторитетно утверждаю - можно собрать, но до версии 0.82. потом проблемы с libxml :)
Всетаки лучше совсем не трогать. Практически все необходимое он возьмет из session файлов. А остальное, глобальные настройки, порты, dht, количество сокетов, соединений, портов, максимально открытых портов, используемой памяти... лучше ставить временно. На слабой машине одна ошибка убьет сервер и без редактирования конфига ручками сервер не поднимется. А так справится небольшой скрипт по крону, прибьет зависший сервер и перезапустит. А временные настройки от клиента можно обновить при восстановлении соединения после обрыва связи в случае падения сервера.
- Как
отличить
обрыв
соединения
(посмотрите
в логи -
соединение
непрерывно
рвется) от
перезагрузки
сервера
(или только
самого rtorrent)? Nativa
работает
урывками, в
отличие от
вебклиентов
- Мне не так много нужно править в rtorrent - только отграниченния на скорость (глобально), view да groups. Пожалуй и все.
- Как
отличить
обрыв
соединения
(посмотрите
в логи -
соединение
непрерывно
рвется) от
перезагрузки
сервера
(или только
самого rtorrent)? Nativa
работает
урывками, в
отличие от
вебклиентов
-

dkobzev 2010-03-27 05:48:44 UTC
Ну глобальное ограничение скорости вроде уже реализовано, и нормально работает.
А вот определить рестарт сервера можно хотя бы по тому же глобальному ограничению скорости, если сбросилось, а кнопка не нажималась, значит был рестарт (лучше правда по чему нибудь очень редкому). Хотя так же возможно ограничение кто-то снял с другого клиента. :) Но в этом случае Nativa будет вечно пытаться править torrent.rc, а второй клиент выставлять временные настройки поверх.
Еще с torrent.rc будет такая проблема, в моем случае сервисы rtorrent, lighttpd, samba, afpd… работают под пользователем у которого нет директории home и rtorrent стартует с ключем -n -o import=/var/etc/rtorrent.conf
Похожая проблема будет на большинстве embeded систем и путь к конфигу у многих будет разный. -

dkobzev 2010-03-27 22:18:55 UTC
Посмотрел последние обновления, есть пару багов:
- Только
созданные
группы не
применяются
(применяются,
но группа
не
отображается,
закачка
становится
в No Group), надо
делать
рестарт
приложения
что бы
отобразились
изменения.
- Метки на
кирилице
не
приминяются
Nativa[2689:6acb] Unable to set group for torrent: Network
timeout
- Метки присутствующие на закачках, но не добавленные в настройках Nativa игнорируются.
- Только
созданные
группы не
применяются
(применяются,
но группа
не
отображается,
закачка
становится
в No Group), надо
делать
рестарт
приложения
что бы
отобразились
изменения.
-

vovasty 2010-03-28 03:26:52 UTC
Только созданные группы не применяются (применяются, но группа не отображается, закачка становится в No Group), надо делать рестарт приложения что бы отобразились изменения.
ну, уже работает =) Вы очень торопитесь -)
Метки на кирилице не приминяются Nativa[2689:6acb] Unable to set group for torrent: Network timeout
Боюсь, это уже к rtorrent
Метки присутствующие на закачках, но не добавленные в настройках Nativa игнорируются.
так и есть. Пока что я н придумал, что с этим делать. Можно синхронизировать на старте - но это ненадежно (изменения могут произойти и "посередине"), плюс, мои группы обладают дополнительным параметром (цветом). В общем, пока идей нет как все правильно сделать.
-

dkobzev 2010-03-28 04:03:45 UTC
ну, уже работает =) Вы очень торопитесь -) ок. обновляюсь. =) У вас кстати там файлик NSStringTorrentAdditions.h а везде import NSStringAdditions.h править каждый раз перед сборкой приходится. Оно в принципе и так собирается, но панелька с ратио и скачано / роздано не работает тогда.
Метки на кирилице не приминяются Nativa[2689:6acb] Unable to set group for torrent: Network timeout Боюсь, это уже к rtorrent
Я выше вывод консоли с русской меткой приводил :)
Index 0 String: '%D0%9A%D0%B0%D0%BF%D1%80%D0%B8%D0%BA%D0%B0' rtorrent скорее всего просто в UTF не может хранить. А в ascii на любом языке должен.
так и есть. Пока что я н придумал, что с этим делать. Можно синхронизировать на старте - но это ненадежно (изменения могут произойти и "посередине"), плюс, мои группы обладают дополнительным параметром (цветом). В общем, пока идей нет как все правильно сделать.
Цвет как вариант использовать какой нибудь default для таких случаев, ну или рандом. Сложнее будет с директорией закачки потом, если попадутся с одной меткой, но в разных директориях) А с проверкой на изменения надо что-то придумывать. У меня например стоит расписание, ночью выставляется глобальное ограничение скорости, "черепашка" загорается только после рестарта Nativa. И таких объектов много еще будет.
-

dkobzev 2010-03-28 04:11:21 UTC
Собрал кстати последние xmlrpc и rtorrent. Может кому потребуются.
Линковка статическая. Для работы xmlrpc требуется SCGI MountPoint в /RPC2/, в отличии от Nativa с SCGI портом rtorrent на прямую не работает. -

vovasty 2010-03-28 04:39:52 UTC
У вас кстати там файлик NSStringTorrentAdditions.h а везде import NSStringAdditions.h править каждый раз перед сборкой приходится. Оно в принципе и так собирается, но панелька с ратио и скачано / роздано не работает тогда.
Все никак не дойдут руки почистить код.
Я выше вывод консоли с русской меткой приводил :)
ммм, не вариант для азиатских языков, да и вообще, неясно, в какой ascii переводить. Да и UTF идет в самом rtorrent, к примеру, для имен файлов. Избегайте русских меток=)
Собрал кстати последние xmlrpc и rtorrent. Может кому потребуются.
Как это Вам удалось? В последней xml-rpc (которая не 1.06) масса проблем с линковкой.
-

dkobzev 2010-03-28 05:22:09 UTC
Все брал последнее из stable. Были проблемы при сборке только с sigc++, он пытался что-то из своей документации записать в /usr/local/doc, без прав на это, естественно прерывал сборку. Добавил в мейкфайл директиву отключающую ему сборку документации и все собралось без проблем даже libcurl.pc не правил.
Мейкфайл в атаче
-

dkobzev 2010-03-28 05:39:29 UTC
ммм, не вариант для азиатских языков, да и вообще, неясно, в какой ascii переводить. Да и UTF идет в самом rtorrent, к примеру, для имен файлов. Избегайте русских меток=)
UTF в rtorrent по умолчанию, кодировка меняется параметром encoding_list на любую другую.
xmlrpc nas d.set_custom1 902E3A770E9732E355229824941CDE45B06F4AA0 Пробав rutorrent появилась метка "Проба".
Вывел '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff'xmlrpc nas d.get_custom1 902E3A770E9732E355229824941CDE45B06F4AA0
Видимо хранится в C String просто. -

vovasty 2010-03-28 06:05:14 UTC
Все брал последнее из stable. Были проблемы при сборке только с sigc++, он пытался что-то из своей документации записать в /usr/local/doc, без прав на это, естественно прерывал сборку. Добавил в мейкфайл директиву отключающую ему сборку документации и все собралось без проблем даже libcurl.pc не правил.
Неее, stable нельзя, только advanced можно =) В stable проблема с большими цифрами(10^6?) (не поддерживается i4)
-

dkobzev 2010-03-28 06:12:37 UTC
Точнее даже как URL хранится. Причем принимает простую С строку, а возвращает только в URL.
В rutorrent используют JS decodeURIComponent() при считывании параметра.
И англоязычные метки установленные в rutorrent выглядят как My%20Downloads. Метка My Downloads установленная из Nativa так и выглядит. Почему-то rtorrent метки от Nativa не конвертирует в URL строку, по той же причине видимо не принимает русских слов. -

vovasty 2010-03-28 08:14:06 UTC
так, вроде, с группами все (кроме синхронизации с существующими - это отдельная песня)
все должно работать (включая русские буквы в метках - помогло Ваше последнее исследование)
Я бы хотел выразить Вам благодарность с занесением в "about" (ммм, очень похоже на с занесением в фотокарточку, хехе). Так что если Вас есть какая-нибудь личная страничка, то сообщите мне. Если Вы не хотите, чтобы я Вас включал в "about" - сообщите тоже. Моя почта vovasty собака(обезьянка, улитка, а-коммерческая ...) aramzamzam.net
-

dkobzev 2010-03-28 09:42:55 UTC
Неее, stable нельзя, только advanced можно =) В stable проблема с большими цифрами(10^6?) (не поддерживается i4)
Смог собрать с последним снапшотом xmlrpc-c из advanced. Только сборка динамическая, библиотеки в архиве вместе с rtorrent и xmlrpc. Статически пока собрать не удалось. Там configure отрабатывает очень багнуто, при линковке библиотеки других ос слинковать пытается. С этим просто все, но сел на crt0.o которая линкуется только в статике. Эта библиотека не указывается при линковке в мейках xmlrpc. Получает видимо из LD флага ос, но такой библиотеки в ос нет. В общем есть чем заняться в ближайшее время :).
так, вроде, с группами все (кроме синхронизации с существующими - это отдельная песня) все должно работать (включая русские буквы в метках - помогло Ваше последнее исследование)
Cупер. Все работает. Русские метки работают :). Создал метки с идентичными именами какие стоят на закачках, все подхватил и раскидал по группам. На счет "все", еще одну мелочь надо бы =) рядом с названием группы количество элементов в ней, а то что бы узнать если что внутри, надо развернуть.
Я бы хотел выразить Вам благодарность с занесением в "about" (ммм, очень похоже на с занесением в фотокарточку, хехе). Так что если Вас есть какая-нибудь личная страничка, то сообщите мне. Если Вы не хотите, чтобы я Вас включал в "about" - сообщите тоже. Моя почта vovasty собака(обезьянка, улитка, а-коммерческая ...) aramzamzam.net
Я не против, но страницы нет (по крайней мере пока).
-

vovasty 2010-03-29 06:45:15 UTC
- Milestone set to 0.4.0
-

vovasty 2010-03-29 06:46:56 UTC
- State changed from open to resolved
-

dkobzev 2010-03-29 13:59:47 UTC
У меня например стоит расписание, ночью выставляется глобальное ограничение скорости, "черепашка" загорается только после рестарта Nativa. И таких объектов много еще будет.
Видимо это как то правилось. Черепашка теперь при запуске все время горит. Дело в том, что в rtorrent 0 без ограничений, но после установки значения в 0, он сам меняет его на макс. скорость канала. В моем случае это 10240. А проверка похоже на 0 стоит и 10240 считается ограничением скорости.
-

vovasty 2010-03-29 15:17:42 UTC
это странно. Проверка все время была на 0. Может, это у вас что-нибудь?
-

dkobzev 2010-03-30 02:22:23 UTC
Возможно. Я позже заметил что висело 4 туннеля на 5000 порт. Не знаю как такое получилось. Видимо глюк из-за этого.
А размер канала выставляет не rtorrent, а ruttorent. Не знаю зачем им это потребовалось? -

dkobzev 2010-03-30 16:30:36 UTC
Эмм… Загрузка "чужих" меток и кастомное поле для меток групп думаю не нужны. Побаловался с кастом полем, уронил rtorrent. Слишком много гадости всплывает.
Думаю не стоит вообще ориентироваться на другие UI, посмотрел wtorrent там вообще views для меток используется, все не предусмотреть, а текущая гибкость с кастом полем доставит проблем "не продвинутым" пользователям. -

vovasty 2010-03-30 16:44:36 UTC
Кастомное поле нужно, чтобы не вести свою базу меток. А как упал
rtorrent? И какие проблемы были с полями? -

dkobzev 2010-03-30 17:28:28 UTC
Я и не говорю что кастомное поле нужно убрать. Просто если метки custom1, то пусть и будут только в custom1, нельзя давать менять пользователю.
Я ради интереса сменил на custom2, там пути закачки от rutorrenta и у некоторых custom2 существует(не определена). При считывании rtorrent лег. Хотя и для custom1 все равно нужно как-то проверку делать, мало ли какую гадость туда могут поместить, но так определенней хотя бы, не надо учитывать все возможные предназначения custom поля. -

vovasty 2010-03-30 18:17:45 UTC
нене, настройка нужна такая - она просто вынесена в advanced. Мало ли
у кого что в custom1 лежит.
Please Sign in or create a free account to add a new ticket.
With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.
Create your profile
Help contribute to this project by taking a few moments to create your personal profile. Create your profile ยป
native Mac OS X client for rtorrent
more information: http://www.aramzamzam.net/nativa/
People watching this ticket
Attachments
Referenced by
-
19
Not displaying torrent sizes over 4GB properly
You can use rtorrent, compiled for SL by Denis Kobzev fro...
-
10
Groups
(from [d6d011a9e2ff]) initial groups
[#10]
http://bitbuck...
-
10
Groups
(from [ff9aea02009b]) groups settings,
groups context men...
-
11
Nativa Crashing rTorrent
http://aramzamzam.lighthouseapp.com/projects/46068/ticke...