admiral_stats_parser 1.11.0 → 1.12.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 +4 -4
- data/README.md +5 -2
- data/lib/admiral_stats_parser/model/character_list_info.rb +3 -0
- data/lib/admiral_stats_parser/model/tc_book_info.rb +9 -0
- data/lib/admiral_stats_parser/parser/character_list_info_parser.rb +33 -3
- data/lib/admiral_stats_parser/parser/tc_book_info_parser.rb +36 -1
- data/lib/admiral_stats_parser/version.rb +1 -1
- data/lib/admiral_stats_parser.rb +16 -9
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 121279fe462bbc901ea7211a30f7243ca55feab2
|
4
|
+
data.tar.gz: 600fb60625d3e628bf5d3aa30cb5a6298a83c6e5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bafcd00e25c4006784d0a0c82e5d7866906bf54a4392c2f623cf6dd3b7fa9e314bf808f935324d781e70bccb541f5caf8b9020b2f4f5f5a8aa837406958dd9da
|
7
|
+
data.tar.gz: 6f3a6bf69c4adfbdeb07e63908fe8f49cf8c67d5d9e85d05cc416e9dcd8cbba0123372ed8585d54b0429305145dc7a5669fadea46f19fd82712a4e4553d6d638
|
data/README.md
CHANGED
@@ -66,7 +66,8 @@ AdmiralStatsParser は、以下の API version をサポートしています。
|
|
66
66
|
| 8 | 2017-06-01 〜 2017-07-30 |
|
67
67
|
| 9 | 2017-07-31 〜 2017-09-20 |
|
68
68
|
| 10 | 2017-09-21 〜 2018-01-31 |
|
69
|
-
| 11 | 2018-02-01 (VERSION A REVISION 3 のリリース日) 〜 |
|
69
|
+
| 11 | 2018-02-01 (VERSION A REVISION 3 のリリース日) 〜 2018-02-15 |
|
70
|
+
| 12 | 2018-02-16 (ケッコンカッコカリの実装日) 〜 |
|
70
71
|
|
71
72
|
各 API version でパースできる JSON の種類は以下の通りです。また、同じ情報でも、API version によって、含まれる情報量が異なる場合があります。その場合は Supported (1), Supported (2) のように記載して区別しています。
|
72
73
|
|
@@ -76,6 +77,7 @@ AdmiralStatsParser は、以下の API version をサポートしています。
|
|
76
77
|
| 2 〜 6 | Supported (2) | Supported (2) | Supported (2) | Supported |
|
77
78
|
| 7 〜 10 | Supported (3) | Supported (3) | Supported (2) | Supported |
|
78
79
|
| 11 | Supported (3) | Supported (4) | Supported (2) | Supported |
|
80
|
+
| 12 | Supported (3) | Supported (4) | Supported (3) | Supported |
|
79
81
|
|
80
82
|
| API version | 艦娘一覧 | 装備一覧 | イベント海域情報 |
|
81
83
|
|------------:|:-----|:-----|:-----|
|
@@ -86,12 +88,13 @@ AdmiralStatsParser は、以下の API version をサポートしています。
|
|
86
88
|
| 5 〜 6 | Supported (3) | Supported (1) | Supported (1) |
|
87
89
|
| 7 〜 8 | Supported (4) | Supported (1) | Supported (2) |
|
88
90
|
| 9 〜 11 | Supported (4) | Supported (2) | Supported (2) |
|
91
|
+
| 12 | Supported (5) | Supported (2) | Supported (2) |
|
89
92
|
|
90
93
|
| API version | 改装設計図一覧 |
|
91
94
|
|------------:|:-----|
|
92
95
|
| 1 〜 6 | Unsupported |
|
93
96
|
| 7 | Supported (1) |
|
94
|
-
| 8 〜
|
97
|
+
| 8 〜 12 | Supported (2) |
|
95
98
|
|
96
99
|
## Development
|
97
100
|
|
@@ -44,4 +44,13 @@ class TcBookInfo
|
|
44
44
|
# Array
|
45
45
|
# 未取得の場合は、空の Array
|
46
46
|
attr_accessor :status_img
|
47
|
+
|
48
|
+
# ケッコンカッコカリ済みかどうかを表す配列
|
49
|
+
# その図鑑No. にノーマルと改があれば要素数2、ノーマルしかなければ要素数1の配列
|
50
|
+
# 要素数2の場合、1個目の要素がノーマル、2個目の要素が改を表す
|
51
|
+
attr_accessor :is_married
|
52
|
+
|
53
|
+
# ケッコンカッコカリ済み画像の配列
|
54
|
+
# その図鑑No. にノーマルと改があっても、ノーマルのみでも、要素数1
|
55
|
+
attr_accessor :married_img
|
47
56
|
end
|
@@ -67,6 +67,30 @@ class CharacterListInfoParser
|
|
67
67
|
slot_img: Array,
|
68
68
|
blueprint_total_num: Integer,
|
69
69
|
},
|
70
|
+
5 => {
|
71
|
+
book_no: Integer,
|
72
|
+
lv: Integer,
|
73
|
+
ship_type: String,
|
74
|
+
ship_sort_no: Integer,
|
75
|
+
remodel_lv: Integer,
|
76
|
+
ship_name: String,
|
77
|
+
status_img: String,
|
78
|
+
star_num: Integer,
|
79
|
+
ship_class: String,
|
80
|
+
ship_class_index: Integer,
|
81
|
+
tc_img: String,
|
82
|
+
exp_percent: Integer,
|
83
|
+
max_hp: Integer,
|
84
|
+
real_hp: Integer,
|
85
|
+
damage_status: String,
|
86
|
+
slot_num: Integer,
|
87
|
+
slot_equip_name: Array,
|
88
|
+
slot_amount: Array,
|
89
|
+
slot_disp: Array,
|
90
|
+
slot_img: Array,
|
91
|
+
blueprint_total_num: Integer,
|
92
|
+
married: :boolean,
|
93
|
+
},
|
70
94
|
}
|
71
95
|
|
72
96
|
def self.parse(json, api_version)
|
@@ -87,9 +111,15 @@ class CharacterListInfoParser
|
|
87
111
|
raise "Mandatory key #{key} does not exist"
|
88
112
|
end
|
89
113
|
|
90
|
-
#
|
91
|
-
|
92
|
-
|
114
|
+
# ruby には Boolean クラスがないので、そこだけ特別な処理を用意する
|
115
|
+
if key_class == :boolean
|
116
|
+
unless [true, false].include?(items[camel_case_key])
|
117
|
+
raise "Mandatory key #{key} is not boolean"
|
118
|
+
end
|
119
|
+
else
|
120
|
+
unless items[camel_case_key].is_a?(key_class)
|
121
|
+
raise "Mandatory key #{key} is not class #{key_class}"
|
122
|
+
end
|
93
123
|
end
|
94
124
|
|
95
125
|
result.instance_variable_set("@#{key.to_s}", items[camel_case_key])
|
@@ -28,7 +28,29 @@ class TcBookInfoParser
|
|
28
28
|
acquire_num: Integer,
|
29
29
|
lv: Integer,
|
30
30
|
status_img: Array,
|
31
|
-
}
|
31
|
+
},
|
32
|
+
3 => {
|
33
|
+
book_no: Integer,
|
34
|
+
ship_class: String,
|
35
|
+
ship_class_index: Integer,
|
36
|
+
ship_type: String,
|
37
|
+
ship_name: String,
|
38
|
+
card_index_img: String,
|
39
|
+
card_img_list: Array,
|
40
|
+
variation_num: Integer,
|
41
|
+
acquire_num: Integer,
|
42
|
+
lv: Integer,
|
43
|
+
status_img: Array,
|
44
|
+
},
|
45
|
+
}
|
46
|
+
|
47
|
+
OPTIONAL_KEYS = {
|
48
|
+
1 => {},
|
49
|
+
2 => {},
|
50
|
+
3 => {
|
51
|
+
is_married: Array,
|
52
|
+
married_img: Array,
|
53
|
+
}
|
32
54
|
}
|
33
55
|
|
34
56
|
def self.parse(json, api_version)
|
@@ -57,6 +79,19 @@ class TcBookInfoParser
|
|
57
79
|
result.instance_variable_set("@#{key.to_s}", items[camel_case_key])
|
58
80
|
end
|
59
81
|
|
82
|
+
OPTIONAL_KEYS[api_version].each do |key, key_class|
|
83
|
+
# キーが含まれなければ、処理をスキップ
|
84
|
+
camel_case_key = key.to_s.split('_').inject([]){ |buffer,e| buffer.push(buffer.empty? ? e : e.capitalize) }.join
|
85
|
+
next unless items.include?(camel_case_key)
|
86
|
+
|
87
|
+
# 結果のクラスが合わなければエラー
|
88
|
+
unless items[camel_case_key].is_a?(key_class)
|
89
|
+
raise "Optional key #{key} is not class #{key_class}"
|
90
|
+
end
|
91
|
+
|
92
|
+
result.instance_variable_set("@#{key.to_s}", items[camel_case_key])
|
93
|
+
end
|
94
|
+
|
60
95
|
results << result
|
61
96
|
end
|
62
97
|
|
data/lib/admiral_stats_parser.rb
CHANGED
@@ -12,7 +12,7 @@ require 'admiral_stats_parser/parser/blueprint_list_info_parser'
|
|
12
12
|
module AdmiralStatsParser
|
13
13
|
# 最新の API バージョンを返します。
|
14
14
|
def self.get_latest_api_version
|
15
|
-
return
|
15
|
+
return 12
|
16
16
|
end
|
17
17
|
|
18
18
|
# エクスポート時刻を元に、API バージョンを推測して返します。
|
@@ -47,6 +47,9 @@ module AdmiralStatsParser
|
|
47
47
|
# version 11 の開始日
|
48
48
|
return 10 if exported_at < Time.parse('2018-02-01T07:00:00+0900')
|
49
49
|
|
50
|
+
# version 12 の開始日
|
51
|
+
return 11 if exported_at < Time.parse('2018-02-16T07:00:00+0900')
|
52
|
+
|
50
53
|
return self.get_latest_api_version
|
51
54
|
end
|
52
55
|
|
@@ -57,7 +60,7 @@ module AdmiralStatsParser
|
|
57
60
|
PersonalBasicInfoParser.parse(json, 1)
|
58
61
|
when 2..6
|
59
62
|
PersonalBasicInfoParser.parse(json, 2)
|
60
|
-
when 7..
|
63
|
+
when 7..12
|
61
64
|
PersonalBasicInfoParser.parse(json, 3)
|
62
65
|
else
|
63
66
|
raise 'unsupported API version'
|
@@ -73,7 +76,7 @@ module AdmiralStatsParser
|
|
73
76
|
AreaCaptureInfoParser.parse(json, 2)
|
74
77
|
when 7..10
|
75
78
|
AreaCaptureInfoParser.parse(json, 3)
|
76
|
-
when 11
|
79
|
+
when 11..12
|
77
80
|
AreaCaptureInfoParser.parse(json, 4)
|
78
81
|
else
|
79
82
|
raise 'unsupported API version'
|
@@ -87,6 +90,8 @@ module AdmiralStatsParser
|
|
87
90
|
TcBookInfoParser.parse(json, 1)
|
88
91
|
when 2..11
|
89
92
|
TcBookInfoParser.parse(json, 2)
|
93
|
+
when 12
|
94
|
+
TcBookInfoParser.parse(json, 3)
|
90
95
|
else
|
91
96
|
raise 'unsupported API version'
|
92
97
|
end
|
@@ -95,7 +100,7 @@ module AdmiralStatsParser
|
|
95
100
|
# 装備図鑑をパースします。
|
96
101
|
def self.parse_equip_book_info(json, api_version)
|
97
102
|
case api_version
|
98
|
-
when 1..
|
103
|
+
when 1..12
|
99
104
|
EquipBookInfoParser.parse(json)
|
100
105
|
else
|
101
106
|
raise 'unsupported API version'
|
@@ -115,6 +120,8 @@ module AdmiralStatsParser
|
|
115
120
|
CharacterListInfoParser.parse(json, 3)
|
116
121
|
when 7..11
|
117
122
|
CharacterListInfoParser.parse(json, 4)
|
123
|
+
when 12
|
124
|
+
CharacterListInfoParser.parse(json, 5)
|
118
125
|
else
|
119
126
|
raise 'unsupported API version'
|
120
127
|
end
|
@@ -127,7 +134,7 @@ module AdmiralStatsParser
|
|
127
134
|
raise 'API version 1 does not support equip list info'
|
128
135
|
when 2..8
|
129
136
|
EquipListInfoParser.parse(json, 1)
|
130
|
-
when 9..
|
137
|
+
when 9..12
|
131
138
|
EquipListInfoParser.parse(json, 2)
|
132
139
|
else
|
133
140
|
raise 'unsupported API version'
|
@@ -139,7 +146,7 @@ module AdmiralStatsParser
|
|
139
146
|
case api_version
|
140
147
|
when 1..8
|
141
148
|
EquipListInfoParser.parse_max_slot_num(json, 1)
|
142
|
-
when 9..
|
149
|
+
when 9..12
|
143
150
|
EquipListInfoParser.parse_max_slot_num(json, 2)
|
144
151
|
else
|
145
152
|
raise 'unsupported API version'
|
@@ -153,7 +160,7 @@ module AdmiralStatsParser
|
|
153
160
|
raise "API version #{api_version} does not support event info"
|
154
161
|
when 4..6
|
155
162
|
EventInfoParser.parse(json, 1)
|
156
|
-
when 7..
|
163
|
+
when 7..12
|
157
164
|
EventInfoParser.parse(json, 2)
|
158
165
|
else
|
159
166
|
raise 'unsupported API version'
|
@@ -165,7 +172,7 @@ module AdmiralStatsParser
|
|
165
172
|
case api_version
|
166
173
|
when 1..3
|
167
174
|
raise "API version #{api_version} does not support event info"
|
168
|
-
when 4..
|
175
|
+
when 4..12
|
169
176
|
{
|
170
177
|
opened: EventInfoParser.opened?(event_info_list, level, period),
|
171
178
|
all_cleared: EventInfoParser.all_cleared?(event_info_list, level, period),
|
@@ -186,7 +193,7 @@ module AdmiralStatsParser
|
|
186
193
|
raise "API version #{api_version} does not support blueprint list info"
|
187
194
|
when 7
|
188
195
|
BlueprintListInfoParser.parse(json, 1)
|
189
|
-
when 8..
|
196
|
+
when 8..12
|
190
197
|
BlueprintListInfoParser.parse(json, 2)
|
191
198
|
else
|
192
199
|
raise 'unsupported API version'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: admiral_stats_parser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.12.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Masahiro Yoshizawa
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-02-
|
11
|
+
date: 2018-02-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|