#5 open
No1451

Functionality Request

Reported by No1451 | March 20th, 2010 @ 06:56 AM

A few things that I think might make this app very attractive, especially for people using remote boxes(Seedbox).

1) Remaining Space Management

Just a simple idea, many seedboxes(and to a lesser extent, just rtorrent on local boxes) have a limited amount of hdd space they can occupy, so pulling the location info from .rtorrent.rc on the save location and then displaying a bar/number that indicates how much of your limit you want to use.

So, if you have 250GB of space allotted for torrents and have a usage in the folder ~/username/torrents/ of 100GB it will tell you that you have 150GB remaining and prevent addition of torrents over that size. If this could be made to include max # of torrents that would be cool as well(from what I've read it seems that doing this rtorrent-side requires some tinkering).

2) Move Torrent On Removal. Not sure how hard it would be to implement, but instead of deleting the data when removing a torrent it moves it to folder X. I was peeking around the source code but couldn't figure out where I could add this

If any of this is possible/addable in the near future it would be pretty great:). Thanks for looking

Comments and changes to this ticket

  • vovasty

    vovasty March 20th, 2010 @ 11:31 PM

    2) can be done with rtorrent's functionality.
    It is unclear, what to do with deleted torrents. Current functionality bad, I know ;)
    Transmission, Azureus, etc dealed with local data, but Native with remote - thats why moving data somewhere is not good.

  • No1451

    No1451 March 21st, 2010 @ 02:02 AM

    It can be scheduled, but can it be set to move on manual removal of the torrent? I'm not a big fan of letting some settings determine if I'm going to be removing torrents or not(also I'm not at all sure I understand the syntax laid out in the rtorrent.rc)

    For removed torrents I was just thinking that it would move them into an adjacent folder(for my I have a Completed Downloads that is located inside my ~/torrents/ folder where I store stuff until I can pull it down from my remote box. If I can make this work with just pure rtorrent functionality I would, but I'm not sure how to make it move the files when I manually remove the torrent with Nativa.

    Thanks for looking, #1 is really the bit that I would kill for the most, with that added it would entirely kill my reliance on the webUI

  • vovasty

    vovasty March 21st, 2010 @ 07:54 PM

    I thought about hook, but I'm still far from it :)
    in your case you can move completed torrents somewhere you need (see http://libtorrent.rakshasa.no/wiki/RTorrentCommonTasks#Movecomplete...) and remove torrent from rtorrent any time without deleting data.

  • No1451

    No1451 March 22nd, 2010 @ 01:08 AM

    Excellent, once I figure out how this works it will be good:)

    You thought about hook? Is that related in some way to my first request? At any rate, thanks for the input, maybe I will try and get some learning in with this code and see what I can manage. I appreciate the efforts so far!

  • vovasty

    vovasty March 22nd, 2010 @ 01:43 AM

    I think, correct way is implement some UI for rtorrent's rules (events). It one of the most powerful things in it.

  • No1451

    No1451 March 23rd, 2010 @ 03:54 PM

    Ok, is it possible to do something like my first suggestion? How difficult would it be to have the user specify a set size that they want their download folder to not exceed and then having Nativa display the remaining of that cap?

    If it's not in the cards to have it added soon, would you be able to give me some tips on how I might add it myself to the status bar(where it shows DL/UL)?

  • No1451

    No1451 March 23rd, 2010 @ 04:11 PM

    Sorry, meant to attach this image of what I am thinking, in this example(random numbers!) I have 200GB of total space I want consumed and have 14.8GB of torrent files in my directory ~/torrents/

  • vovasty

    vovasty March 23rd, 2010 @ 05:24 PM

    It is easy to implement, I'll do it in next release :)

  • No1451

    No1451 March 23rd, 2010 @ 05:27 PM

    Awesome, having a real-deal native app blows the door off those terrible/ugly webUIs you generally get for rTorrent.

    Many thanks!

  • vovasty
  • vovasty
  • No1451

    No1451 March 24th, 2010 @ 06:56 AM

    How does it determine space remaining? Does it do a free space check or just compare vs a user-entered value(the case I have)?

  • vovasty

    vovasty March 24th, 2010 @ 03:15 PM

    Free space determined automatically. Now it only showed in status bar. You can look at this functionality with attached app or compile if from sources

  • No1451

    No1451 March 24th, 2010 @ 03:50 PM

    10-03-24 8:48:59 AM Nativa[27016] update download list error: Invalid response
    10-03-24 8:48:59 AM Nativa[27016] Encountered an XML parsing error: Error Domain=NSXMLParserErrorDomain Code=4 UserInfo=0x11316d840 "zero length data"

    new issues with this build

  • vovasty

    vovasty March 24th, 2010 @ 03:56 PM

    This error can be raised when:
    1. rtorrent not running
    2. rtorrent busy or refuses connections

  • dkobzev

    dkobzev March 24th, 2010 @ 04:52 PM

    Надеюсь ничего, что на русском? Видел тикеты от автора в других проектах на русском. С английским сложно.

    по поводу выше описанного видимо "execute_capture/execute_capture_nothrow и к примеру df" хотя не понимаю зачем это нужно? есть get_safe_free_diskspace для получения размера хранилища и close_low_diskspace для установки крайнего значения свободного места при котором происходит остановка закачек. Для функционала этого достаточно, а отображение на панели это уже из серии "рюшечек".

    В плане юзабелити, неприятный момент с добавлением закачек по "schedule = watch_directory,5,5,load_start=", в Nativa без перезапуска не появляются (или дождаться обновления списка не довелось, т.к. минут за 15 не обновилось), а обновить список даже вручную нет возможности.

    Также логин и пароль хранятся в ~/Library/Preferences, не открытым текстом, но все же лучше в Keychain.
    И самое злостное это SSHCommant.sh, по "ps -A | grep ssh" покажет всем желающим и логин и пароль. Можно хотя бы завернуть все это в еще один скрипт, что бы пароль не светился в процессах? А лучше взять исходники OpenSSH и собрать статически в проекте с подключением прямо из проекта не использую скрипты и ssh клиент OS.

    А в плане функционала очень не хватает нормального добавления закачек. Сейчас любой файл просто закидывается в rtorrent, и качается в директорию по дефолту, а хотелось бы при добавлении указывать дополнительный путь(относительно пути по умолчанию Movies\Pictures\Music… etc). Так же возможность выбора стартовать\не стартовать закачку после добавления, для мультифайлов добавлять\не добавлять "name" в путь закачки, установить приоритет, выбрать какие файлы качать, а какие пропустить и т.д. (В трансмишен в мультифайл режиме выскакивает подобное окно с параметрами.)
    Для этого придется BEncode'ь и парсить файлы перед добавлением,
    (может пригодится http://www.glassechidna.com.au/2009/devblogs/objective-c-bencoding-..., менять директорию закачки можно просто устанавливая для каждой закачки "set_directory" на время. В последующем простенький обработчик регулярных выражений сможет автоматически раскидывать закачки по папкам в зависимости от типа файла. И очень сильно не хватает "пользовательских меток" для упорядочивая закачек.

  • dkobzev

    dkobzev March 24th, 2010 @ 05:15 PM

    Free space determined automatically. Now it only showed in status bar. You can look at this functionality with attached app or compile if from sources.

    Плохая идея в случае соединения через инет с rtorrent установленным на NAS и если шара недоступна, либо доступна, но с такой скоростью, что пользоваться ей не возможно. В этом случае фриспейс либо не верный (локальное место считает), либо всегда 0.

  • No1451

    No1451 March 24th, 2010 @ 09:36 PM

    Got it connecting but the space remaining isn't working(sitting at 0 bytes)

  • vovasty

    vovasty March 24th, 2010 @ 09:52 PM

    to No1451

    is command df -k /path/to/mounted/downloads works correctly?

  • vovasty

    vovasty March 24th, 2010 @ 10:04 PM

    • State changed from “new” to “open”

    to dkobzev

    get_safe_free_diskspace для получения размера хранилища и close_low_diskspace для установки крайнего значения свободного места

    эта команда возвращает совершенно непонятную информацию, потому сейчас свободное место определяется локально. Со свободным местом вообще проблема: у вас может быть смонтировано несколько физических дисков.

    В плане юзабелити, неприятный момент с добавлением закачек по "schedule = watch_directory,5,5,load_start=", в Nativa без

    попробуйте посмотреть, появляются ли закачки в самом rtorrent (nativa рефрешит все раз в 3 секунды (по умолчанию))

    Также логин и пароль хранятся в ~/Library/Preferences, не открытым текстом, но все же лучше в Keychain.

    дада, на это есть warning в исходниках ;)

    И самое злостное это SSHCommant.sh, по "ps -A | grep ssh" покажет всем желающим и логин и пароль. Можно хотя бы завернуть все

    Использование OpenSSH усложнит задачу многократно. Сейчас Вы можете использовать аутентификацию по ключу (с использованием трика из тикета #6). В качестве промежуточного решения можно подавать пароль в stdin скрипта, но это отдельная песня ;)

    А в плане функционала очень не хватает нормального добавления закачек. Сейчас любой файл просто закидывается в rtorrent, и

    Все это можно сделать, вопрос только во времени. Если у вас есть пожелания, вы можете оформить их отдельным тикетом, это проще и удобнее. За ссылку на фреймворк спасибо!

  • No1451

    No1451 March 24th, 2010 @ 10:19 PM

    vovasty: It does but it doesn't present the proper values as I'm on a shared box so I have an allotment of the free space I can use.

  • dkobzev

    dkobzev March 25th, 2010 @ 12:18 AM

    эта команда возвращает совершенно непонятную информацию, потому сейчас свободное место определяется локально. Со свободным местом вообще проблема: у вас может быть смонтировано несколько физических дисков.

    Поэтому и предложил вариант df по directory, это будет самый честный вариант при условии что внутри directory ничего не смонтировано. А вообще это больше относится к работе rtorrent, негоже делать работу серверной части в клинте. close_low_diskspace поможет поставить ограничение и предотвратить падение rtorrent сервера, а визуальное отображение свободное места, с текущими доступными методами, делать, дело не благородное. Лучше озадачить этим разработчиков rtorrent, хотя думаю этот функционал будет проблематично обосновать :)

  • vovasty

    vovasty March 25th, 2010 @ 01:41 AM

    Поэтому и предложил вариант df по directory, это будет самый честный вариант при условии что внутри directory ничего не смонтировано. А вообще это больше относится к работе rtorrent, негоже делать работу серверной части в клинте. close_low_diskspace поможет поставить ограничение и предотвратить падение rtorrent сервера, а визуальное отображение свободное места, с текущими доступными методами, делать, дело не благородное. Лучше озадачить этим разработчиков rtorrent, хотя думаю этот функционал будет проблематично обосновать :)

    Я начал копать в сторону ssh соединения с сервером - для определения свободного места, просмотра директорий и т.п.
    Боюсь, это единственный приемлемый способ. Возможны, конечно, проблемы с диалектами ls и df, но это все решаемо.
    SFTP не даст мне возможности определить свободное место.

  • dkobzev

    dkobzev March 25th, 2010 @ 11:36 AM

    SFTP !- SSH. Dropbear к примеру не умеет SFTP, хотя это SSH сервер.
    Через SSH придется теми же командами ls и df оперировать. Чем XMLRPC команды execute_capture и execute_capture_nothrow выдающие stdout комманд не подходят?

  • vovasty

    vovasty March 25th, 2010 @ 06:14 PM

    • State changed from “open” to “hold”

    looks like task is more difficult than expected. I'll hold it for a while.

    to No1451:
    if you need to prevent adding torrent to overflowed storage, use dkobzev's advice:

    schedule = low_diskspace,5,60,close_low_diskspace=500M

    more info http://forums.opensuse.org/archives/sf-archives/archives-software/3...

  • vovasty

    vovasty March 25th, 2010 @ 06:16 PM

    to dkobzev:

    В дальнейшем я планировал использовать не только rtorrent, но и другие клиенты. Плюс, такие вещи лучше всего делать через шелл, нежели через rtorrent (он часто подглюкивает)

  • No1451

    No1451 March 25th, 2010 @ 06:23 PM

    Is it not possible to have a setting to check for remote users and a field that designates how much space they have then get the total size of a given folder? Or am I too naive about what you can do with this, would be better for me if I could read some of the posts(russian?) but sadly languages are not my strong point:)

  • vovasty

    vovasty March 25th, 2010 @ 06:31 PM

    to No1451:

    there are two problems with this task:
    1. How correctly determine free space (current method is incorrect)
    2. How to show it

    At the end of discussion with dkobzev I decided to implement special "add torrent dialog" (like transmission's one), which will warn user about free space, asks about remote folder etc. But it requires lots of time to implement, so ticket is hold for some time.

    you can read translated version of discussion http://translate.google.com/translate?js=y&prev=_t&hl=en&am...

  • vovasty

    vovasty April 19th, 2010 @ 01:51 AM

    • State changed from “hold” to “open”

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.

New-ticket Create new ticket

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/

Shared Ticket Bins

People watching this ticket

Attachments

Referenced by

Pages