rootor 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 15dbfbc038a84afc383b11e112467a3f5d3f5072
4
- data.tar.gz: 89932a88882db6259bfd2e2444bd420d55947272
3
+ metadata.gz: 941a719fe6d5ca4530fd4ad85390c55de5277762
4
+ data.tar.gz: ac8b9b6862d1e35255bd7001e24ac99d0cc5ad24
5
5
  SHA512:
6
- metadata.gz: a14bcc0d475658c04e37417f4c74a8eea1500c02169f5ca8c99ffbfabba936a402e92dd0e317e0a47c1213bb9dcd52396d1a8ceab5e9144ee4e5829a2373615f
7
- data.tar.gz: '099c11134037670eed044c029fecf31b89d6cb201f3054e32a8740d44e7ca989e1584891dcc963e3ad43dcfa888f01e54c58f8a64ab234f4e7a57b3b618f1edb'
6
+ metadata.gz: 9afaf2eeb76c8652b8169b4173d293240cbde0e391d8270116eb57cef22737f3e4c5865536ec8ae07130cafce1896c4411cd7be6189ee45d49da45ed01f3eca9
7
+ data.tar.gz: 25da29ba999103eefd9a14c655e8439f8da75a889ccbe7d29f707d304460a7592a624ac66abb77ad0434c4fd861c7cfa4ff664cd0309c7ddaafe0b50975abf25
data/README.md CHANGED
@@ -1,24 +1,31 @@
1
- Rootor is an `xmlrpc` rtorrent ruby frontend.
1
+ Rootor is an `XMLRPC` client rtorrent ruby interface.
2
2
  ```bash
3
3
  gem install rootor
4
4
  ```
5
5
 
6
-
7
6
  ```ruby
8
7
  require 'rootor'
9
8
 
10
9
  r = Rootor.new('https://<user>:<password>@<server>:<port>/<xmlrpc>')
11
10
 
12
- puts r.torrents.length
11
+ # get all your torrents
12
+ r.torrents
13
+
14
+ # make them more digestible
15
+ r.torrents.serialize
16
+
17
+ # find best one
18
+ r.torrents.sort_by(&:ratio).last
13
19
 
20
+ # add a new torrent
14
21
  r.load_from_file('<file.torrent>')
15
22
  ```
16
23
 
17
- Reference
24
+ Reference material
18
25
  ---
19
- https://github.com/mdevaev/emonoda/wiki/rTorrent-XMLRPC-Reference
26
+ https://ruby-doc.org/stdlib-2.3.1/libdoc/xmlrpc/rdoc/XMLRPC/Client.html
20
27
 
21
- http://elektito.com/2016/02/10/rtorrent-xmlrpc/
28
+ https://github.com/mdevaev/emonoda/wiki/rTorrent-XMLRPC-Reference
22
29
 
23
30
  https://github.com/rakshasa/rtorrent/wiki/rTorrent-0.9-Comprehensive-Command-list-(WIP)
24
31
 
data/lib/client.rb CHANGED
@@ -18,6 +18,10 @@ class Client < XMLRPC::Client
18
18
  call('load.raw_start', '', bytes)
19
19
  end
20
20
 
21
+ def erase(hash)
22
+ call('d.erase', hash)
23
+ end
24
+
21
25
  private
22
26
 
23
27
  def render_downloads_queries
data/lib/rootor.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require 'xmlrpc/client'
2
2
  require 'filesize'
3
+ require 'json'
3
4
  require_relative 'client'
4
5
  require_relative 'torrent'
5
6
  require_relative 'queries'
@@ -8,7 +9,7 @@ class Rootor
8
9
  attr_accessor :client, :torrents
9
10
 
10
11
  def initialize(xmlrpc_url)
11
- @client = Client.new2(xmlrpc_url)
12
+ @client = Client.new2(xmlrpc_url)
12
13
  @torrents = refresh!
13
14
  end
14
15
 
@@ -20,8 +21,8 @@ class Rootor
20
21
  @torrents.map(&:serialize)
21
22
  end
22
23
 
23
- def pretty_serialized_torrents
24
- @torrents.map(&:pretty_serialize)
24
+ def json_torrents
25
+ serialized_torrents.to_json
25
26
  end
26
27
 
27
28
  def find(str)
@@ -35,6 +36,10 @@ class Rootor
35
36
  @client.load_start(XMLRPC::Base64.new(data))
36
37
  end
37
38
 
39
+ def remove(hash)
40
+ @client.erase(hash)
41
+ end
42
+
38
43
  def load_from_file(path)
39
44
  load_from_raw(File.read(path))
40
45
  end
data/lib/torrent.rb CHANGED
@@ -7,40 +7,27 @@ class Torrent
7
7
  end
8
8
  end
9
9
 
10
- def serialize(pretty: false)
10
+ def serialize
11
11
  serialized_queries = Hash[
12
12
  @raw_hash.map do |k, v|
13
13
  [
14
14
  k,
15
- mutate(FLAT_QUERIES[k][:kind], v, pretty: pretty)
15
+ mutate(FLAT_QUERIES[k][:kind], v)
16
16
  ]
17
17
  end
18
18
  ]
19
19
 
20
- serialized_queries.merge(
21
- {
22
- tracker: URI(serialized_queries[:tracker_url]).host
23
- }
24
- )
25
- end
26
-
27
- def pretty_serialize
28
- serialize(pretty: true)
20
+ serialized_queries.merge({
21
+ tracker: URI(serialized_queries[:tracker_url]).host
22
+ })
29
23
  end
30
24
 
31
25
  private
32
26
 
33
- def mutate(kase, data, pretty:)
27
+ def mutate(kase, data)
34
28
  case kase
35
- when :file
36
- filesize = Filesize.from("#{data} B")
37
- pretty ? filesize.pretty : filesize
38
- when :rate
39
- filesize = Filesize.from("#{data} B")
40
- pretty ? "#{filesize.pretty}/s" : filesize
41
29
  when :time
42
- time = Time.at(data)
43
- pretty ? time.to_s : time
30
+ Time.at(data).to_i
44
31
  when :ratio
45
32
  data.to_f / 1000
46
33
  when :int
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rootor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - graham otte
@@ -11,7 +11,7 @@ cert_chain: []
11
11
  date: 2017-01-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: filesize
14
+ name: json
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="