lishogi 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 (248) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +9 -0
  3. data/LICENSE +661 -0
  4. data/LICENSE~ +1 -0
  5. data/Makefile +39 -0
  6. data/Makefile~ +7 -0
  7. data/README.md +276 -0
  8. data/Rakefile +10 -0
  9. data/docs/Account200Response.md +20 -0
  10. data/docs/AccountApi.md +345 -0
  11. data/docs/AccountEmail200Response.md +18 -0
  12. data/docs/AccountKid200Response.md +18 -0
  13. data/docs/AnalysisApi.md +77 -0
  14. data/docs/ApiStreamEvent200Response.md +53 -0
  15. data/docs/ApiUsersStatus200ResponseInner.md +30 -0
  16. data/docs/ArenaTournaments.md +22 -0
  17. data/docs/ArenaTournamentsApi.md +601 -0
  18. data/docs/BoardApi.md +659 -0
  19. data/docs/BoardGameStream200Response.md +51 -0
  20. data/docs/BoardGameTakebackAcceptParameter.md +15 -0
  21. data/docs/BotApi.md +634 -0
  22. data/docs/ChallengeDeclinedEvent.md +20 -0
  23. data/docs/ChallengeEvent.md +20 -0
  24. data/docs/ChallengeJson.md +42 -0
  25. data/docs/ChallengeJsonPerf.md +20 -0
  26. data/docs/ChallengeJsonTimeControl.md +51 -0
  27. data/docs/ChallengeJsonTimeControlOneOf.md +28 -0
  28. data/docs/ChallengeJsonTimeControlOneOf1.md +20 -0
  29. data/docs/ChallengeJsonTimeControlOneOf2.md +18 -0
  30. data/docs/ChallengeUser.md +30 -0
  31. data/docs/ChallengesApi.md +414 -0
  32. data/docs/ChatLineEvent.md +24 -0
  33. data/docs/Clock.md +24 -0
  34. data/docs/Count.md +38 -0
  35. data/docs/Error.md +18 -0
  36. data/docs/GameEventInfo.md +22 -0
  37. data/docs/GameEventInfoCompat.md +20 -0
  38. data/docs/GameEventPlayer.md +28 -0
  39. data/docs/GameFinishEvent.md +20 -0
  40. data/docs/GameFullEvent.md +42 -0
  41. data/docs/GameFullEventPerf.md +18 -0
  42. data/docs/GameJson.md +50 -0
  43. data/docs/GameJsonAnalysisInner.md +24 -0
  44. data/docs/GameJsonAnalysisInnerJudgment.md +20 -0
  45. data/docs/GameJsonClock.md +26 -0
  46. data/docs/GameJsonPlayers.md +20 -0
  47. data/docs/GameStartEvent.md +20 -0
  48. data/docs/GameStateEvent.md +38 -0
  49. data/docs/GameStatus.md +15 -0
  50. data/docs/GameUser.md +32 -0
  51. data/docs/GameUserAnalysis.md +24 -0
  52. data/docs/GamesApi.md +473 -0
  53. data/docs/LightUser.md +24 -0
  54. data/docs/LightUserTitle.md +49 -0
  55. data/docs/MessagingApi.md +79 -0
  56. data/docs/Move.md +28 -0
  57. data/docs/NotFound.md +18 -0
  58. data/docs/OAuthError.md +20 -0
  59. data/docs/Ok.md +18 -0
  60. data/docs/Perf.md +26 -0
  61. data/docs/PerfType.md +15 -0
  62. data/docs/Perfs.md +30 -0
  63. data/docs/PlayTime.md +20 -0
  64. data/docs/Profile.md +28 -0
  65. data/docs/PuzzleRoundJson.md +24 -0
  66. data/docs/PuzzlesApi.md +211 -0
  67. data/docs/SimulsApi.md +69 -0
  68. data/docs/Speed.md +15 -0
  69. data/docs/StudiesApi.md +233 -0
  70. data/docs/TVApi.md +208 -0
  71. data/docs/Team.md +32 -0
  72. data/docs/TeamAll200Response.md +30 -0
  73. data/docs/TeamRequest.md +24 -0
  74. data/docs/TeamRequestWithUser.md +20 -0
  75. data/docs/TeamsApi.md +702 -0
  76. data/docs/Title.md +15 -0
  77. data/docs/User.md +42 -0
  78. data/docs/UserExtended.md +60 -0
  79. data/docs/UserPreferences.md +72 -0
  80. data/docs/UsersApi.md +667 -0
  81. data/docs/Variant.md +22 -0
  82. data/docs/VariantKey.md +15 -0
  83. data/git_push.sh +57 -0
  84. data/lib/lishogi/api/account_api.rb +314 -0
  85. data/lib/lishogi/api/analysis_api.rb +92 -0
  86. data/lib/lishogi/api/arena_tournaments_api.rb +681 -0
  87. data/lib/lishogi/api/board_api.rb +685 -0
  88. data/lib/lishogi/api/bot_api.rb +608 -0
  89. data/lib/lishogi/api/challenges_api.rb +554 -0
  90. data/lib/lishogi/api/games_api.rb +514 -0
  91. data/lib/lishogi/api/messaging_api.rb +97 -0
  92. data/lib/lishogi/api/puzzles_api.rb +210 -0
  93. data/lib/lishogi/api/simuls_api.rb +79 -0
  94. data/lib/lishogi/api/studies_api.rb +244 -0
  95. data/lib/lishogi/api/teams_api.rb +678 -0
  96. data/lib/lishogi/api/tv_api.rb +222 -0
  97. data/lib/lishogi/api/users_api.rb +677 -0
  98. data/lib/lishogi/api_client.rb +437 -0
  99. data/lib/lishogi/api_error.rb +58 -0
  100. data/lib/lishogi/configuration.rb +392 -0
  101. data/lib/lishogi/models/account200_response.rb +223 -0
  102. data/lib/lishogi/models/account_email200_response.rb +214 -0
  103. data/lib/lishogi/models/account_kid200_response.rb +214 -0
  104. data/lib/lishogi/models/api_stream_event200_response.rb +107 -0
  105. data/lib/lishogi/models/api_users_status200_response_inner.rb +273 -0
  106. data/lib/lishogi/models/arena_tournaments.rb +238 -0
  107. data/lib/lishogi/models/board_game_stream200_response.rb +106 -0
  108. data/lib/lishogi/models/board_game_takeback_accept_parameter.rb +104 -0
  109. data/lib/lishogi/models/challenge_declined_event.rb +257 -0
  110. data/lib/lishogi/models/challenge_event.rb +257 -0
  111. data/lib/lishogi/models/challenge_json.rb +453 -0
  112. data/lib/lishogi/models/challenge_json_perf.rb +223 -0
  113. data/lib/lishogi/models/challenge_json_time_control.rb +106 -0
  114. data/lib/lishogi/models/challenge_json_time_control_one_of.rb +259 -0
  115. data/lib/lishogi/models/challenge_json_time_control_one_of1.rb +223 -0
  116. data/lib/lishogi/models/challenge_json_time_control_one_of2.rb +214 -0
  117. data/lib/lishogi/models/challenge_user.rb +275 -0
  118. data/lib/lishogi/models/chat_line_event.rb +315 -0
  119. data/lib/lishogi/models/clock.rb +242 -0
  120. data/lib/lishogi/models/count.rb +304 -0
  121. data/lib/lishogi/models/error.rb +215 -0
  122. data/lib/lishogi/models/game_event_info.rb +266 -0
  123. data/lib/lishogi/models/game_event_info_compat.rb +223 -0
  124. data/lib/lishogi/models/game_event_player.rb +260 -0
  125. data/lib/lishogi/models/game_finish_event.rb +257 -0
  126. data/lib/lishogi/models/game_full_event.rb +436 -0
  127. data/lib/lishogi/models/game_full_event_perf.rb +215 -0
  128. data/lib/lishogi/models/game_json.rb +457 -0
  129. data/lib/lishogi/models/game_json_analysis_inner.rb +251 -0
  130. data/lib/lishogi/models/game_json_analysis_inner_judgment.rb +258 -0
  131. data/lib/lishogi/models/game_json_clock.rb +250 -0
  132. data/lib/lishogi/models/game_json_players.rb +223 -0
  133. data/lib/lishogi/models/game_start_event.rb +257 -0
  134. data/lib/lishogi/models/game_state_event.rb +396 -0
  135. data/lib/lishogi/models/game_status.rb +52 -0
  136. data/lib/lishogi/models/game_user.rb +277 -0
  137. data/lib/lishogi/models/game_user_analysis.rb +269 -0
  138. data/lib/lishogi/models/light_user.rb +241 -0
  139. data/lib/lishogi/models/light_user_title.rb +105 -0
  140. data/lib/lishogi/models/move.rb +259 -0
  141. data/lib/lishogi/models/not_found.rb +214 -0
  142. data/lib/lishogi/models/o_auth_error.rb +225 -0
  143. data/lib/lishogi/models/ok.rb +214 -0
  144. data/lib/lishogi/models/perf.rb +250 -0
  145. data/lib/lishogi/models/perf_type.rb +49 -0
  146. data/lib/lishogi/models/perfs.rb +268 -0
  147. data/lib/lishogi/models/play_time.rb +223 -0
  148. data/lib/lishogi/models/profile.rb +259 -0
  149. data/lib/lishogi/models/puzzle_round_json.rb +241 -0
  150. data/lib/lishogi/models/speed.rb +44 -0
  151. data/lib/lishogi/models/team.rb +280 -0
  152. data/lib/lishogi/models/team_all200_response.rb +272 -0
  153. data/lib/lishogi/models/team_request.rb +241 -0
  154. data/lib/lishogi/models/team_request_with_user.rb +223 -0
  155. data/lib/lishogi/models/title.rb +64 -0
  156. data/lib/lishogi/models/user.rb +322 -0
  157. data/lib/lishogi/models/user_extended.rb +410 -0
  158. data/lib/lishogi/models/user_preferences.rb +515 -0
  159. data/lib/lishogi/models/variant.rb +256 -0
  160. data/lib/lishogi/models/variant_key.rb +44 -0
  161. data/lib/lishogi/version.rb +15 -0
  162. data/lib/lishogi.rb +112 -0
  163. data/lishogi-api.patched.yaml +5806 -0
  164. data/lishogi-api.yaml +5811 -0
  165. data/lishogi.gemspec +41 -0
  166. data/manifest.scm +1 -0
  167. data/manifest.scm~ +1 -0
  168. data/patch +5 -0
  169. data/patch~ +1 -0
  170. data/pkg/lishogi-0.1.0.gem +0 -0
  171. data/smoke +5 -0
  172. data/smoke~ +2 -0
  173. data/spec/api/account_api_spec.rb +91 -0
  174. data/spec/api/analysis_api_spec.rb +49 -0
  175. data/spec/api/arena_tournaments_api_spec.rb +160 -0
  176. data/spec/api/board_api_spec.rb +154 -0
  177. data/spec/api/bot_api_spec.rb +144 -0
  178. data/spec/api/challenges_api_spec.rb +123 -0
  179. data/spec/api/games_api_spec.rb +135 -0
  180. data/spec/api/messaging_api_spec.rb +48 -0
  181. data/spec/api/puzzles_api_spec.rb +70 -0
  182. data/spec/api/simuls_api_spec.rb +46 -0
  183. data/spec/api/studies_api_spec.rb +81 -0
  184. data/spec/api/teams_api_spec.rb +160 -0
  185. data/spec/api/tv_api_spec.rb +74 -0
  186. data/spec/api/users_api_spec.rb +157 -0
  187. data/spec/models/account200_response_spec.rb +42 -0
  188. data/spec/models/account_email200_response_spec.rb +36 -0
  189. data/spec/models/account_kid200_response_spec.rb +36 -0
  190. data/spec/models/api_stream_event200_response_spec.rb +32 -0
  191. data/spec/models/api_users_status200_response_inner_spec.rb +72 -0
  192. data/spec/models/arena_tournaments_spec.rb +48 -0
  193. data/spec/models/board_game_stream200_response_spec.rb +32 -0
  194. data/spec/models/board_game_takeback_accept_parameter_spec.rb +21 -0
  195. data/spec/models/challenge_declined_event_spec.rb +46 -0
  196. data/spec/models/challenge_event_spec.rb +46 -0
  197. data/spec/models/challenge_json_perf_spec.rb +42 -0
  198. data/spec/models/challenge_json_spec.rb +120 -0
  199. data/spec/models/challenge_json_time_control_one_of1_spec.rb +42 -0
  200. data/spec/models/challenge_json_time_control_one_of2_spec.rb +36 -0
  201. data/spec/models/challenge_json_time_control_one_of_spec.rb +66 -0
  202. data/spec/models/challenge_json_time_control_spec.rb +32 -0
  203. data/spec/models/challenge_user_spec.rb +72 -0
  204. data/spec/models/chat_line_event_spec.rb +62 -0
  205. data/spec/models/clock_spec.rb +54 -0
  206. data/spec/models/count_spec.rb +96 -0
  207. data/spec/models/error_spec.rb +36 -0
  208. data/spec/models/game_event_info_compat_spec.rb +42 -0
  209. data/spec/models/game_event_info_spec.rb +52 -0
  210. data/spec/models/game_event_player_spec.rb +66 -0
  211. data/spec/models/game_finish_event_spec.rb +46 -0
  212. data/spec/models/game_full_event_perf_spec.rb +36 -0
  213. data/spec/models/game_full_event_spec.rb +112 -0
  214. data/spec/models/game_json_analysis_inner_judgment_spec.rb +46 -0
  215. data/spec/models/game_json_analysis_inner_spec.rb +54 -0
  216. data/spec/models/game_json_clock_spec.rb +60 -0
  217. data/spec/models/game_json_players_spec.rb +42 -0
  218. data/spec/models/game_json_spec.rb +136 -0
  219. data/spec/models/game_start_event_spec.rb +46 -0
  220. data/spec/models/game_state_event_spec.rb +100 -0
  221. data/spec/models/game_status_spec.rb +30 -0
  222. data/spec/models/game_user_analysis_spec.rb +54 -0
  223. data/spec/models/game_user_spec.rb +78 -0
  224. data/spec/models/light_user_spec.rb +54 -0
  225. data/spec/models/light_user_title_spec.rb +32 -0
  226. data/spec/models/move_spec.rb +66 -0
  227. data/spec/models/not_found_spec.rb +36 -0
  228. data/spec/models/o_auth_error_spec.rb +42 -0
  229. data/spec/models/ok_spec.rb +36 -0
  230. data/spec/models/perf_spec.rb +60 -0
  231. data/spec/models/perf_type_spec.rb +30 -0
  232. data/spec/models/perfs_spec.rb +72 -0
  233. data/spec/models/play_time_spec.rb +42 -0
  234. data/spec/models/profile_spec.rb +66 -0
  235. data/spec/models/puzzle_round_json_spec.rb +54 -0
  236. data/spec/models/speed_spec.rb +30 -0
  237. data/spec/models/team_all200_response_spec.rb +72 -0
  238. data/spec/models/team_request_spec.rb +54 -0
  239. data/spec/models/team_request_with_user_spec.rb +42 -0
  240. data/spec/models/team_spec.rb +78 -0
  241. data/spec/models/title_spec.rb +30 -0
  242. data/spec/models/user_extended_spec.rb +162 -0
  243. data/spec/models/user_preferences_spec.rb +210 -0
  244. data/spec/models/user_spec.rb +108 -0
  245. data/spec/models/variant_key_spec.rb +30 -0
  246. data/spec/models/variant_spec.rb +48 -0
  247. data/spec/spec_helper.rb +111 -0
  248. metadata +446 -0
@@ -0,0 +1,210 @@
1
+ =begin
2
+ #Lishogi.org API reference
3
+
4
+ ## Introduction Welcome to the reference for the Lishogi API! Lishogi is free/libre, open-source shogi server forked from lichess powered by volunteers and donations. Currently this page is a work in progress, certain information here might be wrong and incorrect! Expect it to be done during 2022. - Get help in the [Lishogi Discord channel](https://discord.gg/YFtpMGg3rR) - [Contribute to this documentation on Github](https://github.com/WandererXII/lishogi/blob/master/public/doc/lishogi-api.yaml) - Check out [Lishogi widgets to embed in your website](https://lishogi.org/developers) ## Endpoint All requests go to `https://lishogi.org` (unless otherwise specified). ## Rate limiting All requests are rate limited using various strategies, to ensure the API remains responsive for everyone. Only make one request at a time. If you receive an HTTP response with a [429 status](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#429), please wait a full minute before resuming API usage. ## Streaming with ND-JSON Some API endpoints stream their responses as [Newline Delimited JSON a.k.a. **nd-json**](http://ndjson.org/), with one JSON object per line. Here's a [JavaScript utility function (for lichess)](https://gist.github.com/ornicar/a097406810939cf7be1df8ea30e94f3e) to help reading NDJSON streamed responses.
5
+
6
+ The version of the OpenAPI document: 2.0.0
7
+ Contact: contact@lishogi.org
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.10.0
10
+
11
+ =end
12
+
13
+ require 'cgi'
14
+
15
+ module Lishogi
16
+ class PuzzlesApi
17
+ attr_accessor :api_client
18
+
19
+ def initialize(api_client = ApiClient.default)
20
+ @api_client = api_client
21
+ end
22
+ # Get your puzzle activity
23
+ # Download your puzzle activity in [ndjson](#section/Introduction/Streaming-with-ND-JSON) format. Puzzle activity is sorted by reverse chronological order (most recent first) We recommend streaming the response, for it can be very long.
24
+ # @param [Hash] opts the optional parameters
25
+ # @option opts [Integer] :max How many entries to download. Leave empty to download all activity.
26
+ # @return [PuzzleRoundJson]
27
+ def api_puzzle_activity(opts = {})
28
+ data, _status_code, _headers = api_puzzle_activity_with_http_info(opts)
29
+ data
30
+ end
31
+
32
+ # Get your puzzle activity
33
+ # Download your puzzle activity in [ndjson](#section/Introduction/Streaming-with-ND-JSON) format. Puzzle activity is sorted by reverse chronological order (most recent first) We recommend streaming the response, for it can be very long.
34
+ # @param [Hash] opts the optional parameters
35
+ # @option opts [Integer] :max How many entries to download. Leave empty to download all activity.
36
+ # @return [Array<(PuzzleRoundJson, Integer, Hash)>] PuzzleRoundJson data, response status code and response headers
37
+ def api_puzzle_activity_with_http_info(opts = {})
38
+ if @api_client.config.debugging
39
+ @api_client.config.logger.debug 'Calling API: PuzzlesApi.api_puzzle_activity ...'
40
+ end
41
+ if @api_client.config.client_side_validation && !opts[:'max'].nil? && opts[:'max'] < 1
42
+ fail ArgumentError, 'invalid value for "opts[:"max"]" when calling PuzzlesApi.api_puzzle_activity, must be greater than or equal to 1.'
43
+ end
44
+
45
+ # resource path
46
+ local_var_path = '/api/puzzle/activity'
47
+
48
+ # query parameters
49
+ query_params = opts[:query_params] || {}
50
+ query_params[:'max'] = opts[:'max'] if !opts[:'max'].nil?
51
+
52
+ # header parameters
53
+ header_params = opts[:header_params] || {}
54
+ # HTTP header 'Accept' (if needed)
55
+ header_params['Accept'] = @api_client.select_header_accept(['application/x-ndjson']) unless header_params['Accept']
56
+
57
+ # form parameters
58
+ form_params = opts[:form_params] || {}
59
+
60
+ # http body (model)
61
+ post_body = opts[:debug_body]
62
+
63
+ # return_type
64
+ return_type = opts[:debug_return_type] || 'PuzzleRoundJson'
65
+
66
+ # auth_names
67
+ auth_names = opts[:debug_auth_names] || ['OAuth2']
68
+
69
+ new_options = opts.merge(
70
+ :operation => :"PuzzlesApi.api_puzzle_activity",
71
+ :header_params => header_params,
72
+ :query_params => query_params,
73
+ :form_params => form_params,
74
+ :body => post_body,
75
+ :auth_names => auth_names,
76
+ :return_type => return_type
77
+ )
78
+
79
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
80
+ if @api_client.config.debugging
81
+ @api_client.config.logger.debug "API called: PuzzlesApi#api_puzzle_activity\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
82
+ end
83
+ return data, status_code, headers
84
+ end
85
+
86
+ # Get the daily puzzle
87
+ # Get the daily Lishogi puzzle in JSON format.
88
+ # @param [Hash] opts the optional parameters
89
+ # @return [Object]
90
+ def api_puzzle_daily(opts = {})
91
+ data, _status_code, _headers = api_puzzle_daily_with_http_info(opts)
92
+ data
93
+ end
94
+
95
+ # Get the daily puzzle
96
+ # Get the daily Lishogi puzzle in JSON format.
97
+ # @param [Hash] opts the optional parameters
98
+ # @return [Array<(Object, Integer, Hash)>] Object data, response status code and response headers
99
+ def api_puzzle_daily_with_http_info(opts = {})
100
+ if @api_client.config.debugging
101
+ @api_client.config.logger.debug 'Calling API: PuzzlesApi.api_puzzle_daily ...'
102
+ end
103
+ # resource path
104
+ local_var_path = '/api/puzzle/daily'
105
+
106
+ # query parameters
107
+ query_params = opts[:query_params] || {}
108
+
109
+ # header parameters
110
+ header_params = opts[:header_params] || {}
111
+ # HTTP header 'Accept' (if needed)
112
+ header_params['Accept'] = @api_client.select_header_accept(['application/x-ndjson']) unless header_params['Accept']
113
+
114
+ # form parameters
115
+ form_params = opts[:form_params] || {}
116
+
117
+ # http body (model)
118
+ post_body = opts[:debug_body]
119
+
120
+ # return_type
121
+ return_type = opts[:debug_return_type] || 'Object'
122
+
123
+ # auth_names
124
+ auth_names = opts[:debug_auth_names] || []
125
+
126
+ new_options = opts.merge(
127
+ :operation => :"PuzzlesApi.api_puzzle_daily",
128
+ :header_params => header_params,
129
+ :query_params => query_params,
130
+ :form_params => form_params,
131
+ :body => post_body,
132
+ :auth_names => auth_names,
133
+ :return_type => return_type
134
+ )
135
+
136
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
137
+ if @api_client.config.debugging
138
+ @api_client.config.logger.debug "API called: PuzzlesApi#api_puzzle_daily\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
139
+ end
140
+ return data, status_code, headers
141
+ end
142
+
143
+ # Get your puzzle dashboard
144
+ # Download your [puzzle dashboard](https://lishogi.org/training/dashboard/30/dashboard) as JSON. Also includes all puzzle themes played, with aggregated results. Allows re-creating the [improvement/strengths](https://lishogi.org/training/dashboard/30/improvementAreas) interfaces.
145
+ # @param days [Integer] How many days to look back when aggregating puzzle results. 30 is sensible.
146
+ # @param [Hash] opts the optional parameters
147
+ # @return [Object]
148
+ def api_puzzle_dashboard(days, opts = {})
149
+ data, _status_code, _headers = api_puzzle_dashboard_with_http_info(days, opts)
150
+ data
151
+ end
152
+
153
+ # Get your puzzle dashboard
154
+ # Download your [puzzle dashboard](https://lishogi.org/training/dashboard/30/dashboard) as JSON. Also includes all puzzle themes played, with aggregated results. Allows re-creating the [improvement/strengths](https://lishogi.org/training/dashboard/30/improvementAreas) interfaces.
155
+ # @param days [Integer] How many days to look back when aggregating puzzle results. 30 is sensible.
156
+ # @param [Hash] opts the optional parameters
157
+ # @return [Array<(Object, Integer, Hash)>] Object data, response status code and response headers
158
+ def api_puzzle_dashboard_with_http_info(days, opts = {})
159
+ if @api_client.config.debugging
160
+ @api_client.config.logger.debug 'Calling API: PuzzlesApi.api_puzzle_dashboard ...'
161
+ end
162
+ # verify the required parameter 'days' is set
163
+ if @api_client.config.client_side_validation && days.nil?
164
+ fail ArgumentError, "Missing the required parameter 'days' when calling PuzzlesApi.api_puzzle_dashboard"
165
+ end
166
+ if @api_client.config.client_side_validation && days < 1
167
+ fail ArgumentError, 'invalid value for "days" when calling PuzzlesApi.api_puzzle_dashboard, must be greater than or equal to 1.'
168
+ end
169
+
170
+ # resource path
171
+ local_var_path = '/api/puzzle/dashboard/{days}'.sub('{' + 'days' + '}', CGI.escape(days.to_s))
172
+
173
+ # query parameters
174
+ query_params = opts[:query_params] || {}
175
+
176
+ # header parameters
177
+ header_params = opts[:header_params] || {}
178
+ # HTTP header 'Accept' (if needed)
179
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
180
+
181
+ # form parameters
182
+ form_params = opts[:form_params] || {}
183
+
184
+ # http body (model)
185
+ post_body = opts[:debug_body]
186
+
187
+ # return_type
188
+ return_type = opts[:debug_return_type] || 'Object'
189
+
190
+ # auth_names
191
+ auth_names = opts[:debug_auth_names] || ['OAuth2']
192
+
193
+ new_options = opts.merge(
194
+ :operation => :"PuzzlesApi.api_puzzle_dashboard",
195
+ :header_params => header_params,
196
+ :query_params => query_params,
197
+ :form_params => form_params,
198
+ :body => post_body,
199
+ :auth_names => auth_names,
200
+ :return_type => return_type
201
+ )
202
+
203
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
204
+ if @api_client.config.debugging
205
+ @api_client.config.logger.debug "API called: PuzzlesApi#api_puzzle_dashboard\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
206
+ end
207
+ return data, status_code, headers
208
+ end
209
+ end
210
+ end
@@ -0,0 +1,79 @@
1
+ =begin
2
+ #Lishogi.org API reference
3
+
4
+ ## Introduction Welcome to the reference for the Lishogi API! Lishogi is free/libre, open-source shogi server forked from lichess powered by volunteers and donations. Currently this page is a work in progress, certain information here might be wrong and incorrect! Expect it to be done during 2022. - Get help in the [Lishogi Discord channel](https://discord.gg/YFtpMGg3rR) - [Contribute to this documentation on Github](https://github.com/WandererXII/lishogi/blob/master/public/doc/lishogi-api.yaml) - Check out [Lishogi widgets to embed in your website](https://lishogi.org/developers) ## Endpoint All requests go to `https://lishogi.org` (unless otherwise specified). ## Rate limiting All requests are rate limited using various strategies, to ensure the API remains responsive for everyone. Only make one request at a time. If you receive an HTTP response with a [429 status](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#429), please wait a full minute before resuming API usage. ## Streaming with ND-JSON Some API endpoints stream their responses as [Newline Delimited JSON a.k.a. **nd-json**](http://ndjson.org/), with one JSON object per line. Here's a [JavaScript utility function (for lichess)](https://gist.github.com/ornicar/a097406810939cf7be1df8ea30e94f3e) to help reading NDJSON streamed responses.
5
+
6
+ The version of the OpenAPI document: 2.0.0
7
+ Contact: contact@lishogi.org
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.10.0
10
+
11
+ =end
12
+
13
+ require 'cgi'
14
+
15
+ module Lishogi
16
+ class SimulsApi
17
+ attr_accessor :api_client
18
+
19
+ def initialize(api_client = ApiClient.default)
20
+ @api_client = api_client
21
+ end
22
+ # Get current simuls
23
+ # Get recently finished, ongoing, and upcoming simuls.
24
+ # @param [Hash] opts the optional parameters
25
+ # @return [Array<Object>]
26
+ def api_simul(opts = {})
27
+ data, _status_code, _headers = api_simul_with_http_info(opts)
28
+ data
29
+ end
30
+
31
+ # Get current simuls
32
+ # Get recently finished, ongoing, and upcoming simuls.
33
+ # @param [Hash] opts the optional parameters
34
+ # @return [Array<(Array<Object>, Integer, Hash)>] Array<Object> data, response status code and response headers
35
+ def api_simul_with_http_info(opts = {})
36
+ if @api_client.config.debugging
37
+ @api_client.config.logger.debug 'Calling API: SimulsApi.api_simul ...'
38
+ end
39
+ # resource path
40
+ local_var_path = '/api/simul'
41
+
42
+ # query parameters
43
+ query_params = opts[:query_params] || {}
44
+
45
+ # header parameters
46
+ header_params = opts[:header_params] || {}
47
+ # HTTP header 'Accept' (if needed)
48
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
49
+
50
+ # form parameters
51
+ form_params = opts[:form_params] || {}
52
+
53
+ # http body (model)
54
+ post_body = opts[:debug_body]
55
+
56
+ # return_type
57
+ return_type = opts[:debug_return_type] || 'Array<Object>'
58
+
59
+ # auth_names
60
+ auth_names = opts[:debug_auth_names] || []
61
+
62
+ new_options = opts.merge(
63
+ :operation => :"SimulsApi.api_simul",
64
+ :header_params => header_params,
65
+ :query_params => query_params,
66
+ :form_params => form_params,
67
+ :body => post_body,
68
+ :auth_names => auth_names,
69
+ :return_type => return_type
70
+ )
71
+
72
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
73
+ if @api_client.config.debugging
74
+ @api_client.config.logger.debug "API called: SimulsApi#api_simul\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
75
+ end
76
+ return data, status_code, headers
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,244 @@
1
+ =begin
2
+ #Lishogi.org API reference
3
+
4
+ ## Introduction Welcome to the reference for the Lishogi API! Lishogi is free/libre, open-source shogi server forked from lichess powered by volunteers and donations. Currently this page is a work in progress, certain information here might be wrong and incorrect! Expect it to be done during 2022. - Get help in the [Lishogi Discord channel](https://discord.gg/YFtpMGg3rR) - [Contribute to this documentation on Github](https://github.com/WandererXII/lishogi/blob/master/public/doc/lishogi-api.yaml) - Check out [Lishogi widgets to embed in your website](https://lishogi.org/developers) ## Endpoint All requests go to `https://lishogi.org` (unless otherwise specified). ## Rate limiting All requests are rate limited using various strategies, to ensure the API remains responsive for everyone. Only make one request at a time. If you receive an HTTP response with a [429 status](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#429), please wait a full minute before resuming API usage. ## Streaming with ND-JSON Some API endpoints stream their responses as [Newline Delimited JSON a.k.a. **nd-json**](http://ndjson.org/), with one JSON object per line. Here's a [JavaScript utility function (for lichess)](https://gist.github.com/ornicar/a097406810939cf7be1df8ea30e94f3e) to help reading NDJSON streamed responses.
5
+
6
+ The version of the OpenAPI document: 2.0.0
7
+ Contact: contact@lishogi.org
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.10.0
10
+
11
+ =end
12
+
13
+ require 'cgi'
14
+
15
+ module Lishogi
16
+ class StudiesApi
17
+ attr_accessor :api_client
18
+
19
+ def initialize(api_client = ApiClient.default)
20
+ @api_client = api_client
21
+ end
22
+ # Export all chapters
23
+ # Download all chapters of a study in KIF format.
24
+ # @param study_id [String] The study ID (8 characters).
25
+ # @param [Hash] opts the optional parameters
26
+ # @option opts [Boolean] :clocks Include clock comments in the KIF moves, when available. Example: &#x60;22 同 玉(51) (00:02/00:00:13)&#x60; (default to true)
27
+ # @option opts [Boolean] :comments Include analysis and annotator comments in the KIF moves, when available. Example: &#x60;1 3六歩(37) * Good move * 次に▲35歩で角道を遮る! * [%csl P3d,P2b][%cal P3f3e]&#x60; (default to true)
28
+ # @option opts [Boolean] :variations Include non-mainline moves, when available. Example: &#x60;7 4八銀(39) * [%cal P4h3g,P3g4f,P3f3e]&#x60; (default to true)
29
+ # @return [Object]
30
+ def study_all_chapters_kif(study_id, opts = {})
31
+ data, _status_code, _headers = study_all_chapters_kif_with_http_info(study_id, opts)
32
+ data
33
+ end
34
+
35
+ # Export all chapters
36
+ # Download all chapters of a study in KIF format.
37
+ # @param study_id [String] The study ID (8 characters).
38
+ # @param [Hash] opts the optional parameters
39
+ # @option opts [Boolean] :clocks Include clock comments in the KIF moves, when available. Example: &#x60;22 同 玉(51) (00:02/00:00:13)&#x60; (default to true)
40
+ # @option opts [Boolean] :comments Include analysis and annotator comments in the KIF moves, when available. Example: &#x60;1 3六歩(37) * Good move * 次に▲35歩で角道を遮る! * [%csl P3d,P2b][%cal P3f3e]&#x60; (default to true)
41
+ # @option opts [Boolean] :variations Include non-mainline moves, when available. Example: &#x60;7 4八銀(39) * [%cal P4h3g,P3g4f,P3f3e]&#x60; (default to true)
42
+ # @return [Array<(Object, Integer, Hash)>] Object data, response status code and response headers
43
+ def study_all_chapters_kif_with_http_info(study_id, opts = {})
44
+ if @api_client.config.debugging
45
+ @api_client.config.logger.debug 'Calling API: StudiesApi.study_all_chapters_kif ...'
46
+ end
47
+ # verify the required parameter 'study_id' is set
48
+ if @api_client.config.client_side_validation && study_id.nil?
49
+ fail ArgumentError, "Missing the required parameter 'study_id' when calling StudiesApi.study_all_chapters_kif"
50
+ end
51
+ # resource path
52
+ local_var_path = '/api/study/{studyId}.kif'.sub('{' + 'studyId' + '}', CGI.escape(study_id.to_s))
53
+
54
+ # query parameters
55
+ query_params = opts[:query_params] || {}
56
+ query_params[:'clocks'] = opts[:'clocks'] if !opts[:'clocks'].nil?
57
+ query_params[:'comments'] = opts[:'comments'] if !opts[:'comments'].nil?
58
+ query_params[:'variations'] = opts[:'variations'] if !opts[:'variations'].nil?
59
+
60
+ # header parameters
61
+ header_params = opts[:header_params] || {}
62
+ # HTTP header 'Accept' (if needed)
63
+ header_params['Accept'] = @api_client.select_header_accept(['text/plain']) unless header_params['Accept']
64
+
65
+ # form parameters
66
+ form_params = opts[:form_params] || {}
67
+
68
+ # http body (model)
69
+ post_body = opts[:debug_body]
70
+
71
+ # return_type
72
+ return_type = opts[:debug_return_type] || 'Object'
73
+
74
+ # auth_names
75
+ auth_names = opts[:debug_auth_names] || []
76
+
77
+ new_options = opts.merge(
78
+ :operation => :"StudiesApi.study_all_chapters_kif",
79
+ :header_params => header_params,
80
+ :query_params => query_params,
81
+ :form_params => form_params,
82
+ :body => post_body,
83
+ :auth_names => auth_names,
84
+ :return_type => return_type
85
+ )
86
+
87
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
88
+ if @api_client.config.debugging
89
+ @api_client.config.logger.debug "API called: StudiesApi#study_all_chapters_kif\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
90
+ end
91
+ return data, status_code, headers
92
+ end
93
+
94
+ # Export one study chapter
95
+ # Download one study chapter in KIF format.
96
+ # @param study_id [String] The study ID (8 characters).
97
+ # @param chapter_id [String] The chapter ID (8 characters).
98
+ # @param [Hash] opts the optional parameters
99
+ # @option opts [Boolean] :clocks Include clock comments in the KIF moves, when available. Example: &#x60;22 同 玉(51) (00:02/00:00:13)&#x60; (default to true)
100
+ # @option opts [Boolean] :comments Include analysis and annotator comments in the KIF moves, when available. Example: &#x60;1 3六歩(37) * Good move * 次に▲35歩で角道を遮る! * [%csl P3d,P2b][%cal P3f3e]&#x60; (default to true)
101
+ # @option opts [Boolean] :variations Include non-mainline moves, when available. Example: &#x60;7 4八銀(39) * [%cal P4h3g,P3g4f,P3f3e]&#x60; (default to true)
102
+ # @return [Object]
103
+ def study_chapter_kif(study_id, chapter_id, opts = {})
104
+ data, _status_code, _headers = study_chapter_kif_with_http_info(study_id, chapter_id, opts)
105
+ data
106
+ end
107
+
108
+ # Export one study chapter
109
+ # Download one study chapter in KIF format.
110
+ # @param study_id [String] The study ID (8 characters).
111
+ # @param chapter_id [String] The chapter ID (8 characters).
112
+ # @param [Hash] opts the optional parameters
113
+ # @option opts [Boolean] :clocks Include clock comments in the KIF moves, when available. Example: &#x60;22 同 玉(51) (00:02/00:00:13)&#x60; (default to true)
114
+ # @option opts [Boolean] :comments Include analysis and annotator comments in the KIF moves, when available. Example: &#x60;1 3六歩(37) * Good move * 次に▲35歩で角道を遮る! * [%csl P3d,P2b][%cal P3f3e]&#x60; (default to true)
115
+ # @option opts [Boolean] :variations Include non-mainline moves, when available. Example: &#x60;7 4八銀(39) * [%cal P4h3g,P3g4f,P3f3e]&#x60; (default to true)
116
+ # @return [Array<(Object, Integer, Hash)>] Object data, response status code and response headers
117
+ def study_chapter_kif_with_http_info(study_id, chapter_id, opts = {})
118
+ if @api_client.config.debugging
119
+ @api_client.config.logger.debug 'Calling API: StudiesApi.study_chapter_kif ...'
120
+ end
121
+ # verify the required parameter 'study_id' is set
122
+ if @api_client.config.client_side_validation && study_id.nil?
123
+ fail ArgumentError, "Missing the required parameter 'study_id' when calling StudiesApi.study_chapter_kif"
124
+ end
125
+ # verify the required parameter 'chapter_id' is set
126
+ if @api_client.config.client_side_validation && chapter_id.nil?
127
+ fail ArgumentError, "Missing the required parameter 'chapter_id' when calling StudiesApi.study_chapter_kif"
128
+ end
129
+ # resource path
130
+ local_var_path = '/study/{studyId}/{chapterId}.kif'.sub('{' + 'studyId' + '}', CGI.escape(study_id.to_s)).sub('{' + 'chapterId' + '}', CGI.escape(chapter_id.to_s))
131
+
132
+ # query parameters
133
+ query_params = opts[:query_params] || {}
134
+ query_params[:'clocks'] = opts[:'clocks'] if !opts[:'clocks'].nil?
135
+ query_params[:'comments'] = opts[:'comments'] if !opts[:'comments'].nil?
136
+ query_params[:'variations'] = opts[:'variations'] if !opts[:'variations'].nil?
137
+
138
+ # header parameters
139
+ header_params = opts[:header_params] || {}
140
+ # HTTP header 'Accept' (if needed)
141
+ header_params['Accept'] = @api_client.select_header_accept(['text/plain']) unless header_params['Accept']
142
+
143
+ # form parameters
144
+ form_params = opts[:form_params] || {}
145
+
146
+ # http body (model)
147
+ post_body = opts[:debug_body]
148
+
149
+ # return_type
150
+ return_type = opts[:debug_return_type] || 'Object'
151
+
152
+ # auth_names
153
+ auth_names = opts[:debug_auth_names] || []
154
+
155
+ new_options = opts.merge(
156
+ :operation => :"StudiesApi.study_chapter_kif",
157
+ :header_params => header_params,
158
+ :query_params => query_params,
159
+ :form_params => form_params,
160
+ :body => post_body,
161
+ :auth_names => auth_names,
162
+ :return_type => return_type
163
+ )
164
+
165
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
166
+ if @api_client.config.debugging
167
+ @api_client.config.logger.debug "API called: StudiesApi#study_chapter_kif\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
168
+ end
169
+ return data, status_code, headers
170
+ end
171
+
172
+ # Export all studies of a user
173
+ # Download all chapters of all studies of a user in KIF format. If authenticated, then all public, unlisted, and private studies are included. If not, only public, listed studies are included.
174
+ # @param username [String] The user whose studies we export
175
+ # @param [Hash] opts the optional parameters
176
+ # @option opts [Boolean] :clocks Include clock comments in the KIF moves, when available. Example: &#x60;22 同 玉(51) (00:02/00:00:13)&#x60; (default to true)
177
+ # @option opts [Boolean] :comments Include analysis and annotator comments in the KIF moves, when available. Example: &#x60;1 3六歩(37) * Good move * 次に▲35歩で角道を遮る * [%csl P3d,P2b][%cal P3f3e]&#x60; (default to true)
178
+ # @option opts [Boolean] :variations Include non-mainline moves, when available. Example: &#x60;7 4八銀(39) * [%cal P4h3g,P3g4f,P3f3e]&#x60; (default to true)
179
+ # @return [Object]
180
+ def study_export_all_kif(username, opts = {})
181
+ data, _status_code, _headers = study_export_all_kif_with_http_info(username, opts)
182
+ data
183
+ end
184
+
185
+ # Export all studies of a user
186
+ # Download all chapters of all studies of a user in KIF format. If authenticated, then all public, unlisted, and private studies are included. If not, only public, listed studies are included.
187
+ # @param username [String] The user whose studies we export
188
+ # @param [Hash] opts the optional parameters
189
+ # @option opts [Boolean] :clocks Include clock comments in the KIF moves, when available. Example: &#x60;22 同 玉(51) (00:02/00:00:13)&#x60; (default to true)
190
+ # @option opts [Boolean] :comments Include analysis and annotator comments in the KIF moves, when available. Example: &#x60;1 3六歩(37) * Good move * 次に▲35歩で角道を遮る * [%csl P3d,P2b][%cal P3f3e]&#x60; (default to true)
191
+ # @option opts [Boolean] :variations Include non-mainline moves, when available. Example: &#x60;7 4八銀(39) * [%cal P4h3g,P3g4f,P3f3e]&#x60; (default to true)
192
+ # @return [Array<(Object, Integer, Hash)>] Object data, response status code and response headers
193
+ def study_export_all_kif_with_http_info(username, opts = {})
194
+ if @api_client.config.debugging
195
+ @api_client.config.logger.debug 'Calling API: StudiesApi.study_export_all_kif ...'
196
+ end
197
+ # verify the required parameter 'username' is set
198
+ if @api_client.config.client_side_validation && username.nil?
199
+ fail ArgumentError, "Missing the required parameter 'username' when calling StudiesApi.study_export_all_kif"
200
+ end
201
+ # resource path
202
+ local_var_path = '/study/by/{username}/export.kif'.sub('{' + 'username' + '}', CGI.escape(username.to_s))
203
+
204
+ # query parameters
205
+ query_params = opts[:query_params] || {}
206
+ query_params[:'clocks'] = opts[:'clocks'] if !opts[:'clocks'].nil?
207
+ query_params[:'comments'] = opts[:'comments'] if !opts[:'comments'].nil?
208
+ query_params[:'variations'] = opts[:'variations'] if !opts[:'variations'].nil?
209
+
210
+ # header parameters
211
+ header_params = opts[:header_params] || {}
212
+ # HTTP header 'Accept' (if needed)
213
+ header_params['Accept'] = @api_client.select_header_accept(['text/plain']) unless header_params['Accept']
214
+
215
+ # form parameters
216
+ form_params = opts[:form_params] || {}
217
+
218
+ # http body (model)
219
+ post_body = opts[:debug_body]
220
+
221
+ # return_type
222
+ return_type = opts[:debug_return_type] || 'Object'
223
+
224
+ # auth_names
225
+ auth_names = opts[:debug_auth_names] || ['OAuth2']
226
+
227
+ new_options = opts.merge(
228
+ :operation => :"StudiesApi.study_export_all_kif",
229
+ :header_params => header_params,
230
+ :query_params => query_params,
231
+ :form_params => form_params,
232
+ :body => post_body,
233
+ :auth_names => auth_names,
234
+ :return_type => return_type
235
+ )
236
+
237
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
238
+ if @api_client.config.debugging
239
+ @api_client.config.logger.debug "API called: StudiesApi#study_export_all_kif\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
240
+ end
241
+ return data, status_code, headers
242
+ end
243
+ end
244
+ end