valanga 0.1.0 → 0.2.0

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: f95daa720a4018c12de977897f78345a4b51dbed
4
- data.tar.gz: 1a12dd7871831461e0c1bbd93f6104eaf1fe315f
3
+ metadata.gz: 30f3d50c38df00da1f3e548631ce0095ebc2d1f6
4
+ data.tar.gz: fd5b7fa4a329dd838808372ed47a2fd664e86e37
5
5
  SHA512:
6
- metadata.gz: 6a19f6f9b68dedf66b6ffd5a2debd070ff3f133149a56564d097d3ac167100707fb79fb5c05fbde747afd1122bb9cf427c0ea1ffe08109570f23d0e6702d89af
7
- data.tar.gz: 95e7c39fc63612ef391caf2da11212b3a199fbbc3005bbb0d28299fc15db815aa0e1a847db183d906e97bbe1e8a807d134c23cf69f261d73fe04cb8d1849e801
6
+ metadata.gz: d673cc1558adf2dfd5a07e3e9d88b74113b16674599eb9ec13bf651ebb6d67eb8449fb16c945c6651c8147fad1c62f9f563fb3119d89dcb95d80db64924353a3
7
+ data.tar.gz: e2ec20c5b598f9974f3504f4d279e551c9b5dafb5b0e68d779114bb05a3cbf9a8f8c6bb18a3673866e1785ef41ddb3147f252528832d5ad11fd6e832c4d160d7
data/CHANGELOG.md ADDED
@@ -0,0 +1,7 @@
1
+ # Version 0.2.0
2
+ * Supports environment variable login for `ENV['KONAMI_ID']` `ENV['KONAMI_PASSWORD']`.
3
+ * Caches the search query and url, Second time result is directly access to cached url.
4
+
5
+ # Version 0.1.0
6
+ * Logins id or email & password.
7
+ * Supports `Valanga::Client#list_musics`, `Valanga::Client#[]`.
@@ -7,14 +7,15 @@ module Valanga
7
7
 
8
8
  LOGIN_PAGE = "https://p.eagate.573.jp/gate/p/login.html"
9
9
 
10
- attr_reader :session
10
+ attr_reader :session, :pages
11
11
 
12
- def initialize(username, password)
12
+ def initialize(username = nil, password = nil)
13
13
  Capybara.register_driver :poltergeist do |app|
14
14
  Capybara::Poltergeist::Driver.new(app, js_errors: false)
15
15
  end
16
16
 
17
17
  @session = Capybara::Session.new(:poltergeist)
18
+ @pages = {}
18
19
 
19
20
  login!(username, password)
20
21
  end
@@ -24,8 +25,8 @@ module Valanga
24
25
  def login!(username, password)
25
26
  @session.visit LOGIN_PAGE
26
27
 
27
- @session.fill_in 'KID', with: username
28
- @session.fill_in 'pass', with: password
28
+ @session.fill_in 'KID', with: username || ENV['KONAMI_ID']
29
+ @session.fill_in 'pass', with: password || ENV['KONAMI_PASSWORD']
29
30
 
30
31
  @session.click_on "規約に同意してログイン"
31
32
 
@@ -52,6 +52,18 @@ module Valanga
52
52
  def full_combo
53
53
  groovin.full_combo || collete.full_combo
54
54
  end
55
+
56
+ def cleared?
57
+ achievement_rate && 70.0 <= achievement_rate
58
+ end
59
+
60
+ def played?
61
+ play_count > 0
62
+ end
63
+
64
+ def full_combo?
65
+ ! full_combo.nil?
66
+ end
55
67
  end
56
68
  end
57
69
  end
@@ -19,7 +19,11 @@ module Valanga
19
19
  musics.flatten
20
20
  end
21
21
 
22
- def [](music_name)
22
+ def search(music_name)
23
+ if url = pages[music_name]
24
+ return create_music(url)
25
+ end
26
+
23
27
  page_sessions do |session|
24
28
  begin
25
29
  session.within("#music_table1") do
@@ -27,19 +31,24 @@ module Valanga
27
31
  end
28
32
 
29
33
  src = session.find(:css, "iframe")['src']
30
- session.visit(info_url(src))
34
+ pages[music_name] = info_url(src)
31
35
 
32
- return Music.new(session.html)
36
+ return create_music(info_url(src))
33
37
  rescue Capybara::ElementNotFound
34
38
  # if link is not found, go next page.
35
39
  end
36
40
  end
37
41
  end
38
- alias_method :search, :[]
39
- alias_method :find_music, :[]
42
+ alias_method :[], :search
43
+ alias_method :find_music, :search
40
44
 
41
45
  private
42
46
 
47
+ def create_music(info_url)
48
+ session.visit(info_url)
49
+ Music.new(session.html)
50
+ end
51
+
43
52
  def page_sessions(&block)
44
53
  page = 1
45
54
 
@@ -1,3 +1,3 @@
1
1
  module Valanga
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: valanga
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - mgi166
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-06-04 00:00:00.000000000 Z
11
+ date: 2015-06-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -133,6 +133,7 @@ files:
133
133
  - ".gitignore"
134
134
  - ".rspec"
135
135
  - ".travis.yml"
136
+ - CHANGELOG.md
136
137
  - Gemfile
137
138
  - LICENSE.txt
138
139
  - README.md