rtorrent_xmlrpc 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/bin/rtorrent_xmlrpc +10 -3
- data/lib/rtorrent_xmlrpc/torrent.rb +8 -7
- data/lib/rtorrent_xmlrpc/torrents.rb +20 -0
- data/lib/rtorrent_xmlrpc/xmlrpc.rb +3 -25
- data/rtorrent_xmlrpc.gemspec +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4ae000db9daac6192dce5cf98cc2c8d974d42b7c
|
4
|
+
data.tar.gz: 584a8a6dead03963572ef365a663a74443e84955
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 38942789a53713954eada8eec5e817a834b3b980aac312c21ecebd0d6b476e089089e9a202e85a9567d89447c48b005d9d7471c8f2bc98014ac56178485cac14
|
7
|
+
data.tar.gz: 13e72a2aaee74129a9f2f661965159dd581b5b2910487018460f4e43ada857a58e9ddc85a828b500475e17e7bf81ade9a533d2214a97378ce1614b5db06853c1
|
data/Gemfile.lock
CHANGED
data/bin/rtorrent_xmlrpc
CHANGED
@@ -1,11 +1,14 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
3
|
require 'hashie'
|
4
|
+
require 'json'
|
4
5
|
require 'rtorrent_xmlrpc'
|
5
6
|
require 'thor'
|
6
7
|
|
7
8
|
class RTorrent_XMLRPC < Thor
|
8
9
|
|
10
|
+
class_option '--json', type: :boolean
|
11
|
+
|
9
12
|
def initialize(*args)
|
10
13
|
super
|
11
14
|
# Read in config file
|
@@ -26,7 +29,11 @@ class RTorrent_XMLRPC < Thor
|
|
26
29
|
|
27
30
|
no_tasks do
|
28
31
|
def print(torrents)
|
29
|
-
|
32
|
+
if options[:json]
|
33
|
+
puts torrents.to_json
|
34
|
+
else
|
35
|
+
torrents.each { |torrent| torrent.pp }
|
36
|
+
end
|
30
37
|
end
|
31
38
|
end
|
32
39
|
|
@@ -52,7 +59,7 @@ class RTorrent_XMLRPC < Thor
|
|
52
59
|
|
53
60
|
desc "complete", "Print all torrents that are complete."
|
54
61
|
def complete
|
55
|
-
self.print @xmlrpc.completed
|
62
|
+
self.print @xmlrpc.torrents.completed
|
56
63
|
end
|
57
64
|
|
58
65
|
desc "incomplete", "Print all incomplete torrents."
|
@@ -62,7 +69,7 @@ class RTorrent_XMLRPC < Thor
|
|
62
69
|
|
63
70
|
desc "labeled LABEL", "Print all torrents with label"
|
64
71
|
def labeled(label)
|
65
|
-
self.print @xmlrpc.with_label label
|
72
|
+
self.print @xmlrpc.torrents.with_label label
|
66
73
|
end
|
67
74
|
|
68
75
|
desc "files HASH", "Print the torrent information with files."
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'colorize'
|
2
2
|
require 'filesize'
|
3
|
+
require 'json'
|
3
4
|
require 'xmlrpc/client'
|
4
5
|
|
5
6
|
module RTorrent
|
@@ -15,6 +16,10 @@ module RTorrent
|
|
15
16
|
attr_accessor :base_filename, :base_path, :completed, :files, :hash, :is_multi_file, :name, :tied_to_file
|
16
17
|
attr_reader :down_total, :labels, :priority, :ratio, :size, :up_total
|
17
18
|
|
19
|
+
def completed?
|
20
|
+
self.completed
|
21
|
+
end
|
22
|
+
|
18
23
|
def down_total=(down_total) # :nodoc:
|
19
24
|
@down_total = Filesize.new(down_total)
|
20
25
|
end
|
@@ -74,6 +79,7 @@ module RTorrent
|
|
74
79
|
base_filename: @base_filename,
|
75
80
|
base_path: @base_path,
|
76
81
|
completed: @completed,
|
82
|
+
files: @files,
|
77
83
|
hash: @hash,
|
78
84
|
is_multi_file: @is_multi_file,
|
79
85
|
labels: @labels,
|
@@ -85,14 +91,9 @@ module RTorrent
|
|
85
91
|
}
|
86
92
|
end
|
87
93
|
|
88
|
-
#
|
89
|
-
def self.header
|
90
|
-
"hash : name : size : down : up : ratio : labels"
|
91
|
-
end
|
92
|
-
|
93
|
-
# All torrent data in a single string for output to screen
|
94
|
+
# Convert object to string as json
|
94
95
|
def to_s
|
95
|
-
|
96
|
+
self.to_h.to_json
|
96
97
|
end
|
97
98
|
|
98
99
|
# All torrent data dumped to screen in color
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module RTorrent
|
2
|
+
|
3
|
+
class Torrents < Array
|
4
|
+
def completed
|
5
|
+
result = Torrents.new
|
6
|
+
self.each do |torrent|
|
7
|
+
result << torrent if torrent.completed?
|
8
|
+
end
|
9
|
+
return result
|
10
|
+
end
|
11
|
+
def with_label(label)
|
12
|
+
result = Torrents.new
|
13
|
+
self.each do |torrent|
|
14
|
+
result << torrent if torrent.has_label? label
|
15
|
+
end
|
16
|
+
return result
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'hashie'
|
2
2
|
require 'rtorrent_xmlrpc/torrent'
|
3
|
+
require 'rtorrent_xmlrpc/torrents'
|
3
4
|
require 'xmlrpc/client'
|
4
5
|
|
5
6
|
module RTorrent
|
@@ -22,7 +23,7 @@ module RTorrent
|
|
22
23
|
self.password = password
|
23
24
|
self.path = path
|
24
25
|
self.use_ssl = use_ssl
|
25
|
-
@torrents =
|
26
|
+
@torrents = Torrents.new
|
26
27
|
@status = :initialized
|
27
28
|
end
|
28
29
|
|
@@ -59,10 +60,7 @@ module RTorrent
|
|
59
60
|
# Grab list of torrents from server
|
60
61
|
def fetch_torrents
|
61
62
|
self.connect unless @status == :connected
|
62
|
-
@torrents =
|
63
|
-
#@server.call('d.multicall', 'main', 'd.hash=').each do |result|
|
64
|
-
# @torrents << RTorrent::Torrent.new(@server, result.first)
|
65
|
-
#end
|
63
|
+
@torrents = Torrents.new
|
66
64
|
args = [
|
67
65
|
'd.multicall',
|
68
66
|
'main',
|
@@ -115,26 +113,6 @@ module RTorrent
|
|
115
113
|
@server.call('d.stop', hash)
|
116
114
|
end
|
117
115
|
|
118
|
-
# Get a list of completed torrents
|
119
|
-
def completed
|
120
|
-
result = []
|
121
|
-
@torrents.each { |torrent| result << torrent if torrent.completed }
|
122
|
-
return result
|
123
|
-
end
|
124
|
-
|
125
|
-
# Get a list of incomplete torrents
|
126
|
-
def incomplete
|
127
|
-
result = []
|
128
|
-
@torrents.each { |torrent| result << torrent unless torrent.completed }
|
129
|
-
return result
|
130
|
-
end
|
131
|
-
|
132
|
-
# Get a list of torrents with label
|
133
|
-
def with_label(label)
|
134
|
-
result = []
|
135
|
-
@torrents.each { |torrent| result << torrent if torrent.has_label? label }
|
136
|
-
return result
|
137
|
-
end
|
138
116
|
end
|
139
117
|
|
140
118
|
end
|
data/rtorrent_xmlrpc.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'rtorrent_xmlrpc'
|
3
|
-
s.version = '0.2.
|
3
|
+
s.version = '0.2.1'
|
4
4
|
s.date = '2015-07-03'
|
5
5
|
s.summary = 'A library and tool to query an rtorrent xmlrpc service.'
|
6
6
|
s.description = 'This is a library to get torrent information from a remote rtorrent server.'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rtorrent_xmlrpc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Zan Loy
|
@@ -103,6 +103,7 @@ files:
|
|
103
103
|
- bin/rtorrent_xmlrpc
|
104
104
|
- lib/rtorrent_xmlrpc.rb
|
105
105
|
- lib/rtorrent_xmlrpc/torrent.rb
|
106
|
+
- lib/rtorrent_xmlrpc/torrents.rb
|
106
107
|
- lib/rtorrent_xmlrpc/xmlrpc.rb
|
107
108
|
- methods.txt
|
108
109
|
- rtorrent_xmlrpc.conf.sample
|