0.01
Repository is archived
No commit activity in last 3 years
No release in over 3 years
Simple api to manage aria2c via api
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Development

~> 1.7
~> 10.0
>= 0
 Project Readme

Aria2Driver

Simple api to manage aria2c via api

Status

Gem Version Build Status Code Climate

Installation

Add this line to your application's Gemfile:

gem 'aria2_driver'

And then execute:

$ bundle

Or install it yourself as:

$ gem install aria2_driver

Usage

Simple aria2 client initialization

aria2 = Aria2Driver::JsonRpc::Client.new 'hostname'

With the previous line of code you can create a client that will make requests to aria2c downloader running on hostname server accepting connections to port 80 with default http scheme. The client created as is will have a self generated client id (using SecureRandom).

aria2 = Aria2Driver::JsonRpc::Client.new 'hostname',
              {port: 9090, scheme: 'https', id: 'my', token: 'abcd-1234'}

With the code described above, you can override default connection parameters specifying also a custom client_id and a secret token. The latter will be used in any of the following requests and must match the --rpc-secret parameter specified in the aria2c configuration.

Making requests

Aria2Driver allows you to make a generic request, via jsonrpc, in which you have to put the aria2 method and request parameters, as described below

response = aria2.request Aria2Driver::JsonRpc::Request.new 'aria2.addUri',
                         {params: [['http://www.example.com/a.jpg'], {"dir" => "/tmp/"}]}

it's also possible to make the same request as follow

response = aria2.add_uri {params: [['http://www.example.com/a.jpg'], {"dir" => "/tmp/"}]}

Response

Aria2Driver request can lead to a valid aria2c response or to an exception (ResponseException) in case of a connection problem or any other kind of problem occurred in the communication with aria2c. You can check if a valid response is an 'error' one or a 'result' one checking the error? method as below

response = aria2.get_version
response.error?

If a response is an error one, the error getter returns you a simple ruby wrapper class of the jsonrpc error block, with code, message and the optional data

error = response.error

error.code # => -32700
error.message # => "Parse error"

If you get a non-error response, you can access the result in form of an hash obtained parsing the json result block in the aria2c response

response.result # => {"gid" => "2089b05ecca3d829", "status" => "active"}

Contributing

  1. Fork it ( https://github.com/[my-github-username]/aria2_driver/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request