admiral_stats_parser 0.1.2 → 0.1.3

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: e41abf13d204c287de809f223072607d73a3134d
4
- data.tar.gz: 7234707dd1222a7ca5c77c28fc261e0f5e8901ff
3
+ metadata.gz: 796696607ab5a39710315dc1ed6600d0c369c288
4
+ data.tar.gz: 9c4a7460c5b6d327fc7e40df0336d26c474d9e41
5
5
  SHA512:
6
- metadata.gz: b485d58af2f887ed3a67f0b651316711d3b749515dad3f52bd7f6121b6750fbcd1df83d15784ea3a738b254974d4496acdd48e81fe75086ecd5035fba7c19e15
7
- data.tar.gz: ac599af3dff180cb13c29a3a5a60efc55b473a08d26f1b5137499e5eea8349e0a7e8d95dbfede2c2251d7a833fbd63852ccc859be683511417cfe23fc19307de
6
+ metadata.gz: c5c2a4c39242db212e3f008c5e3ac265127452d88d197fdd1644180d2da1aa00cb34d90060553720813769bd570e08eee3c6e7e9b0555237c8aa81b330fa19ba
7
+ data.tar.gz: a41747e0b954ccff156a99deb229c49a8db1c058d3e70a6b70a381fbf05b815ebd826dc1eb21e1a85834f364a0cc5f79257701b82cbf249528b71fd38c261fa0
data/README.md CHANGED
@@ -42,25 +42,27 @@ AdmiralStatsParser.parse_equip_list_info(json, api_version)
42
42
 
43
43
  ## Specification
44
44
 
45
- 提督情報ページから返される JSON メッセージの形式は、過去に一度変更されており、今後も変更される可能性があります。このツールでは、kancolle-arcade.net が返す JSON メッセージの形式のことを API version と呼びます。
45
+ 提督情報ページから返される JSON メッセージの形式は、過去に何度か変更されており、今後も変更される可能性があります。このツールでは、kancolle-arcade.net が返す JSON メッセージの形式のことを API version と呼びます。
46
46
 
47
47
  AdmiralStatsParser は、以下の API version をサポートしています。
48
48
 
49
49
  | API version | 期間 |
50
50
  |------------:|:-----|
51
51
  | 1 | 2016-04-26 〜 2016-06-29 |
52
- | 2 | 2016-06-30(REVISION 2 のリリース日)〜 |
52
+ | 2 | 2016-06-30(REVISION 2 のリリース日)〜 2016-09-14 |
53
+ | 3 | 2016-09-15 〜 |
53
54
 
54
55
  各 API version でパースできる JSON の種類は以下の通りです。また、同じ情報でも、API version によって、含まれる情報量が異なる場合があります。その場合は Supported (1), Supported (2) のように記載して区別しています。
55
56
 
56
- | 提督情報での表示 | URL | API version 1 | API version 2 |
57
- |:----------------|:----|:--------------|:--------------|
58
- | 基本情報 | Personal/basicInfo | Supported (1) | Supported (2) |
59
- | 海域情報 | Area/captureInfo | Supported (1) | Supported (2) |
60
- | 艦娘図鑑 | TcBook/info | Supported (1) | Supported (2) |
61
- | 装備図鑑 | EquipBook/info | Supported | Supported |
62
- | 艦娘一覧 | CharacterList/info | - | Supported |
63
- | 装備一覧 | EquipList/info | - | Supported |
57
+ | 提督情報での表示 | URL | API version 1 | API version 2 | API version 3 |
58
+ |:----------------|:----|:--------------|:--------------|:-------------|
59
+ | 基本情報 | Personal/basicInfo | Supported (1) | Supported (2) | Supported (2) |
60
+ | 海域情報 | Area/captureInfo | Supported (1) | Supported (2) | Supported (2) |
61
+ | 艦娘図鑑 | TcBook/info | Supported (1) | Supported (2) | Supported (2) |
62
+ | 装備図鑑 | EquipBook/info | Supported | Supported | Supported |
63
+ | 艦娘一覧 | CharacterList/info | - | Supported (1) | Supported (2) |
64
+ | 装備一覧 | EquipList/info | - | Supported | Supported |
65
+ | 任務一覧 | Quest/info | - | Unsupported | Unsupported |
64
66
 
65
67
  ## Development
66
68
 
@@ -24,6 +24,9 @@ class CharacterListInfo
24
24
  # 艦娘のステータス画像(横長の画像)のファイル名
25
25
  attr_accessor :status_img
26
26
 
27
+ # 星の数(1〜5)
28
+ attr_accessor :star_num
29
+
27
30
  # 累計経験値表
28
31
  EXP_TABLE = {
29
32
  92 => 584500,
@@ -3,16 +3,28 @@ require 'admiral_stats_parser/model/character_list_info'
3
3
 
4
4
  class CharacterListInfoParser
5
5
  MANDATORY_KEYS = {
6
- :book_no => Integer,
7
- :lv => Integer,
8
- :ship_type => String,
9
- :ship_sort_no => Integer,
10
- :remodel_lv => Integer,
11
- :ship_name => String,
12
- :status_img => String,
6
+ 2 => {
7
+ :book_no => Integer,
8
+ :lv => Integer,
9
+ :ship_type => String,
10
+ :ship_sort_no => Integer,
11
+ :remodel_lv => Integer,
12
+ :ship_name => String,
13
+ :status_img => String,
14
+ },
15
+ 3 => {
16
+ :book_no => Integer,
17
+ :lv => Integer,
18
+ :ship_type => String,
19
+ :ship_sort_no => Integer,
20
+ :remodel_lv => Integer,
21
+ :ship_name => String,
22
+ :status_img => String,
23
+ :star_num => Integer,
24
+ }
13
25
  }
14
26
 
15
- def self.parse(json)
27
+ def self.parse(json, api_version)
16
28
  items_array = JSON.parse(json)
17
29
 
18
30
  unless items_array.is_a?(Array)
@@ -23,7 +35,7 @@ class CharacterListInfoParser
23
35
  items_array.each do |items|
24
36
  result = CharacterListInfo.new
25
37
 
26
- MANDATORY_KEYS.each do |key, key_class|
38
+ MANDATORY_KEYS[api_version].each do |key, key_class|
27
39
  # 必須のキーが含まれなければエラー
28
40
  camel_case_key = key.to_s.split('_').inject([]){ |buffer,e| buffer.push(buffer.empty? ? e : e.capitalize) }.join
29
41
  unless items.include?(camel_case_key)
@@ -1,3 +1,3 @@
1
1
  module AdmiralStatsParser
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end
@@ -10,79 +10,87 @@ require 'admiral_stats_parser/parser/equip_list_info_parser'
10
10
  module AdmiralStatsParser
11
11
  # 最新の API バージョンを返します。
12
12
  def self.get_latest_api_version
13
- return 2
13
+ return 3
14
14
  end
15
15
 
16
16
  # エクスポート時刻を元に、API バージョンを推測して返します。
17
17
  def self.guess_api_version(exported_at)
18
18
  # version 2 の開始日
19
- t2 = Time.parse('2016-06-30T00:00:00+0900')
19
+ return 1 if exported_at < Time.parse('2016-06-30T07:00:00+0900')
20
+
21
+ # version 3 の開始日
22
+ return 2 if exported_at < Time.parse('2016-09-15T07:00:00+0900')
20
23
 
21
- return 1 if (exported_at < t2)
22
24
  return self.get_latest_api_version
23
25
  end
24
26
 
25
27
  # 基本情報をパースします。
26
28
  def self.parse_personal_basic_info(json, api_version)
27
29
  case api_version
28
- when 1, 2
29
- PersonalBasicInfoParser.parse(json, api_version)
30
- else
31
- raise 'unsupported API version'
30
+ when 1
31
+ PersonalBasicInfoParser.parse(json, 1)
32
+ when 2, 3
33
+ PersonalBasicInfoParser.parse(json, 2)
34
+ else
35
+ raise 'unsupported API version'
32
36
  end
33
37
  end
34
38
 
35
39
  # 海域情報をパースします。
36
40
  def self.parse_area_capture_info(json, api_version)
37
41
  case api_version
38
- when 1, 2
39
- AreaCaptureInfoParser.parse(json, api_version)
40
- else
41
- raise 'unsupported API version'
42
+ when 1
43
+ AreaCaptureInfoParser.parse(json, 1)
44
+ when 2, 3
45
+ AreaCaptureInfoParser.parse(json, 2)
46
+ else
47
+ raise 'unsupported API version'
42
48
  end
43
49
  end
44
50
 
45
51
  # 艦娘図鑑をパースします。
46
52
  def self.parse_tc_book_info(json, api_version)
47
53
  case api_version
48
- when 1, 2
49
- TcBookInfoParser.parse(json, api_version)
50
- else
51
- raise 'unsupported API version'
54
+ when 1
55
+ TcBookInfoParser.parse(json, 1)
56
+ when 2, 3
57
+ TcBookInfoParser.parse(json, 2)
58
+ else
59
+ raise 'unsupported API version'
52
60
  end
53
61
  end
54
62
 
55
63
  # 装備図鑑をパースします。
56
64
  def self.parse_equip_book_info(json, api_version)
57
65
  case api_version
58
- when 1, 2
59
- EquipBookInfoParser.parse(json)
60
- else
61
- raise 'unsupported API version'
66
+ when 1, 2, 3
67
+ EquipBookInfoParser.parse(json)
68
+ else
69
+ raise 'unsupported API version'
62
70
  end
63
71
  end
64
72
 
65
73
  # 艦娘一覧をパースします。
66
74
  def self.parse_character_list_info(json, api_version)
67
75
  case api_version
68
- when 1
69
- raise 'API version 1 does not support character list info'
70
- when 2
71
- CharacterListInfoParser.parse(json)
72
- else
73
- raise 'unsupported API version'
76
+ when 1
77
+ raise 'API version 1 does not support character list info'
78
+ when 2, 3
79
+ CharacterListInfoParser.parse(json, api_version)
80
+ else
81
+ raise 'unsupported API version'
74
82
  end
75
83
  end
76
84
 
77
85
  # 装備一覧をパースします。
78
86
  def self.parse_equip_list_info(json, api_version)
79
87
  case api_version
80
- when 1
81
- raise 'API version 1 does not support equip list info'
82
- when 2
83
- EquipListInfoParser.parse(json)
84
- else
85
- raise 'unsupported API version'
88
+ when 1
89
+ raise 'API version 1 does not support equip list info'
90
+ when 2, 3
91
+ EquipListInfoParser.parse(json)
92
+ else
93
+ raise 'unsupported API version'
86
94
  end
87
95
  end
88
96
  end
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: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Masahiro Yoshizawa
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-08-21 00:00:00.000000000 Z
11
+ date: 2016-09-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler