Difference between revisions of "API:priv:get-submit"

From EjudgeWiki
(...)
(...)
Line 6: Line 6:
 
помощью API key или EJSID/session_id).
 
помощью API key или EJSID/session_id).
  
Method: GET
+
Method: <code>GET</code>
  
 
Параметры:
 
Параметры:
Line 12: Line 12:
 
* submit_id (int64) - ID посылки
 
* submit_id (int64) - ID посылки
  
Response content type: application/json
+
Response content type: <tt>application/json</tt>
  
 
В случае ошибки возвращается JSON:
 
В случае ошибки возвращается JSON:
Line 19: Line 19:
 
   "ok": false,
 
   "ok": false,
 
   "server_time": UNIX-TIMESTAMP,
 
   "server_time": UNIX-TIMESTAMP,
   "action": "submit-run-input",
+
   "action": "get-submit",
 
   "error": {
 
   "error": {
 
     "num": ERROR-CODE,
 
     "num": ERROR-CODE,
Line 56: Line 56:
 
  import requests
 
  import requests
 
  import os
 
  import os
 +
import urllib.parse
 
   
 
   
 
  URL = 'http://HOST/cgi-bin/master'
 
  URL = 'http://HOST/cgi-bin/master'
 
  TOKEN = 'TOKEN'
 
  TOKEN = 'TOKEN'
 
  CONTEST_ID = 1
 
  CONTEST_ID = 1
  RUN_ID = 50
+
  SUBMIT_ID = 50
 
   
 
   
 
  headers = {
 
  headers = {
Line 69: Line 70:
 
         "contest_id" : CONTEST_ID,
 
         "contest_id" : CONTEST_ID,
 
         "json" : 1,
 
         "json" : 1,
         "action" : "run-status-json",
+
         "action" : "get-submit",
         "run_id" : RUN_ID,
+
         "submit_id" : SUBMIT_ID,
 
  }
 
  }
 
+
response = requests.get(URL+"?"+urllib.parse.urlencode(data), headers=headers)
response = requests.post(URL, data=data, headers=headers)
+
print(response.json())
print(response.json())
 

Revision as of 21:11, 7 May 2023

Навигация: Главная страница/Система ejudge/Использование/API/get-submit (привилегированный)

Запрос возвращает информацию о посылке, отправленной с помощью submit-run-input

Уровень доступа: администратор в контесте (аутентификация с помощью API key или EJSID/session_id).

Method: GET

Параметры:

  • action (string) - строка get-submit
  • submit_id (int64) - ID посылки

Response content type: application/json

В случае ошибки возвращается JSON:

{
  "ok": false,
  "server_time": UNIX-TIMESTAMP,
  "action": "get-submit",
  "error": {
    "num": ERROR-CODE,
    "symbol": ERROR-SYMBOL,
    "message": ERROR-MESSAGE
  }
}

В случае успеха возвращается JSON:

{
  "ok": true,
  "result": {
    "submit_id": ID,
    "user_id": USER-ID,
    "prob_id": PROB-ID,
    "lang_id": LANG-ID,
    "status": STATUS,
    "status_str": STATUS-SHORT-STR,
    "compiler_output": COMPILER-MESSAGES,
    "test_checker_output": TEST-CHECKER-MESSAGES,
    "time": CPU-TIME,
    "real_time": REAL-TIME,
    "exit_code": PROCESS-EXIT-CODE,
    "term_signal": TERMINATION-SIGNAL,
    "max_memory_used": VIRT-MEM-USE,
    "max_rss": MEMORY-USE,
    "input": INPUT,
    "output": OUTPUT-TEXT,
    "error": ERROR-TEXT
  }
}

Пример кода на python:

import requests
import os
import urllib.parse

URL = 'http://HOST/cgi-bin/master'
TOKEN = 'TOKEN'
CONTEST_ID = 1
SUBMIT_ID = 50

headers = {
        "Authorization": "Bearer AQAA" + TOKEN
}

data = {
        "contest_id" : CONTEST_ID,
        "json" : 1,
        "action" : "get-submit",
        "submit_id" : SUBMIT_ID,
}
response = requests.get(URL+"?"+urllib.parse.urlencode(data), headers=headers)
print(response.json())