descartes 0.7.8 → 0.8

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c32f793f787aef56198d194576c8a76861998675
4
- data.tar.gz: 0cdbcd1dc464ff362280cc4ab6cbb75ad975adee
3
+ metadata.gz: 95f00d7baf615c6abd8b0054b5aa9867ec69b75e
4
+ data.tar.gz: fccadcee3c7c1a4509959eedf10f37e0a7b6f509
5
5
  SHA512:
6
- metadata.gz: cb39e3bf19087832e0e885704c2ee3ca00107cdde17ef7a4b26c6894bcaa34a2454d86909d7936bc0dc0d000273930400c2c10ad1822a10666251160b7b6c672
7
- data.tar.gz: 5d22fd95f01a55cdd474301643aa64006d156df993770aa836503a9d60ec135fc497e5a819472798b0e144459f066c93b3dcde50d97ac0964eb0d50f7e9345fc
6
+ metadata.gz: 1e4c84c9392f4b01d51f714e04891046df600c676809a16b482f575b581d3bd02cc7c1a89831cc5af7bc75e02cafa495186cc2ee9e91b0704a92623fad3b6746
7
+ data.tar.gz: b0fbad812364d96d88b7582ca740f88821cc08bb131078722ad82e86eb647c274ab79a30dc9078ebecd125000fb1830140aa5efdf6fa06bbece923e4ec84e699
data/bin/descartes CHANGED
@@ -56,16 +56,21 @@ files = File.join File.dirname(__FILE__), '../lib/descartes/modules/files'
56
56
  FileUtils.cp_r(files, options[:dotfiles]) unless File.directory? options[:dotfiles]
57
57
 
58
58
  Dir["#{options[:dotfiles]}/**/*"].each { |file|
59
- lib = Dir["#{files}/**/*"].select { |f| File.basename(f) == File.basename(file) }
60
- next if lib.empty?
61
- next unless lib.first.end_with? '.txt'
59
+ lib = Dir["#{files}/**/*"].select { |f| File.basename(f) == File.basename(file) }.first
60
+ next unless lib
61
+ next unless lib.end_with? '.txt'
62
62
 
63
- if File.read(lib.first) != File.read(file)
64
- FileUtils.cp lib.first, options[:dotfiles]
63
+ if File.read(lib) != File.read(file)
64
+ FileUtils.cp lib, options[:dotfiles]
65
65
  puts "'#{file}' has been updated."
66
66
  end
67
67
  }
68
68
 
69
+ new_files = Dir["#{files}/**/*"].map { |f| File.basename(f) } - Dir["#{options[:dotfiles]}/**/*"].map { |f| File.basename(f) }
70
+ new_files.each { |new_file|
71
+ FileUtils.cp File.join(files, new_file), options[:dotfiles]
72
+ }
73
+
69
74
  Cinch::Bot.new {
70
75
  configure do |c|
71
76
  c.nick = options[:nickname]
@@ -0,0 +1,19 @@
1
+ [
2
+ {
3
+ "nicknames": [
4
+ { "nickname": "RoxasShadowRS"},
5
+ { "nickname": "RoxasShadow" },
6
+ ],
7
+ "username" : "Roxas Shadow",
8
+ "password" : "Eheheheheh"
9
+ },
10
+
11
+ {
12
+ "nicknames": [
13
+ { "nickname": "Helltilt" },
14
+ { "nickname": "Hell-11" },
15
+ ],
16
+ "username" : "Hell",
17
+ "password" : "Ohohohohoh"
18
+ },
19
+ ]
@@ -1 +1 @@
1
- http://pigro.omnivium.it
1
+ pigro.omnivium.it
@@ -13,6 +13,7 @@
13
13
  ##
14
14
 
15
15
  require 'assonnato'
16
+ require 'json'
16
17
 
17
18
  class Descartes
18
19
  class Pigro
@@ -30,10 +31,10 @@ class Descartes
30
31
  options = { user: user.join }
31
32
  end
32
33
 
33
- host = get_host 'pigro.txt'
34
- shows = Assonnato::Show.new host
34
+ host = get_host
35
+ shows = Assonnato.new(host).show
35
36
 
36
- series = shows.all!(:ongoing, options) + shows.all!(:dropped, options) + shows.all!(:finished, options)
37
+ series = shows.all(:ongoing, options) + shows.all(:dropped, options) + shows.all(:finished, options)
37
38
 
38
39
  if series.empty?
39
40
  if options.has_key? :role
@@ -63,17 +64,17 @@ class Descartes
63
64
  n_ep = (s.last == 'last' || s.last.numeric?) ? s.pop : nil
64
65
  keyword = s.join
65
66
 
66
- host = get_host 'pigro.txt'
67
- shows = Assonnato::Show.new host
68
- episodes = Assonnato::Episode.new host
67
+ host = get_host
68
+ shows = Assonnato.new(host).show
69
+ episodes = Assonnato.new(host).episode
69
70
 
70
- series = shows.search! keyword
71
+ series = shows.search keyword
71
72
 
72
73
  if series.empty?
73
74
  m.reply 'Series not found.'
74
75
  else
75
76
  series.take(5).each { |s|
76
- show = shows.get!(s.name).first
77
+ show = shows.get(s.name).first
77
78
 
78
79
  if n_ep.nil?
79
80
  a = show.status.downcase.start_with?(?o) ? 'an' : ?a
@@ -92,7 +93,7 @@ class Descartes
92
93
  }
93
94
  }[0..-4]
94
95
  elsif n_ep == 'last'
95
- episode = episodes.last!(:ongoing).select { |ep| ep.show_name == s.name }.last
96
+ episode = episodes.last(:ongoing).select { |ep| ep.show_name == s.name }.last
96
97
 
97
98
  if episode
98
99
  m.reply ("#{show.name.colorize} ##{episode.episode}".colorize + ' - ').tap { |staff|
@@ -121,7 +122,7 @@ class Descartes
121
122
  m.reply "#{show.name.colorize} has no episodes yet."
122
123
  end
123
124
  else
124
- episodes = episodes.get! show.name, n_ep.to_i
125
+ episodes = episodes.get show.name, n_ep.to_i
125
126
 
126
127
  if episodes.any?
127
128
  episodes.each { |ep|
@@ -158,15 +159,47 @@ class Descartes
158
159
  end
159
160
  end
160
161
 
161
- def get_host(f)
162
- file = File.join $options[:dotfiles], f
162
+ match /pigro (.+) - (.+) - (.+) - (.+)/, method: :edit_episode
163
+ def edit_episode(m, show, episode, field, status)
164
+ user = get_user m.user.nick
165
+ host = get_host
166
+ assonnato = Assonnato.new host
167
+
168
+ if user
169
+ login = assonnato.user.login user['username'], user['password']
170
+ if login['status'] == 'error'
171
+ m.reply login['message']
172
+ else
173
+ episode = assonnato.episode.edit show, episode.to_i, { field.to_sym => status.to_sym }
174
+ m.reply episode['message']
175
+
176
+ assonnato.user.logout
177
+ end
178
+ else
179
+ m.reply 'You are not recognized.'
180
+ end
181
+ end
182
+
183
+ def get_user(nickname)
184
+ file = File.join $options[:dotfiles], 'pigro.json'
185
+
186
+ if File.exists? file
187
+ users = JSON.parse File.read(file)
188
+ users.select { |user| user['nicknames'].first.values.include? nickname }.last
189
+ else
190
+ false
191
+ end
192
+ end
193
+
194
+ def get_host
195
+ file = File.join $options[:dotfiles], 'pigro.txt'
163
196
 
164
197
  if File.exists? file
165
198
  url = File.read(file).strip
166
199
  return url unless url.empty?
167
- end
200
+ end
168
201
 
169
- 'http://pigro.omnivium.it'
202
+ 'pigro.omnivium.it'
170
203
  end
171
204
  end
172
205
  end
@@ -14,6 +14,6 @@
14
14
 
15
15
  class Descartes
16
16
  def self.version
17
- '0.7.8'
17
+ '0.8'
18
18
  end
19
19
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: descartes
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.8
4
+ version: '0.8'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Giovanni Capuano
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-10 00:00:00.000000000 Z
11
+ date: 2014-03-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cinch
@@ -177,6 +177,7 @@ files:
177
177
  - lib/descartes/modules/currency.rb
178
178
  - lib/descartes/modules/dicteng.rb
179
179
  - lib/descartes/modules/files/lastfm_api.yml
180
+ - lib/descartes/modules/files/pigro.json
180
181
  - lib/descartes/modules/files/pigro.txt
181
182
  - lib/descartes/modules/files/replies.txt
182
183
  - lib/descartes/modules/files/sindaco.txt