@@ -199,6 +199,64 @@ impl LeetCode {
199
199
. await
200
200
}
201
201
202
+ /// Register for a contest
203
+ #[ named]
204
+ pub async fn register_contest ( & self , contest : & str ) -> Result < Response , Error > {
205
+ let url = self . conf . sys . urls . get ( "contest_register" )
206
+ . ok_or ( Error :: NoneError ) ?
207
+ . replace ( "$contest_slug" , contest) ;
208
+ let mut req = make_req ! ( self , url) ;
209
+ req. mode = Mode :: Post ( HashMap :: new ( ) ) ;
210
+ req
211
+ . send ( & self . client )
212
+ . await
213
+ }
214
+
215
+ /// Get contest info
216
+ #[ named]
217
+ pub async fn get_contest_info ( & self , contest : & str ) -> Result < Response , Error > {
218
+ trace ! ( "Requesting {} detail..." , contest) ;
219
+ let url = & self . conf . sys . urls
220
+ . get ( "contest_info" )
221
+ . ok_or ( Error :: NoneError ) ?
222
+ . replace ( "$contest_slug" , contest) ;
223
+ make_req ! ( self , url. to_string( ) )
224
+ . send ( & self . client )
225
+ . await
226
+ }
227
+
228
+ /// Get contest problem detail
229
+ pub async fn get_contest_question_detail ( & self , problem : & str ) -> Result < Response , Error > {
230
+ self . get_graphql ( "query a($s: String!) {
231
+ question(titleSlug: $s) {
232
+ title
233
+ titleSlug
234
+ questionId
235
+ questionFrontendId
236
+ categoryTitle
237
+ content
238
+ codeDefinition
239
+ status
240
+ metaData
241
+ codeSnippets {
242
+ langSlug
243
+ lang
244
+ code
245
+ }
246
+ exampleTestcases
247
+ sampleTestCase
248
+ enableRunCode
249
+ stats
250
+ translatedContent
251
+ isFavor
252
+ difficulty
253
+ }
254
+ }" . to_owned ( ) , Some (
255
+ r#"{"s": "$s"}"# . replace ( "$s" , problem)
256
+ ) ) . await
257
+ }
258
+
259
+
202
260
/// Send code to judge
203
261
#[ named]
204
262
pub async fn run_code ( & self , j : Json , url : String , refer : String ) -> Result < Response , Error > {
0 commit comments