Page 1 of 2

Working CLI interface for 0.5.0 for sabnzbd+

Posted: March 14th, 2010, 11:31 am
by tobiasthecommie
UPDATE:

I have rereleased this as SABcli on

http://code.google.com/p/sabcli/

Further updates and changelog will happen there.

------------------------

I hacked the sabnzbd_client.py script to work with 0.5

I'm not sure if there is an official maintainer of the script, i couldn't find anything, so posting the patched version here.

As far as i know there never was a fully implemented CLI(with API limitations before 0.5.0) so i just updated the script i used. I know there are others out there, but as far as i know none of them work with 0.5.0.

For now, at least, it is just a plain transfer to 0.5.0 with one minor, addition. If there is interest i might update the functionality a bit.

Changes since the version i downloaded:
- Added support for 0.5.0*
- The command "status" is now called "queue"
- Added the environment variable "SABCLICFG" so you can now define the location of the config file.

*I haven't tested the newzbin functionality since i don't have a newzbin account.

Does anyone besides me care about this script?
I am considering adding some queue manipulation to the script, and i might just entirely refactor it.

Re: sabnzbd_client.py for 0.5 [working script attached]

Posted: March 14th, 2010, 4:13 pm
by tobiasthecommie
Ok, added some more stuff aleady.

Added version numbering, this is version 0.2(because i consider the first one i downloaded to be 0.1).

Changes since version 0.1
- Added support for 0.5.0 ( newzbin not tested )
- The command "status" is now called "queue"
- Added the environment variable "SABCLICFG" so you can now define the location of the config file.
- Added Warnings
- Added History (And support for delete of ALL history. Does anyone want selective history deletion? Is pretty easy to add)
- Added newapikey support.
- Added speedlimit support.
- Added version support. (Shows program version, api version, and daemon version. Tests if api and daemon version match)

Todo:
- delete and move queue items
- Action on queue complete
- Change Post Processing
- Change Priority

Re: sabnzbd_client.py for 0.5 [working script attached]

Posted: March 14th, 2010, 5:04 pm
by wally007
I may be daft or something but i still havent figured out what the heck your script is about.

Re: sabnzbd_client.py for 0.5 [working script attached]

Posted: March 14th, 2010, 5:59 pm
by tobiasthecommie
It's not my script, i just updated it.

It's a CLI interface to sabnzbd. I really prefer to work in terminals, and i like always having access through ssh. I know i can port forward and use the web interface through that. But i would rather just have a nice Command Line Interface.

Re: sabnzbd_client.py for 0.5 [working script attached]

Posted: March 14th, 2010, 6:10 pm
by tobiasthecommie
Ok, here is version 0.3

Changes since version 0.2
- added priority support
- added rename support
- added remove support
- added pathget support
- added move support. (move items in download queue)
- added postproccessing support
- added queuecompleted support General on the webinterface>
------

Install:
move sabnzbd_client.py to a place in PATH
make sabnzbd_client.py executable
install xmltopy

Usage:
Run sabnzbd_client.py with no arguments to get a help screen:
----
~ $ sabnzbd_client.py
sabnzbd_client.py

Compatible with SABnzbd+: 0.5.0

Commands:
       pause
       resume
       shutdown
       restart
       version
       queue
       warnings
       move [id] [new position]
       history [delete]
       newapikey [confirm]
       speedlimit [value]
       newzbin
       addurl
       pathget
       rename [id] [newname]
       remove [id]
       priority [id] [value]-1 = Low, 0 = Normal, 1 = High, 2 = Force
       postprocessing [id] [value] 0 = Skip, 1 = Repair, 2 = Unpack, 3 = Delete
       queuecompleted - implemented, not confirmed

Environment variables:
       SABCLICFG=~/.nzbrc (default)
----

If there are any questions, bug reports, or feature requests, just reply to this thread and i will get an email.

Though i'm not sure if anyone other than me care about a CLI interface. It is actually the one thing i really miss from hellanzb.

Re: Working CLI interface for 0.5.0 with working queue manipulation.

Posted: March 20th, 2010, 8:44 am
by tobiasthecommie
Added better support for managing host information from the command line, instead of using config file.

Version 0.4 - Changelog
- Added argument support for
 - Hostname
 - Port
 - Username
 - Password
 - Apikey

-- Help screen --


sabnzbd_client.py

Compatible with SABnzbd+: 0.5.0

Commands:
       pause
       resume
       shutdown
       restart
       version
       queue
       warnings
       move [id] [new position]
       history [delete]
       newapikey [confirm]
       speedlimit [value]
       newzbin
       addurl
       pathget
       rename [id] [newname]
       remove [id]
       priority [id] [value]-1 = Low, 0 = Normal, 1 = High, 2 = Force
       postprocessing [id] [value] 0 = Skip, 1 = Repair, 2 = Unpack, 3 = Delete
       queuecompleted - implemented, not confirmed

Arguments:
       -h [--help]                     Help screen
       -j [job-option=3]               Set job-option
       -H [--hostname=localhost]       Hostname
       -P [--port=8080]                Port
       -u [--username=user]            Username
       -p [--password=pass]            Password
       -a [--apikey=15433acd...]       Apikey

Environment variables:
       SABCLICFG=~/.nzbrc (default)

Re: Working CLI interface for 0.5.0 with working queue manipulation.

Posted: March 21st, 2010, 6:46 pm
by tobiasthecommie
Yet another version

Version 0.5 - Changelog
- Version bumped to version 0.5 since all the functionality seems to be there. Future versions(if any) will be in the form of 0.5-1. The major version number will match the SABnzbd+ from here on out(with the added -X for minor bugfixes etc).
- Replaced the NZO_id with index id in all functions.
- Now shows queue if launched with no command.
- Much improved queue screen
  - 3 line layout.
  - Fixed problem with too many whitespaces.
  - Added average age
  - Added Timeleft
  - Added Priority
  - Added PostProcessing.
  - Added percentage for individual downloads, and for total queue.
- Better feedback on all functions.
  - These functions "remove, rename, move, priority, postprocessing, addurl, pause and resume" now all give the queue screen as output.
- Much improved history screen.
 - Now shows if par verify passed or failed.
 - Same for unpack.
 - Shows what went wrong on failure.
 - There is no feedback about delete, so that has been left out.
- Changed temp/target to free/total on target. - That is, free/total disk space on target disk.

----- Queue screen -----
$ sabnzbd_client.py

Free/Total Disk: 13.11 / 270.66 GB                           Speed: 1356.90 kb/s                          
                       Queue: 425.06 / 1410.06 MB [30%]                        
# - Filename                                                     Size (MB) [pct]                                                    
--------------------------------------------------------------------------------
0 - download.1 (active)
   Priority: Normal - PostProcessing: Download, Repair
   Average Age: 14d - Timeleft: 0:00:21                    28.91 / 406.59 [92%]                  

1 - download.3
   Priority: Normal - PostProcessing: Download, Repair
   Average Age: 1d - Timeleft: 0:06:04                    454.36 / 501.74 [ 9%]                  

2 - download.2
   Priority: Normal - PostProcessing: Download, Repair
   Average Age: 1d - Timeleft: 0:12:23                    501.74 / 501.74 [ 0%]                  

---- History screen -----

$ sabnzbd_client.py history

Free/Total Disk: 9.25 / 270.66 GB                               Speed: 0.00 kb/s                              
                       Queue: 0.00 / 0.00 MB [ 0%]                        
# - Filename                                                           Size (MB)                                                          
--------------------------------------------------------------------------------
Name.S00E00.HDTV.XviD-bla
- [download: 182.66 MB] [par2: OK] [unpack: OK]

multiple.gb.download
- [download: 14.38 GB] [par2: FAIL]
- [rw-cd3] Repair failed, not enough repair blocks (100 short)
- [rw-cd1] Repair failed, not enough repair blocks (117 short)
- [rw-cd2] Repair failed, not enough repair blocks (87 short)

Re: Working CLI interface for 0.5.0 with working queue manipulation.

Posted: March 22nd, 2010, 6:09 pm
by tobiasthecommie
Version 0.5-1 - Changelog
- Minor cleanup
- Cleanup of help screen
- History is now in reverse order(newest last)
- Added Pause individual download
- Added Resume individal download
- Added status for all items in queue
- Added details view for items in queue
- Added temporary pause
- Added ability to delete multiple items from the queue, or the entire queue

----- Queue screen -----
$ sabnzbd_client.py

Free/Total Disk: 13.11 / 270.66 GB                           Speed: 1356.90 kb/s                          
                       Queue: 425.06 / 1410.06 MB [30%]                        
# - Filename                                                     Size (MB) [pct]                                                    
--------------------------------------------------------------------------------
0 - download.1 (Paused)
   Priority: Normal - PostProcessing: Download, Repair
   Average Age: 14d - Timeleft: 0:00:21                    28.91 / 406.59 [92%]                  

1 - download.3 (Downloading)
   Priority: Normal - PostProcessing: Download, Repair
   Average Age: 1d - Timeleft: 0:06:04                    454.36 / 501.74 [ 9%]                  

2 - download.2 (Queued)
   Priority: Normal - PostProcessing: Download, Repair
   Average Age: 1d - Timeleft: 0:12:23                    501.74 / 501.74 [ 0%]                  


----- Details screen -----
$ sabnzbd_client.py details 0

Filename
--------------------------------------------------------------------------------
download.1.rar
- [Status: finished] [Downloaded: 19.69/19.69 MB]

download.1.r00
- [Status: active] [Downloaded: 15.12/19.69 MB]

download.1.par2
- [Status: queued] [Downloaded: 0.38/3.97 MB]



--------------------------------------------------------------------------------

There are currently only a few things missing from the API:
- Anything to do with categories
- Anything to do with scripts
- Extra information (priority, category, etc) when adding new downloads.
- Swapping two items in the queue
- Deleting specific(single or multiple) history items.

everything else at http://wiki.sabnzbd.org/api have been implemented, unless i have missed something.

Re: Working CLI interface for 0.5.0 for sabnzbd+

Posted: March 29th, 2010, 1:11 pm
by tobiasthecommie
This is probably going to be the last update for 0.5 of sabnzbd+

Baring API changes there really isn't that much left to do with 0.5

Version 0.5-2 - Changelog
- Updated/Simplified queue view
- Added progress bar to queue view
- Minor changes in Warnings view (added whitespaces to make it slightly prettier)


NOTE: The lines line up and look better in a terminal than on the forum

~ $ sabnzbd_client.py

Free/Total Disk: 11.60 / 270.66 GB                                                                                                        Speed: 4990.67 kb/s                                                                                                        
                                                              Queue: 183.36 / 1503.21 MB [12%]                                                              
# - Filename [Age/Priority/Post Processing] (Status)                                                                              Downloaded/Total (MB) [pct]                                                                              
-------------------------------------------------------------------------------------------------------------------------------------------------------------
0 - download.1 [12h/Normal/Delete] (Downloading)
   [0:02:28] [======================================================>           ] 6218.77 / 6763.98 [91%]


1 - download.12 [12h/Normal/Delete] (Queued)
   [>                                                                                                                                  ] 0.00 / 751.61 [ 0%]

Re: Working CLI interface for 0.5.0 for sabnzbd+

Posted: April 3rd, 2010, 5:26 am
by tobiasthecommie
Version 0.5-3 - Changelog
- Minor bugfixes
- Code cleanup and refactor
- Added warnings. (Client will now warn you if queue size is bigger than free space, or total space, on destination device).
- The layout of the queue screen has been improved.

NOTE: I just updated the file. There was a minor bug in the warnings system. Low space warnings was triggered even when there was enough disk space left.

Re: Working CLI interface for 0.5.0 for sabnzbd+

Posted: April 4th, 2010, 5:20 pm
by tobiasthecommie
I have rereleased this as SABcli on

http://code.google.com/p/sabcli/

Further updates and changelog will happen there.

A 0.5-4 has been released there, and a 0.5-5 with color support is on the roadmap.

Note: If anyone have had problems wtih the dependency on xmltopy(which isn't on my freebsd system), i have removed that dependency as of 0.5-4.

Also, as of 0.5-4 the program is released under GPLv3

This thread will recieve no further updates.

Re: Working CLI interface for 0.5.0 for sabnzbd+

Posted: April 4th, 2010, 7:41 pm
by thaylok
thanks! this was actually quite useful :)

Re: Working CLI interface for 0.5.0 for sabnzbd+

Posted: April 4th, 2010, 8:15 pm
by tobiasthecommie
thaylok wrote: thanks! this was actually quite useful :)
I'm glad someone finds it useful. :)

And i already released the next version, that is, 0.5-5.

Re: Working CLI interface for 0.5.0 for sabnzbd+

Posted: May 18th, 2010, 7:12 am
by emilb
Hi,

it works great, thanks alot!

/Emil

Re: Working CLI interface for 0.5.0 for sabnzbd+

Posted: May 18th, 2010, 11:30 am
by tobiasthecommie
emilb wrote: Hi,

it works great, thanks alot!

/Emil
Thanks. But i honestly believe the curses version is the superior program. Though the cli version clearly has its uses.(you can pipe it)

The curses version is easier and more intuitive to use.