lyne 0.0.2.3 → 0.0.2.5

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: 14f9adc6efa4efacd2eab2aca6f7709523fe52f7
4
- data.tar.gz: 356b4fae3b80649b12262048d14775136e487c54
3
+ metadata.gz: ea1d82a183033607f858c72013a2525cc4c8511f
4
+ data.tar.gz: 7269371389a1217d40c60ce4cc97e3a550e5b695
5
5
  SHA512:
6
- metadata.gz: 0906bcdeb029cae9efbfaa6562cd3759d97e0969b72d13807935a388a370637e4fe781e880ab7fd0d560e85afb72b16fd5189689a54a875f1e79bd8e22dc93f1
7
- data.tar.gz: e22cc22cc5b5d7c9238de7e53ddb9ff647e7392541857b984a39a948bf95130040167ec236a6ad09dfe5470c5212d087254ee77a90809f438b632d769333b7a5
6
+ metadata.gz: 04830c3f87a9369e6f3451b875980fd462a7d3f17b913bbc08dc431f66af85d98aa288175377dd56114779718d497008dabef145036f36cda1a5a87028626024
7
+ data.tar.gz: 356c406dec1a188e0fd8ef63312f4112de4c32c0ad180268a24ff0f979cbb140b3b0fa56ae14b7604ec0d9479e9c089275d33e253679ad5d7d9dff54581aa748
data/README.md CHANGED
@@ -15,7 +15,7 @@ $ brew update && brew install phantomjs
15
15
  # use
16
16
 
17
17
  ```bash
18
- $ gem install Lyne
18
+ $ gem install lyne
19
19
  ```
20
20
  ```
21
21
  gem 'lyne'
@@ -34,9 +34,18 @@ dqx = Lyne::Account.new(
34
34
  character_id: 975829418411224
35
35
  )
36
36
 
37
- info = dqx.character.info
37
+ chara = dqx.character
38
+
39
+ info = chara.info
38
40
  info.id #=> "TV327-610"
39
41
  info.name #=> "ソプラナ"
42
+ # フレンド申請おk
43
+
44
+ house = chara.house
45
+ house.country #=> "アズラン住宅村"
46
+ house.city #=> "おごそかな林道地区"
47
+ house.house_number #=> "3849丁目 6番地 (Sサイズ)"
48
+ # 遊びにきておk
40
49
  ```
41
50
 
42
51
  # test
@@ -58,6 +58,20 @@ module Lyne::Page
58
58
  @character = Lyne::Page::Character::Base.new(session)
59
59
  end
60
60
 
61
+ def change character_id
62
+ @session.character_change character_id
63
+ @character = Lyne::Page::Character::Base.new(@session)
64
+
65
+ # CCのタイミングで存在するインスタンス変数を削除
66
+ Lyne::Page::Character::Target.constants.each do |target|
67
+ formatted_name = target.to_s.downcase
68
+ if instance_variable_defined?("@#{formatted_name}")
69
+ remove_instance_variable("@#{formatted_name}")
70
+ end
71
+ end
72
+ self
73
+ end
74
+
61
75
  Lyne::Page::Character::Target.constants.each do |target|
62
76
  formatted_name = target.to_s.downcase
63
77
  define_method(formatted_name) do
@@ -56,15 +56,18 @@ module Lyne::Parser
56
56
 
57
57
  class House < Home
58
58
  def country
59
- get_parse_data(index: 3).split[0].scan(/.*住宅村/)[0]
59
+ text = get_parse_data(index: 3)
60
+ text.split[0].scan(/.*住宅村/)[0] if text.present?
60
61
  end
61
62
 
62
63
  def city
63
- get_parse_data(index: 3).split[0].gsub(/#{country}/,'')
64
+ text = get_parse_data(index: 3)
65
+ text.split[0].gsub(/#{country}/,'') if text.present?
64
66
  end
65
67
 
66
68
  def house_number
67
- get_parse_data(index: 3).split[1]
69
+ text = get_parse_data(index: 3)
70
+ text.split[1] if text.present?
68
71
  end
69
72
 
70
73
  def setting
@@ -76,6 +79,12 @@ module Lyne::Parser
76
79
  end
77
80
 
78
81
  private
82
+ def get_parse_data option
83
+ super(option)
84
+ rescue
85
+ nil
86
+ end
87
+
79
88
  def parse_target_xpath
80
89
  "//div[@id='myHouseStage']"
81
90
  end
@@ -16,6 +16,8 @@ module Lyne::Session
16
16
  Capybara.default_selector = :xpath
17
17
  @page = Capybara::Session.new(:poltergeist)
18
18
  @page.driver.headers = {'User-Agent' => @options[:user_agent]}
19
+
20
+ setup_cache
19
21
  end
20
22
 
21
23
  def start!
@@ -41,6 +43,11 @@ module Lyne::Session
41
43
  @page.html
42
44
  end
43
45
 
46
+ def character_change character_id
47
+ go :charaselect
48
+ go_to_home character_id
49
+ end
50
+
44
51
  private
45
52
  def default_options
46
53
  {
@@ -63,5 +70,9 @@ module Lyne::Session
63
70
  def character_select_url?
64
71
  @page.current_path == "/sc/login/characterselect/"
65
72
  end
73
+
74
+ def setup_cache
75
+ @cache = {}
76
+ end
66
77
  end
67
78
  end
@@ -6,6 +6,7 @@ module Lyne::Session
6
6
  @page.fill_in '_pr_confData_sqexid', with: @options[:account]
7
7
  @page.fill_in '_pr_confData_passwd', with: @options[:password]
8
8
  @page.find(:xpath, ".//a[@id='btLogin']").click
9
+ @page.html
9
10
  end
10
11
  end
11
12
 
@@ -15,15 +16,21 @@ module Lyne::Session
15
16
  end
16
17
  end
17
18
 
18
- def go_to_home
19
+ def go_to_home character_id=''
19
20
  move_to do
20
- @page.find(:xpath, "//a[@rel='#{@options[:character_id]}']").click
21
+ @page.find(:xpath, "//a[@rel='#{character_id.presence || @options[:character_id]}']").click
22
+ end
23
+ end
24
+
25
+ def go_to_charaselect
26
+ move_to do
27
+ @page.find(:xpath, "//a[@href='/sc/home/characterchange/']").click
21
28
  end
22
29
  end
23
30
 
24
31
  def visit_to_home
25
32
  move_to do
26
- @page.visit('sc/home/')
33
+ @page.visit('/sc/home/')
27
34
  end
28
35
  end
29
36
 
@@ -31,6 +38,7 @@ module Lyne::Session
31
38
  def move_to
32
39
  yield
33
40
  sleep(2)
41
+ @cache[@page.current_path] = @page.html
34
42
  end
35
43
  end
36
44
  end
@@ -1,3 +1,3 @@
1
1
  module Lyne
2
- VERSION = "0.0.2.3"
2
+ VERSION = "0.0.2.5"
3
3
  end
@@ -2,3 +2,10 @@ account:
2
2
  name:
3
3
  password:
4
4
  character_id:
5
+
6
+ # account:
7
+ # name: hogehoge
8
+ # password: fugafuga
9
+ # character_id:
10
+ # - 111111
11
+ # - 222222
@@ -10,7 +10,7 @@ describe Lyne::Page::Character do
10
10
  dqx = Lyne::Account.new({
11
11
  account: @account[:name],
12
12
  password: @account[:password],
13
- character_id: @account[:character_id]
13
+ character_id: @account[:character_id][0]
14
14
  })
15
15
  @character = dqx.character
16
16
  end
@@ -46,5 +46,20 @@ describe Lyne::Page::Character do
46
46
  it { expect(subject.house_number).to match(/.*サイズ)$/) }
47
47
  end
48
48
  end
49
+
50
+ if YAML.load_file("./spec/account.yaml")['account']['character_id'][1]
51
+ context 'キャラチェンジできる' do
52
+ before(:all) do
53
+ @id = @character.info.id
54
+ @other_character = @character.change(@account[:character_id][1])
55
+ end
56
+ subject{ @other_character.info }
57
+
58
+ context 'キャラチェンジ後とinfo.idが違う' do
59
+ it { expect(subject.id).not_to match(@id) }
60
+ end
61
+ end
62
+ end
63
+
49
64
  end
50
65
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lyne
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2.3
4
+ version: 0.0.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - soplana