triviacrack 0.1.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.
Files changed (63) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +14 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +19 -0
  5. data/Gemfile +7 -0
  6. data/LICENSE.txt +22 -0
  7. data/README.md +120 -0
  8. data/Rakefile +7 -0
  9. data/lib/triviacrack.rb +12 -0
  10. data/lib/triviacrack/api/client.rb +31 -0
  11. data/lib/triviacrack/api/common.rb +76 -0
  12. data/lib/triviacrack/api/game.rb +72 -0
  13. data/lib/triviacrack/api/login.rb +35 -0
  14. data/lib/triviacrack/api/profile.rb +44 -0
  15. data/lib/triviacrack/api/question.rb +43 -0
  16. data/lib/triviacrack/api/user.rb +56 -0
  17. data/lib/triviacrack/category_statistics.rb +27 -0
  18. data/lib/triviacrack/errors/parse_error.rb +7 -0
  19. data/lib/triviacrack/errors/request_error.rb +18 -0
  20. data/lib/triviacrack/game.rb +100 -0
  21. data/lib/triviacrack/game_statistics.rb +35 -0
  22. data/lib/triviacrack/parsers/category_statistics_parser.rb +45 -0
  23. data/lib/triviacrack/parsers/game_parser.rb +74 -0
  24. data/lib/triviacrack/parsers/game_statistics_parser.rb +44 -0
  25. data/lib/triviacrack/parsers/profile_parser.rb +55 -0
  26. data/lib/triviacrack/parsers/question_parser.rb +36 -0
  27. data/lib/triviacrack/parsers/session_parser.rb +36 -0
  28. data/lib/triviacrack/parsers/time_parser.rb +26 -0
  29. data/lib/triviacrack/parsers/user_parser.rb +47 -0
  30. data/lib/triviacrack/profile.rb +96 -0
  31. data/lib/triviacrack/question.rb +43 -0
  32. data/lib/triviacrack/session.rb +30 -0
  33. data/lib/triviacrack/user.rb +91 -0
  34. data/lib/triviacrack/version.rb +4 -0
  35. data/spec/api/game_spec.rb +72 -0
  36. data/spec/api/login_spec.rb +34 -0
  37. data/spec/api/profile_spec.rb +51 -0
  38. data/spec/api/question_spec.rb +45 -0
  39. data/spec/api/user_spec.rb +50 -0
  40. data/spec/data/answer.json +161 -0
  41. data/spec/data/dashboard.json +949 -0
  42. data/spec/data/game.json +147 -0
  43. data/spec/data/login.json +25 -0
  44. data/spec/data/my_profile.json +556 -0
  45. data/spec/data/new_game.json +363 -0
  46. data/spec/data/profile.json +553 -0
  47. data/spec/data/question.json +14 -0
  48. data/spec/data/question_image.json +15 -0
  49. data/spec/data/search.json +123 -0
  50. data/spec/data/user.json +25 -0
  51. data/spec/game_spec.rb +60 -0
  52. data/spec/parsers/category_statistics_parser_spec.rb +41 -0
  53. data/spec/parsers/game_parser_spec.rb +114 -0
  54. data/spec/parsers/game_statistics_parser_spec.rb +56 -0
  55. data/spec/parsers/profile_parser_spec.rb +59 -0
  56. data/spec/parsers/question_parser_spec.rb +34 -0
  57. data/spec/parsers/session_parser_spec.rb +20 -0
  58. data/spec/parsers/time_parser_spec.rb +19 -0
  59. data/spec/parsers/user_parser_spec.rb +51 -0
  60. data/spec/spec_helper.rb +48 -0
  61. data/spec/user_spec.rb +33 -0
  62. data/triviacrack.gemspec +31 -0
  63. metadata +258 -0
@@ -0,0 +1,4 @@
1
+ # Public: The version of this gem.
2
+ module TriviaCrack
3
+ VERSION = "0.1.0"
4
+ end
@@ -0,0 +1,72 @@
1
+ require "spec_helper"
2
+
3
+ describe TriviaCrack::API::Game do
4
+
5
+ let(:session) { TriviaCrack::Session.new session_id: "session", user_id: 1 }
6
+ let(:client) { (Class.new(APIStub) { include TriviaCrack::API::Game }).new session }
7
+
8
+ let(:response) { double(code: code, body: raw_data) }
9
+
10
+ before { allow(Unirest).to receive(:get) { response } }
11
+ before { allow(Unirest).to receive(:post) { response } }
12
+
13
+ describe "#get_games" do
14
+
15
+ subject { client.get_games[3] }
16
+
17
+ let(:raw_data) { SpecData.get "dashboard.json" }
18
+
19
+ context 'given that the request is successful' do
20
+ let(:code) { 200 }
21
+
22
+ it { expect(TriviaCrack::Parsers::GameParser).to receive(:parse).at_least 1; subject }
23
+ it { is_expected.to be_a TriviaCrack::Game }
24
+ end
25
+
26
+ context 'given that the request fails' do
27
+ let(:code) { 400 }
28
+
29
+ it { expect{ subject }.to raise_error TriviaCrack::Errors::RequestError }
30
+ end
31
+ end
32
+
33
+ describe "#get_game" do
34
+
35
+ subject { client.get_game 123 }
36
+
37
+ let(:raw_data) { SpecData.get "game.json" }
38
+
39
+ context 'given that the request is successful' do
40
+ let(:code) { 200 }
41
+
42
+ it { expect(TriviaCrack::Parsers::GameParser).to receive(:parse).once; subject }
43
+ it { is_expected.to be_a TriviaCrack::Game }
44
+ end
45
+
46
+ context 'given that the request fails' do
47
+ let(:code) { 400 }
48
+
49
+ it { expect{ subject }.to raise_error TriviaCrack::Errors::RequestError }
50
+ end
51
+ end
52
+
53
+ describe "#start_new_game" do
54
+
55
+ subject { client.start_new_game }
56
+
57
+ let(:raw_data) { SpecData.get "new_game.json" }
58
+
59
+ context 'given that the request is successful' do
60
+ let(:code) { 201 }
61
+
62
+ it { expect(TriviaCrack::Parsers::GameParser).to receive(:parse).once; subject }
63
+ it { is_expected.to be_a TriviaCrack::Game }
64
+ end
65
+
66
+ context 'given that the request fails' do
67
+ let(:code) { 400 }
68
+
69
+ it { expect{ subject }.to raise_error TriviaCrack::Errors::RequestError }
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,34 @@
1
+ require "spec_helper"
2
+
3
+ describe TriviaCrack::API::Login do
4
+
5
+ let(:client) { (Class.new(APIStub) { include TriviaCrack::API::Login }).new }
6
+
7
+ let(:response) { double(code: code, body: raw_data) }
8
+
9
+ before { allow(Unirest).to receive(:post) { response } }
10
+
11
+ describe "#login" do
12
+
13
+ subject { client.login email, password }
14
+
15
+ let(:email) { "user@example.com" }
16
+ let(:password) { "password123" }
17
+ let(:raw_data) { SpecData.get "login.json" }
18
+
19
+ context 'given that the request is successful' do
20
+ let(:code) { 200 }
21
+
22
+ it { expect(TriviaCrack::Parsers::SessionParser).to receive(:parse).once; subject }
23
+ its(:user_id) { is_expected.to be 111 }
24
+ its(:username) { is_expected.to eq "example" }
25
+ its(:session_id) { is_expected.to eq "session123" }
26
+ end
27
+
28
+ context 'given that the request is fails' do
29
+ let(:code) { 400 }
30
+
31
+ it { expect{ subject }.to raise_error TriviaCrack::Errors::RequestError }
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,51 @@
1
+ require "spec_helper"
2
+
3
+ describe TriviaCrack::API::Profile do
4
+
5
+ let(:session) { TriviaCrack::Session.new session_id: "session", user_id: 1 }
6
+ let(:client) { (Class.new(APIStub) { include TriviaCrack::API::Profile }).new session }
7
+
8
+ let(:response) { double(code: code, body: raw_data) }
9
+
10
+ before { allow(Unirest).to receive(:get) { response } }
11
+
12
+ describe "#get_profile" do
13
+
14
+ subject { client.get_profile 111 }
15
+
16
+ let(:raw_data) { SpecData.get "profile.json" }
17
+
18
+ context 'given that the request is successful' do
19
+ let(:code) { 200 }
20
+
21
+ it { expect(TriviaCrack::Parsers::ProfileParser).to receive(:parse).once; subject }
22
+ it { is_expected.to be_a TriviaCrack::Profile }
23
+ end
24
+
25
+ context 'given that the request fails' do
26
+ let(:code) { 400 }
27
+
28
+ it { expect{ subject }.to raise_error TriviaCrack::Errors::RequestError }
29
+ end
30
+ end
31
+
32
+ describe "#get_my_profile" do
33
+
34
+ subject { client.get_my_profile }
35
+
36
+ let(:raw_data) { SpecData.get "my_profile.json" }
37
+
38
+ context 'given that the request is successful' do
39
+ let(:code) { 200 }
40
+
41
+ it { expect(TriviaCrack::Parsers::ProfileParser).to receive(:parse).once; subject }
42
+ it { is_expected.to be_a TriviaCrack::Profile }
43
+ end
44
+
45
+ context 'given that the request fails' do
46
+ let(:code) { 400 }
47
+
48
+ it { expect{ subject }.to raise_error TriviaCrack::Errors::RequestError }
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,45 @@
1
+ require "spec_helper"
2
+
3
+ describe TriviaCrack::API::Question do
4
+
5
+ let(:session) { TriviaCrack::Session.new session_id: "session", user_id: 1 }
6
+ let(:client) { (Class.new(APIStub) { include TriviaCrack::API::Question }).new session }
7
+
8
+ let(:response) { double(code: code, body: raw_data) }
9
+
10
+ before { allow(Unirest).to receive(:post) { response } }
11
+
12
+ describe "#answer_question" do
13
+
14
+ subject { client.answer_question game_id, question, answer }
15
+
16
+ let(:raw_data) { SpecData.get "answer.json" }
17
+ let(:question) { double(id: 1, correct_answer: 1, type: "NORMAL", category: "SPORTS") }
18
+ let(:game_id) { 22 }
19
+
20
+ context 'given that the question was answer correctly' do
21
+ let(:code) { 200 }
22
+ let(:answer) { 1 }
23
+
24
+ it { expect(TriviaCrack::Parsers::GameParser).to receive(:parse).once; subject }
25
+ it { expect(subject[0]).to be_a TriviaCrack::Game }
26
+ it { expect(subject[1]).to be true }
27
+ end
28
+
29
+ context 'given that the question was answer incorrectly' do
30
+ let(:code) { 200 }
31
+ let(:answer) { 0 }
32
+
33
+ it { expect(TriviaCrack::Parsers::GameParser).to receive(:parse).once; subject }
34
+ it { expect(subject[0]).to be_a TriviaCrack::Game }
35
+ it { expect(subject[1]).to be false }
36
+ end
37
+
38
+ context 'given that the request fails' do
39
+ let(:code) { 400 }
40
+ let(:answer) { 1 }
41
+
42
+ it { expect{ subject }.to raise_error TriviaCrack::Errors::RequestError }
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,50 @@
1
+ require "spec_helper"
2
+
3
+ describe TriviaCrack::API::User do
4
+
5
+ let(:session) { TriviaCrack::Session.new session_id: "session", user_id: 1 }
6
+ let(:client) { (Class.new(APIStub) { include TriviaCrack::API::User }).new session }
7
+
8
+ let(:response) { double(code: code, body: raw_data) }
9
+
10
+ before { allow(Unirest).to receive(:get) { response } }
11
+
12
+ describe "#get_user_id" do
13
+
14
+ subject { client.get_user_id "example.2" }
15
+
16
+ let(:raw_data) { SpecData.get "search.json" }
17
+
18
+ context 'given that the request is successful' do
19
+ let(:code) { 200 }
20
+
21
+ it { is_expected.to be 112 }
22
+ end
23
+
24
+ context 'given that the request fails' do
25
+ let(:code) { 400 }
26
+
27
+ it { expect{ subject }.to raise_error TriviaCrack::Errors::RequestError }
28
+ end
29
+ end
30
+
31
+ describe "#get_user" do
32
+
33
+ subject { client.get_user }
34
+
35
+ let(:raw_data) { SpecData.get "dashboard.json" }
36
+
37
+ context 'given that the request is successful' do
38
+ let(:code) { 200 }
39
+
40
+ it { expect(TriviaCrack::Parsers::UserParser).to receive(:parse).once; subject }
41
+ it { is_expected.to be_a TriviaCrack::User }
42
+ end
43
+
44
+ context 'given that the request fails' do
45
+ let(:code) { 400 }
46
+
47
+ it { expect{ subject }.to raise_error TriviaCrack::Errors::RequestError }
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,161 @@
1
+ {
2
+ "id": 1111,
3
+ "opponent": {
4
+ "id": 111,
5
+ "alerts_count": 0,
6
+ "username": "example.2",
7
+ "facebook_id": "",
8
+ "fb_show_picture": true,
9
+ "fb_show_name": true,
10
+ "allow_og_posts": true,
11
+ "level_data": {
12
+ "level": 116
13
+ }
14
+ },
15
+ "game_status": "ACTIVE",
16
+ "language": "EN",
17
+ "created": "02/18/2015 00:11:33 EST",
18
+ "last_turn": "02/18/2015 13:17:41 EST",
19
+ "type": "NORMAL",
20
+ "expiration_date": "02/21/2015 13:17:41 EST",
21
+ "my_turn": true,
22
+ "statistics": {
23
+ "player_one_statistics": {
24
+ "category_questions": [{
25
+ "category": "SPORTS",
26
+ "correct": 1,
27
+ "incorrect": 0,
28
+ "worst": false
29
+ }, {
30
+ "category": "ENTERTAINMENT",
31
+ "correct": 2,
32
+ "incorrect": 0,
33
+ "worst": false
34
+ }, {
35
+ "category": "SCIENCE",
36
+ "correct": 3,
37
+ "incorrect": 0,
38
+ "worst": false
39
+ }, {
40
+ "category": "HISTORY",
41
+ "correct": 2,
42
+ "incorrect": 2,
43
+ "worst": true,
44
+ "performance": 50
45
+ }, {
46
+ "category": "GEOGRAPHY",
47
+ "correct": 2,
48
+ "incorrect": 1,
49
+ "worst": false
50
+ }, {
51
+ "category": "ARTS",
52
+ "correct": 3,
53
+ "incorrect": 0,
54
+ "worst": false
55
+ }],
56
+ "correct_answers": 13,
57
+ "incorrect_answers": 3,
58
+ "challenges_won": 0,
59
+ "questions_answered": 16,
60
+ "crowns_won": 3
61
+ },
62
+ "player_two_statistics": {
63
+ "category_questions": [{
64
+ "category": "GEOGRAPHY",
65
+ "correct": 1,
66
+ "incorrect": 3,
67
+ "worst": false
68
+ }, {
69
+ "category": "ARTS",
70
+ "correct": 1,
71
+ "incorrect": 0,
72
+ "worst": false
73
+ }, {
74
+ "category": "SCIENCE",
75
+ "correct": 3,
76
+ "incorrect": 0,
77
+ "worst": false
78
+ }],
79
+ "correct_answers": 5,
80
+ "incorrect_answers": 3,
81
+ "challenges_won": 0,
82
+ "questions_answered": 8,
83
+ "crowns_won": 1
84
+ }
85
+ },
86
+ "normalType": true,
87
+ "duelGameType": false,
88
+ "spins_data": {
89
+ "spins": [{
90
+ "type": "NORMAL",
91
+ "questions": [{
92
+ "question": {
93
+ "id": 15593975,
94
+ "category": "SPORTS",
95
+ "text": "What country is the soccer team Real Madrid from?",
96
+ "answers": ["Spain", "England", "Italy", "Mexico"],
97
+ "author": {
98
+ "id": 72888815,
99
+ "name": "adrianahjuarez",
100
+ "username": "adrianahjuarez",
101
+ "fb_show_picture": false,
102
+ "fb_show_name": false
103
+ },
104
+ "correct_answer": 0,
105
+ "media_type": "NORMAL"
106
+ },
107
+ "powerup_question": {
108
+ "id": 520,
109
+ "category": "SPORTS",
110
+ "text": "Who wins in a badminton match?",
111
+ "answers": ["The best of 7 sets", "The best of 3 sets", "The best of 1 set", "The best of 15 sets"],
112
+ "author": {
113
+ "id": 10730224,
114
+ "name": "Leila Zgz",
115
+ "username": "leila.vela.54",
116
+ "facebook_id": "1412540407",
117
+ "facebook_name": "Leila Zgz",
118
+ "fb_show_picture": true,
119
+ "fb_show_name": true
120
+ },
121
+ "translator": {
122
+ "id": 35495955,
123
+ "name": "Juan Pablo San Martín",
124
+ "username": "saanmaa",
125
+ "facebook_id": "1275759889",
126
+ "facebook_name": "Juan Pablo San Martín",
127
+ "fb_show_picture": true,
128
+ "fb_show_name": true
129
+ },
130
+ "correct_answer": 1,
131
+ "media_type": "NORMAL"
132
+ }
133
+ }]
134
+ }]
135
+ },
136
+ "available_crowns": ["SPORTS", "ARTS", "ENTERTAINMENT"],
137
+ "my_player_number": 1,
138
+ "available_extra_shots": 1,
139
+ "player_one": {
140
+ "charges": 1,
141
+ "crowns": ["SCIENCE", "GEOGRAPHY", "HISTORY"]
142
+ },
143
+ "player_two": {
144
+ "charges": 0,
145
+ "crowns": ["SCIENCE"]
146
+ },
147
+ "round_number": 4,
148
+ "sub_status": "P1_PLAYING_TURN",
149
+ "previous_sub_status": "P1_PLAYING_TURN",
150
+ "is_random": true,
151
+ "unread_messages": 0,
152
+ "status_version": 24,
153
+ "new_achievements": false,
154
+ "my_level_data": {
155
+ "level": 30,
156
+ "points": 521,
157
+ "progress": 87,
158
+ "goal_points": 525,
159
+ "level_up": false
160
+ }
161
+ }
@@ -0,0 +1,949 @@
1
+ {
2
+ "time": "02/18/2015 16:30:05 EST",
3
+ "coins": 79,
4
+ "extra_shots": 3,
5
+ "lives": {
6
+ "quantity": 3,
7
+ "max": 3,
8
+ "unlimited": false
9
+ },
10
+ "inbox": {
11
+ "total": 0,
12
+ "news": 0
13
+ },
14
+ "unread_conversations": 0,
15
+ "level_data": {
16
+ "level": 30,
17
+ "points": 521,
18
+ "progress": 87,
19
+ "goal_points": 525,
20
+ "level_up": false
21
+ },
22
+ "list": [{
23
+ "id": 1111,
24
+ "opponent": {
25
+ "id": 111,
26
+ "alerts_count": 0,
27
+ "username": "example.2",
28
+ "facebook_id": "",
29
+ "fb_show_picture": true,
30
+ "fb_show_name": true,
31
+ "allow_og_posts": true,
32
+ "level_data": {
33
+ "level": 39
34
+ }
35
+ },
36
+ "game_status": "ACTIVE",
37
+ "language": "EN",
38
+ "created": "02/17/2015 21:47:19 EST",
39
+ "last_turn": "02/18/2015 11:25:19 EST",
40
+ "type": "NORMAL",
41
+ "expiration_date": "02/21/2015 11:25:19 EST",
42
+ "my_turn": false,
43
+ "statistics": {
44
+ "player_one_statistics": {
45
+ "category_questions": [{
46
+ "category": "ARTS",
47
+ "correct": 1,
48
+ "incorrect": 2,
49
+ "worst": false
50
+ }, {
51
+ "category": "SPORTS",
52
+ "correct": 0,
53
+ "incorrect": 1,
54
+ "worst": true,
55
+ "performance": 0
56
+ }, {
57
+ "category": "GEOGRAPHY",
58
+ "correct": 2,
59
+ "incorrect": 0,
60
+ "worst": false
61
+ }, {
62
+ "category": "ENTERTAINMENT",
63
+ "correct": 3,
64
+ "incorrect": 0,
65
+ "worst": false
66
+ }, {
67
+ "category": "HISTORY",
68
+ "correct": 3,
69
+ "incorrect": 1,
70
+ "worst": false
71
+ }, {
72
+ "category": "SCIENCE",
73
+ "correct": 1,
74
+ "incorrect": 0,
75
+ "worst": false
76
+ }],
77
+ "correct_answers": 10,
78
+ "incorrect_answers": 4,
79
+ "challenges_won": 0,
80
+ "questions_answered": 14,
81
+ "crowns_won": 4
82
+ },
83
+ "player_two_statistics": {
84
+ "category_questions": [{
85
+ "category": "SPORTS",
86
+ "correct": 3,
87
+ "incorrect": 0,
88
+ "worst": false
89
+ }, {
90
+ "category": "GEOGRAPHY",
91
+ "correct": 2,
92
+ "incorrect": 0,
93
+ "worst": false
94
+ }, {
95
+ "category": "ENTERTAINMENT",
96
+ "correct": 3,
97
+ "incorrect": 0,
98
+ "worst": false
99
+ }, {
100
+ "category": "HISTORY",
101
+ "correct": 1,
102
+ "incorrect": 1,
103
+ "worst": false
104
+ }, {
105
+ "category": "SCIENCE",
106
+ "correct": 0,
107
+ "incorrect": 2,
108
+ "worst": false
109
+ }],
110
+ "correct_answers": 9,
111
+ "incorrect_answers": 3,
112
+ "challenges_won": 0,
113
+ "questions_answered": 12,
114
+ "crowns_won": 2
115
+ }
116
+ },
117
+ "duelGameType": false,
118
+ "normalType": true,
119
+ "available_crowns": ["HISTORY", "ENTERTAINMENT", "ARTS", "SCIENCE"],
120
+ "my_player_number": 1,
121
+ "player_one": {
122
+ "charges": 0,
123
+ "crowns": ["HISTORY", "ENTERTAINMENT", "GEOGRAPHY", "SCIENCE"]
124
+ },
125
+ "player_two": {
126
+ "charges": 1,
127
+ "crowns": ["GEOGRAPHY", "SPORTS"]
128
+ },
129
+ "round_number": 4,
130
+ "sub_status": "P2_PLAYING_TURN",
131
+ "previous_sub_status": "P2_PLAYING_TURN",
132
+ "is_random": true,
133
+ "unread_messages": 0,
134
+ "status_version": 26,
135
+ "my_level_data": {
136
+ "level": 30,
137
+ "points": 521,
138
+ "progress": 87,
139
+ "goal_points": 525,
140
+ "level_up": false
141
+ }
142
+ }, {
143
+ "id": 1112,
144
+ "opponent": {
145
+ "id": 112,
146
+ "alerts_count": 0,
147
+ "username": "example.4",
148
+ "facebook_id": "1",
149
+ "facebook_name": "Example 4",
150
+ "fb_show_picture": true,
151
+ "fb_show_name": true,
152
+ "allow_og_posts": true,
153
+ "level_data": {
154
+ "level": 17
155
+ }
156
+ },
157
+ "game_status": "ACTIVE",
158
+ "language": "EN",
159
+ "created": "02/16/2015 17:02:50 EST",
160
+ "last_turn": "02/16/2015 17:04:28 EST",
161
+ "type": "NORMAL",
162
+ "expiration_date": "02/19/2015 17:04:28 EST",
163
+ "my_turn": false,
164
+ "statistics": {
165
+ "player_one_statistics": {
166
+ "category_questions": [{
167
+ "category": "SPORTS",
168
+ "correct": 1,
169
+ "incorrect": 1,
170
+ "worst": false
171
+ }],
172
+ "correct_answers": 1,
173
+ "incorrect_answers": 1,
174
+ "challenges_won": 0,
175
+ "questions_answered": 2,
176
+ "crowns_won": 0
177
+ },
178
+ "player_two_statistics": {
179
+ "category_questions": [{
180
+ "category": "HISTORY",
181
+ "correct": 0,
182
+ "incorrect": 1,
183
+ "worst": false
184
+ }, {
185
+ "category": "SPORTS",
186
+ "correct": 1,
187
+ "incorrect": 0,
188
+ "worst": false
189
+ }],
190
+ "correct_answers": 1,
191
+ "incorrect_answers": 1,
192
+ "challenges_won": 0,
193
+ "questions_answered": 2,
194
+ "crowns_won": 0
195
+ }
196
+ },
197
+ "duelGameType": false,
198
+ "normalType": true,
199
+ "available_crowns": ["HISTORY", "ENTERTAINMENT", "ARTS", "GEOGRAPHY", "SCIENCE", "SPORTS"],
200
+ "my_player_number": 2,
201
+ "player_one": {
202
+ "charges": 1
203
+ },
204
+ "player_two": {
205
+ "charges": 1
206
+ },
207
+ "round_number": 2,
208
+ "sub_status": "P1_WAITING_TURN",
209
+ "previous_sub_status": "P2_PLAYING_FIRST_TURN",
210
+ "is_random": true,
211
+ "unread_messages": 0,
212
+ "status_version": 4,
213
+ "my_level_data": {
214
+ "level": 30,
215
+ "points": 521,
216
+ "progress": 87,
217
+ "goal_points": 525,
218
+ "level_up": false
219
+ }
220
+ }, {
221
+ "id": 1113,
222
+ "opponent": {
223
+ "id": 113,
224
+ "alerts_count": 0,
225
+ "username": "example.5",
226
+ "facebook_id": "",
227
+ "fb_show_picture": true,
228
+ "fb_show_name": true,
229
+ "allow_og_posts": true,
230
+ "level_data": {
231
+ "level": 15
232
+ }
233
+ },
234
+ "game_status": "ACTIVE",
235
+ "language": "EN",
236
+ "created": "02/15/2015 20:38:49 EST",
237
+ "last_turn": "02/17/2015 16:06:37 EST",
238
+ "type": "NORMAL",
239
+ "expiration_date": "02/20/2015 16:06:37 EST",
240
+ "my_turn": false,
241
+ "statistics": {
242
+ "player_one_statistics": {
243
+ "category_questions": [{
244
+ "category": "ARTS",
245
+ "correct": 1,
246
+ "incorrect": 1,
247
+ "worst": false
248
+ }, {
249
+ "category": "SPORTS",
250
+ "correct": 0,
251
+ "incorrect": 2,
252
+ "worst": false
253
+ }, {
254
+ "category": "GEOGRAPHY",
255
+ "correct": 3,
256
+ "incorrect": 1,
257
+ "worst": false
258
+ }, {
259
+ "category": "HISTORY",
260
+ "correct": 0,
261
+ "incorrect": 1,
262
+ "worst": false
263
+ }, {
264
+ "category": "SCIENCE",
265
+ "correct": 3,
266
+ "incorrect": 0,
267
+ "worst": false
268
+ }],
269
+ "correct_answers": 7,
270
+ "incorrect_answers": 5,
271
+ "challenges_won": 0,
272
+ "questions_answered": 12,
273
+ "crowns_won": 1
274
+ },
275
+ "player_two_statistics": {
276
+ "category_questions": [{
277
+ "category": "ARTS",
278
+ "correct": 0,
279
+ "incorrect": 1,
280
+ "worst": false
281
+ }, {
282
+ "category": "SPORTS",
283
+ "correct": 3,
284
+ "incorrect": 0,
285
+ "worst": false
286
+ }, {
287
+ "category": "GEOGRAPHY",
288
+ "correct": 0,
289
+ "incorrect": 3,
290
+ "worst": false
291
+ }, {
292
+ "category": "ENTERTAINMENT",
293
+ "correct": 2,
294
+ "incorrect": 0,
295
+ "worst": false
296
+ }, {
297
+ "category": "HISTORY",
298
+ "correct": 2,
299
+ "incorrect": 0,
300
+ "worst": false
301
+ }],
302
+ "correct_answers": 7,
303
+ "incorrect_answers": 4,
304
+ "challenges_won": 0,
305
+ "questions_answered": 11,
306
+ "crowns_won": 3
307
+ }
308
+ },
309
+ "duelGameType": false,
310
+ "normalType": true,
311
+ "available_crowns": ["ARTS", "GEOGRAPHY", "SCIENCE"],
312
+ "my_player_number": 1,
313
+ "player_one": {
314
+ "charges": 0,
315
+ "crowns": ["SCIENCE"]
316
+ },
317
+ "player_two": {
318
+ "charges": 0,
319
+ "crowns": ["HISTORY", "ENTERTAINMENT", "SPORTS"]
320
+ },
321
+ "round_number": 5,
322
+ "sub_status": "P2_WAITING_TURN",
323
+ "previous_sub_status": "P1_PLAYING_TURN",
324
+ "is_random": true,
325
+ "unread_messages": 0,
326
+ "status_version": 23,
327
+ "my_level_data": {
328
+ "level": 30,
329
+ "points": 521,
330
+ "progress": 87,
331
+ "goal_points": 525,
332
+ "level_up": false
333
+ }
334
+ }, {
335
+ "id": 1115,
336
+ "opponent": {
337
+ "id": 114,
338
+ "alerts_count": 0,
339
+ "username": "example.6",
340
+ "facebook_id": "",
341
+ "fb_show_picture": true,
342
+ "fb_show_name": true,
343
+ "allow_og_posts": true,
344
+ "level_data": {
345
+ "level": 116
346
+ }
347
+ },
348
+ "game_status": "ACTIVE",
349
+ "language": "EN",
350
+ "created": "02/18/2015 00:11:33 EST",
351
+ "last_turn": "02/18/2015 13:17:41 EST",
352
+ "type": "NORMAL",
353
+ "expiration_date": "02/21/2015 13:17:41 EST",
354
+ "my_turn": true,
355
+ "statistics": {
356
+ "player_one_statistics": {
357
+ "category_questions": [{
358
+ "category": "ARTS",
359
+ "correct": 3,
360
+ "incorrect": 0,
361
+ "worst": false
362
+ }, {
363
+ "category": "SPORTS",
364
+ "correct": 1,
365
+ "incorrect": 0,
366
+ "worst": false
367
+ }, {
368
+ "category": "GEOGRAPHY",
369
+ "correct": 2,
370
+ "incorrect": 1,
371
+ "worst": false
372
+ }, {
373
+ "category": "ENTERTAINMENT",
374
+ "correct": 2,
375
+ "incorrect": 0,
376
+ "worst": false
377
+ }, {
378
+ "category": "HISTORY",
379
+ "correct": 2,
380
+ "incorrect": 2,
381
+ "worst": true,
382
+ "performance": 50
383
+ }, {
384
+ "category": "SCIENCE",
385
+ "correct": 3,
386
+ "incorrect": 0,
387
+ "worst": false
388
+ }],
389
+ "correct_answers": 13,
390
+ "incorrect_answers": 3,
391
+ "challenges_won": 0,
392
+ "questions_answered": 16,
393
+ "crowns_won": 3
394
+ },
395
+ "player_two_statistics": {
396
+ "category_questions": [{
397
+ "category": "ARTS",
398
+ "correct": 1,
399
+ "incorrect": 0,
400
+ "worst": false
401
+ }, {
402
+ "category": "SCIENCE",
403
+ "correct": 3,
404
+ "incorrect": 0,
405
+ "worst": false
406
+ }, {
407
+ "category": "GEOGRAPHY",
408
+ "correct": 1,
409
+ "incorrect": 3,
410
+ "worst": false
411
+ }],
412
+ "correct_answers": 5,
413
+ "incorrect_answers": 3,
414
+ "challenges_won": 0,
415
+ "questions_answered": 8,
416
+ "crowns_won": 1
417
+ }
418
+ },
419
+ "duelGameType": false,
420
+ "normalType": true,
421
+ "spins_data": {
422
+ "spins": [{
423
+ "type": "NORMAL",
424
+ "questions": [{
425
+ "question": {
426
+ "id": 15593975,
427
+ "category": "SPORTS",
428
+ "text": "What country is the soccer team Real Madrid from?",
429
+ "answers": ["Spain", "England", "Italy", "Mexico"],
430
+ "author": {
431
+ "id": 72888815,
432
+ "name": "adrianahjuarez",
433
+ "username": "adrianahjuarez",
434
+ "fb_show_picture": false,
435
+ "fb_show_name": false
436
+ },
437
+ "correct_answer": 0,
438
+ "media_type": "NORMAL"
439
+ },
440
+ "powerup_question": {
441
+ "id": 520,
442
+ "category": "SPORTS",
443
+ "text": "Who wins in a badminton match?",
444
+ "answers": ["The best of 7 sets", "The best of 3 sets", "The best of 1 set", "The best of 15 sets"],
445
+ "author": {
446
+ "id": 10730224,
447
+ "name": "Leila Zgz",
448
+ "username": "leila.vela.54",
449
+ "facebook_id": "1412540407",
450
+ "facebook_name": "Leila Zgz",
451
+ "fb_show_picture": true,
452
+ "fb_show_name": true
453
+ },
454
+ "translator": {
455
+ "id": 35495955,
456
+ "name": "Juan Pablo San Martín",
457
+ "username": "saanmaa",
458
+ "facebook_id": "1275759889",
459
+ "facebook_name": "Juan Pablo San Martín",
460
+ "fb_show_picture": true,
461
+ "fb_show_name": true
462
+ },
463
+ "correct_answer": 1,
464
+ "media_type": "NORMAL"
465
+ }
466
+ }]
467
+ }]
468
+ },
469
+ "available_crowns": ["ENTERTAINMENT", "ARTS", "SPORTS"],
470
+ "my_player_number": 1,
471
+ "available_extra_shots": 1,
472
+ "player_one": {
473
+ "charges": 1,
474
+ "crowns": ["HISTORY", "GEOGRAPHY", "SCIENCE"]
475
+ },
476
+ "player_two": {
477
+ "charges": 0,
478
+ "crowns": ["SCIENCE"]
479
+ },
480
+ "round_number": 4,
481
+ "sub_status": "P1_PLAYING_TURN",
482
+ "previous_sub_status": "P1_PLAYING_TURN",
483
+ "is_random": true,
484
+ "unread_messages": 0,
485
+ "status_version": 24,
486
+ "my_level_data": {
487
+ "level": 30,
488
+ "points": 521,
489
+ "progress": 87,
490
+ "goal_points": 525,
491
+ "level_up": false
492
+ }
493
+ }, {
494
+ "id": 1116,
495
+ "opponent": {
496
+ "id": 116,
497
+ "alerts_count": 0,
498
+ "username": "example.7",
499
+ "facebook_id": "",
500
+ "fb_show_picture": true,
501
+ "fb_show_name": true,
502
+ "allow_og_posts": true,
503
+ "level_data": {
504
+ "level": 23
505
+ }
506
+ },
507
+ "game_status": "ENDED",
508
+ "language": "EN",
509
+ "created": "02/17/2015 17:04:00 EST",
510
+ "last_turn": "02/18/2015 02:07:31 EST",
511
+ "win": true,
512
+ "type": "NORMAL",
513
+ "ended_reason": "NORMAL",
514
+ "expiration_date": "02/21/2015 02:07:31 EST",
515
+ "my_turn": true,
516
+ "events": [{
517
+ "type": "GAME_ENDED",
518
+ "coins_reward": 3,
519
+ "lives_reward": 0
520
+ }],
521
+ "statistics": {
522
+ "player_one_statistics": {
523
+ "category_questions": [{
524
+ "category": "ARTS",
525
+ "correct": 3,
526
+ "incorrect": 0,
527
+ "worst": false
528
+ }, {
529
+ "category": "SPORTS",
530
+ "correct": 4,
531
+ "incorrect": 0,
532
+ "worst": false
533
+ }, {
534
+ "category": "GEOGRAPHY",
535
+ "correct": 2,
536
+ "incorrect": 2,
537
+ "worst": true,
538
+ "performance": 50
539
+ }, {
540
+ "category": "ENTERTAINMENT",
541
+ "correct": 4,
542
+ "incorrect": 0,
543
+ "worst": false
544
+ }, {
545
+ "category": "HISTORY",
546
+ "correct": 3,
547
+ "incorrect": 2,
548
+ "worst": false
549
+ }, {
550
+ "category": "SCIENCE",
551
+ "correct": 6,
552
+ "incorrect": 0,
553
+ "worst": false
554
+ }],
555
+ "correct_answers": 22,
556
+ "incorrect_answers": 4,
557
+ "challenges_won": 0,
558
+ "questions_answered": 26,
559
+ "crowns_won": 6
560
+ },
561
+ "player_two_statistics": {
562
+ "category_questions": [{
563
+ "category": "ARTS",
564
+ "correct": 1,
565
+ "incorrect": 1,
566
+ "worst": false
567
+ }, {
568
+ "category": "SPORTS",
569
+ "correct": 1,
570
+ "incorrect": 0,
571
+ "worst": false
572
+ }, {
573
+ "category": "GEOGRAPHY",
574
+ "correct": 1,
575
+ "incorrect": 1,
576
+ "worst": false
577
+ }, {
578
+ "category": "ENTERTAINMENT",
579
+ "correct": 3,
580
+ "incorrect": 2,
581
+ "worst": false
582
+ }, {
583
+ "category": "SCIENCE",
584
+ "correct": 2,
585
+ "incorrect": 0,
586
+ "worst": false
587
+ }],
588
+ "correct_answers": 8,
589
+ "incorrect_answers": 4,
590
+ "challenges_won": 0,
591
+ "questions_answered": 12,
592
+ "crowns_won": 2
593
+ }
594
+ },
595
+ "duelGameType": false,
596
+ "normalType": true,
597
+ "my_player_number": 1,
598
+ "player_one": {
599
+ "charges": 0,
600
+ "crowns": ["HISTORY", "ARTS", "ENTERTAINMENT", "GEOGRAPHY", "SCIENCE", "SPORTS"]
601
+ },
602
+ "player_two": {
603
+ "charges": 0,
604
+ "crowns": ["ENTERTAINMENT", "SPORTS"]
605
+ },
606
+ "round_number": 5,
607
+ "ended_date": "02/18/2015 11:22:55 EST",
608
+ "sub_status": "P1_WON",
609
+ "previous_sub_status": "P1_WON",
610
+ "is_random": true,
611
+ "unread_messages": 0,
612
+ "status_version": 39,
613
+ "my_level_data": {
614
+ "level": 30,
615
+ "points": 521,
616
+ "progress": 87,
617
+ "goal_points": 525,
618
+ "level_up": false
619
+ }
620
+ }, {
621
+ "id": 1117,
622
+ "opponent": {
623
+ "id": 117,
624
+ "alerts_count": 0,
625
+ "username": "example.8",
626
+ "facebook_id": "1",
627
+ "facebook_name": "Example 8",
628
+ "fb_show_picture": true,
629
+ "fb_show_name": true,
630
+ "allow_og_posts": true,
631
+ "level_data": {
632
+ "level": 22
633
+ }
634
+ },
635
+ "game_status": "ACTIVE",
636
+ "language": "EN",
637
+ "created": "02/17/2015 23:56:24 EST",
638
+ "last_turn": "02/18/2015 16:07:32 EST",
639
+ "type": "NORMAL",
640
+ "expiration_date": "02/21/2015 16:07:32 EST",
641
+ "my_turn": true,
642
+ "statistics": {
643
+ "player_one_statistics": {
644
+ "category_questions": [{
645
+ "category": "ARTS",
646
+ "correct": 0,
647
+ "incorrect": 1,
648
+ "worst": false
649
+ }, {
650
+ "category": "GEOGRAPHY",
651
+ "correct": 0,
652
+ "incorrect": 1,
653
+ "worst": false
654
+ }, {
655
+ "category": "ENTERTAINMENT",
656
+ "correct": 2,
657
+ "incorrect": 0,
658
+ "worst": false
659
+ }, {
660
+ "category": "HISTORY",
661
+ "correct": 0,
662
+ "incorrect": 1,
663
+ "worst": false
664
+ }, {
665
+ "category": "SCIENCE",
666
+ "correct": 3,
667
+ "incorrect": 0,
668
+ "worst": false
669
+ }],
670
+ "correct_answers": 5,
671
+ "incorrect_answers": 3,
672
+ "challenges_won": 0,
673
+ "questions_answered": 8,
674
+ "crowns_won": 1
675
+ },
676
+ "player_two_statistics": {
677
+ "category_questions": [{
678
+ "category": "ARTS",
679
+ "correct": 2,
680
+ "incorrect": 0,
681
+ "worst": false
682
+ }, {
683
+ "category": "SPORTS",
684
+ "correct": 2,
685
+ "incorrect": 0,
686
+ "worst": false
687
+ }, {
688
+ "category": "GEOGRAPHY",
689
+ "correct": 3,
690
+ "incorrect": 0,
691
+ "worst": false
692
+ }, {
693
+ "category": "ENTERTAINMENT",
694
+ "correct": 2,
695
+ "incorrect": 0,
696
+ "worst": false
697
+ }, {
698
+ "category": "HISTORY",
699
+ "correct": 3,
700
+ "incorrect": 1,
701
+ "worst": false
702
+ }, {
703
+ "category": "SCIENCE",
704
+ "correct": 2,
705
+ "incorrect": 1,
706
+ "worst": true,
707
+ "performance": 66
708
+ }],
709
+ "correct_answers": 14,
710
+ "incorrect_answers": 2,
711
+ "challenges_won": 0,
712
+ "questions_answered": 16,
713
+ "crowns_won": 5
714
+ }
715
+ },
716
+ "duelGameType": false,
717
+ "normalType": true,
718
+ "spins_data": {
719
+ "spins": [{
720
+ "type": "NORMAL",
721
+ "questions": [{
722
+ "question": {
723
+ "id": 928,
724
+ "category": "SCIENCE",
725
+ "text": "Which of the following animals inject formic acid when they sting?",
726
+ "answers": ["Spiders", "Ants", "Snakes", "None"],
727
+ "correct_answer": 1,
728
+ "media_type": "NORMAL"
729
+ },
730
+ "powerup_question": {
731
+ "id": 24345199,
732
+ "category": "SCIENCE",
733
+ "text": "Which of these celestial objects is the smallest?",
734
+ "answers": ["Mercury", "The Moon", "Neptune", "Pluto"],
735
+ "author": {
736
+ "id": 92990421,
737
+ "name": "welsh10",
738
+ "username": "welsh10",
739
+ "fb_show_picture": false,
740
+ "fb_show_name": false
741
+ },
742
+ "correct_answer": 3,
743
+ "media_type": "NORMAL"
744
+ }
745
+ }]
746
+ }]
747
+ },
748
+ "available_crowns": ["ARTS"],
749
+ "my_player_number": 2,
750
+ "available_extra_shots": 1,
751
+ "player_one": {
752
+ "charges": 1,
753
+ "crowns": ["SCIENCE"]
754
+ },
755
+ "player_two": {
756
+ "charges": 0,
757
+ "crowns": ["HISTORY", "ENTERTAINMENT", "GEOGRAPHY", "SCIENCE", "SPORTS"]
758
+ },
759
+ "round_number": 3,
760
+ "sub_status": "P2_WAITING_TURN",
761
+ "previous_sub_status": "P1_PLAYING_TURN",
762
+ "is_random": false,
763
+ "unread_messages": 0,
764
+ "status_version": 24,
765
+ "my_level_data": {
766
+ "level": 30,
767
+ "points": 521,
768
+ "progress": 87,
769
+ "goal_points": 525,
770
+ "level_up": false
771
+ }
772
+ }, {
773
+ "id": 1118,
774
+ "opponent": {
775
+ "id": 118,
776
+ "alerts_count": 0,
777
+ "username": "example.9",
778
+ "facebook_id": "",
779
+ "fb_show_picture": true,
780
+ "fb_show_name": true,
781
+ "allow_og_posts": true,
782
+ "level_data": {
783
+ "level": 23
784
+ }
785
+ },
786
+ "game_status": "ENDED",
787
+ "language": "EN",
788
+ "created": "02/15/2015 22:36:28 EST",
789
+ "last_turn": "02/18/2015 00:21:43 EST",
790
+ "win": true,
791
+ "type": "NORMAL",
792
+ "ended_reason": "NORMAL",
793
+ "expiration_date": "02/21/2015 00:21:43 EST",
794
+ "my_turn": true,
795
+ "events": [{
796
+ "type": "GAME_ENDED",
797
+ "coins_reward": 3,
798
+ "lives_reward": 0
799
+ }],
800
+ "statistics": {
801
+ "player_one_statistics": {
802
+ "category_questions": [{
803
+ "category": "ARTS",
804
+ "correct": 2,
805
+ "incorrect": 0,
806
+ "worst": false
807
+ }, {
808
+ "category": "SPORTS",
809
+ "correct": 3,
810
+ "incorrect": 2,
811
+ "worst": false
812
+ }, {
813
+ "category": "GEOGRAPHY",
814
+ "correct": 2,
815
+ "incorrect": 2,
816
+ "worst": true,
817
+ "performance": 50
818
+ }, {
819
+ "category": "ENTERTAINMENT",
820
+ "correct": 2,
821
+ "incorrect": 0,
822
+ "worst": false
823
+ }, {
824
+ "category": "HISTORY",
825
+ "correct": 4,
826
+ "incorrect": 1,
827
+ "worst": false
828
+ }, {
829
+ "category": "SCIENCE",
830
+ "correct": 2,
831
+ "incorrect": 0,
832
+ "worst": false
833
+ }],
834
+ "correct_answers": 15,
835
+ "incorrect_answers": 5,
836
+ "challenges_won": 0,
837
+ "questions_answered": 20,
838
+ "crowns_won": 3
839
+ },
840
+ "player_two_statistics": {
841
+ "category_questions": [{
842
+ "category": "ARTS",
843
+ "correct": 3,
844
+ "incorrect": 0,
845
+ "worst": false
846
+ }, {
847
+ "category": "SPORTS",
848
+ "correct": 6,
849
+ "incorrect": 1,
850
+ "worst": false
851
+ }, {
852
+ "category": "GEOGRAPHY",
853
+ "correct": 4,
854
+ "incorrect": 2,
855
+ "worst": true,
856
+ "performance": 66
857
+ }, {
858
+ "category": "ENTERTAINMENT",
859
+ "correct": 3,
860
+ "incorrect": 0,
861
+ "worst": false
862
+ }, {
863
+ "category": "HISTORY",
864
+ "correct": 4,
865
+ "incorrect": 0,
866
+ "worst": false
867
+ }, {
868
+ "category": "SCIENCE",
869
+ "correct": 2,
870
+ "incorrect": 1,
871
+ "worst": true,
872
+ "performance": 66
873
+ }],
874
+ "correct_answers": 22,
875
+ "incorrect_answers": 4,
876
+ "challenges_won": 0,
877
+ "questions_answered": 26,
878
+ "crowns_won": 6
879
+ }
880
+ },
881
+ "duelGameType": false,
882
+ "normalType": true,
883
+ "my_player_number": 2,
884
+ "player_one": {
885
+ "charges": 2,
886
+ "crowns": ["HISTORY", "GEOGRAPHY", "SPORTS"]
887
+ },
888
+ "player_two": {
889
+ "charges": 0,
890
+ "crowns": ["HISTORY", "ARTS", "ENTERTAINMENT", "GEOGRAPHY", "SCIENCE", "SPORTS"]
891
+ },
892
+ "round_number": 5,
893
+ "ended_date": "02/18/2015 11:29:00 EST",
894
+ "sub_status": "P2_WON",
895
+ "previous_sub_status": "P2_WON",
896
+ "is_random": true,
897
+ "unread_messages": 0,
898
+ "status_version": 47,
899
+ "my_level_data": {
900
+ "level": 30,
901
+ "points": 521,
902
+ "progress": 87,
903
+ "goal_points": 525,
904
+ "level_up": false
905
+ }
906
+ }],
907
+ "app_config": {
908
+ "fp_friends_ttl": 300,
909
+ "fp_chats_ttl": 300,
910
+ "version": 1424295005,
911
+ "lives": {
912
+ "increment_interval": 3600,
913
+ "increment_quantity": 1
914
+ },
915
+ "questions_time": 30,
916
+ "power_ups": [{
917
+ "name": "DOUBLE_CHANCE",
918
+ "cost": 5
919
+ }, {
920
+ "name": "BOMB",
921
+ "cost": 5
922
+ }, {
923
+ "name": "SWAP_QUESTION",
924
+ "cost": 3
925
+ }, {
926
+ "name": "EXTRA_TIME",
927
+ "cost": 1
928
+ }, {
929
+ "name": "SECOND_CHANCE",
930
+ "cost": 15
931
+ }],
932
+ "crowns_per_turn_limit": 3,
933
+ "final_duel_rounds": 25,
934
+ "available_languages": ["ES", "EN", "PT", "FR", "IT", "CA", "DE", "RU", "JA", "NL"],
935
+ "extra_shots_limit": 1,
936
+ "rejected_questions_expiration": 7,
937
+ "dashboard_ttl": 300,
938
+ "duel_games_enabled": false,
939
+ "duel_games_players_min": 2,
940
+ "duel_games_players_max": 30,
941
+ "show_questions_reload_seconds": 1,
942
+ "codes_enabled": false
943
+ },
944
+ "notification_id": "",
945
+ "country": "CA",
946
+ "new_achievements": false,
947
+ "country_confirmation": true,
948
+ "see_ranking": false
949
+ }