Sutto-SABnzbd 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/SABnzbd.gemspec +1 -1
  2. data/VERSION.yml +2 -2
  3. data/lib/sabnzbd.rb +60 -0
  4. metadata +1 -1
data/SABnzbd.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{SABnzbd}
5
- s.version = "0.1.1"
5
+ s.version = "0.2.0"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Darcy Laycock"]
data/VERSION.yml CHANGED
@@ -1,4 +1,4 @@
1
1
  ---
2
- patch: 1
2
+ patch: 0
3
3
  major: 0
4
- minor: 1
4
+ minor: 2
data/lib/sabnzbd.rb CHANGED
@@ -121,4 +121,64 @@ class SABnzbd
121
121
  Status.jobs_from(status)
122
122
  end
123
123
 
124
+ class << self
125
+
126
+ @@settings_path = File.expand_path("~/.sabnzbd/sabnzbd.ini")
127
+
128
+ def settings_path
129
+ @@settings_path
130
+ end
131
+
132
+ def settings_path=(value)
133
+ @@settings_path = value
134
+ end
135
+
136
+ def settings
137
+ self.parse_ini(File.read(self.settings_path))
138
+ end
139
+
140
+ def local
141
+ s = self.settings
142
+ base_uri "#{s["misc"]["host"]}:#{s["misc"]["port"]}"
143
+ self.new(s["misc"]["username"], s["misc"]["password"])
144
+ end
145
+
146
+ protected
147
+
148
+ def parse_ini(text)
149
+ options = {}
150
+ keys = []
151
+ text.each_line do |line|
152
+ if line =~ /^(\[+([^\[\]]+)\]+)$/
153
+ normal, name = $1, $2
154
+ start = line.match(/^\[+/)[0]
155
+ depth = start.length
156
+ if depth == 1
157
+ keys = []
158
+ elsif depth <= keys.size
159
+ width = (depth - 2)
160
+ width = 0 if width < 0
161
+ keys = keys[0..width]
162
+ end
163
+ keys << name
164
+ set_value options, keys, {}
165
+ elsif line =~ /^(.*)=(.*)$/
166
+ key, value = $1.strip, $2.strip
167
+ set_value options, (keys + [key]), value
168
+ end
169
+ end
170
+ return options
171
+ end
172
+
173
+ def set_value(options, keys, value)
174
+ r = options
175
+ keys[0..-2].each do |k|
176
+ r = (r[k] ||= {})
177
+ end
178
+ r[keys.last] = value
179
+ return options
180
+ end
181
+
182
+ end
183
+
124
184
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: Sutto-SABnzbd
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Darcy Laycock