admin_api

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
admin_api [2021/10/15 22:52]
phaust [Административная API (заливка уровней)]
— (текущий)
Строка 1: Строка 1:
-=====Административная API (заливка уровней)===== 
-Для того, чтобы автоматизировать процесс заливки уровней в движок,​ существует административная API для заливки. Использовать её можно двумя способами:​ 
-  - Вставить JSON в нужном формате на страницу https://​qeng.org/​import_tasks.php,​ указав айди игры, и нажав Импортировать. Эта же ссылка доступна из пункта меню "​Импорт заданий"​ на странице редактирования игры. 
-  - Отправить POST запрос на https://​qeng.org/​import_tasks.php?​gid=<​ваш айди игры>&​json=1,​ в котором в body будет корректно сформированный JSON объект. Для аутентификации необходимо удержать cookie с запроса на авторизацию,​ о чём детально написано тут: [[api_embed_engine|Встраивание движка в другие сервисы]] 
  
-====Генерация JSON через Google doc==== 
-В [[https://​docs.google.com/​spreadsheets/​d/​1XUqJl6GxaUVx-sUkQGXPFpsxvr84QsnF2oVi8wfQm2M/​edit?​usp=drivesdk|этом Гугл доке]] можно сгенерировать JSON уровня автоматически,​ чтобы потом просто вставить его на страницу заливки. 
- 
-==== JSON уровня ==== 
-Уровень - это объект,​ который состоит из следующих полей: 
-<code JavaScript [enable_line_numbers="​false"​]>​ 
-  { 
-     "​task":​{ 
-        /* Последовательный номер уровня,​ не ID*/ 
-        "​number":​ 3, 
-        "​name":"​Название после прохождения",​ 
-        "​working_name":"​Название задания",​ 
-        "​task":"​Текст задания",​ 
-        "​script":"/​*\"​Скрипт задания\"​*/",​ 
-        "​answer":"​Формат ответа",​ 
-        "​max_time":​3600,​ 
-        "​code_bonus_time":​30,​ 
-        "​codes":​0 
-     }, 
-     "​codes":​[ 
-        { 
-           "​name":"​Первый код",​ 
-           "​code":​["​Код1","​Кодик1"​] 
-        }, 
-        { 
-           "​code":"​Код2,​к2,​Кодик2"​ 
-        }, 
-        { 
-           "​code":"​Код3"​ 
-        } 
-     ], 
-     "​bonuses":​[ 
-        { 
-           "​code":"​Бонус1,​б1",​ 
-           "​delay":​15,​ 
-           "​duration":​60,​ 
-           "​time":​10,​ 
-           "​description":"​Описание бонуса",​ 
-           "​hint":"​Текст после решения бонуса"​ 
-        }, 
-        { 
-           "​code":"​Бонус2,​б2",​ 
-           "​time":​20 
-        }, 
-        { 
-           "​code":"​Бонус3,​б3",​ 
-           "​time":​20 
-        } 
-     ], 
-     "​hints":​[ 
-        { 
-           "​info":"​Описание подсказки",​ 
-           "​hint":"​Текст подсказки",​ 
-           "​delay":​15,​ 
-           "​penalty":​1 
-        } 
-     ] 
-  } 
-</​code>​ 
- 
-=====Структура JSON===== 
-В зависимости от того, какое действие необходимо произвести (добавить новый уровень / отредактировать существующий),​ некоторые поля JSON объекта будут отличаться. 
- 
-====Добавление новых уровней ==== 
-Если необходимо добавить уровни в игру, то в поле JSON нужно вставить список из одного или нескольких уровней,​ разделённых запятыми. При этом уровни должны НЕ иметь поле number внутри task. 
- 
-Например, ​ 
-<code JavaScript [enable_line_numbers="​false"​]>​ 
-[ 
-  { 
-     "​task":​{ 
-        "​working_name":"​Урв1",​ 
-        "​task":"​Текст задания",​ 
-     }, 
-     "​codes":​[ 
-        { 
-           "​name":"​Первый код",​ 
-           "​code":​["​Код1","​Кодик1"​] 
-        } 
-  }, 
-  { 
-     "​task":​{ 
-        "​working_name":"​Урв2",​ 
-        "​task":"​Текст задания 2", 
-     }, 
-     "​codes":​[ 
-        { 
-           "​name":"​Первый код",​ 
-           "​code":"​Код2,​ кодик2",​ 
-        } 
-  } 
-] 
-</​code>​ 
- 
-==== Редактирование существующих уровней ==== 
-Если в секции task уровня есть поле number - то уровень с этим номером будет отредактирован,​ используя предоставленный JSON. 
- 
-Для полей в секции task, если они присутствуют в JSON - они будут заменены на новые. Если поля отсутствуют в предоставленном JSON - то они будут оставлены как было. 
- 
-Для остальных секций (codes, bonuses, hints), ели секция присутствует в JSON - то она полностью заменит существующую. Если отсутствует - то секция остаётся,​ как была. 
- 
-Например,​ 
- 
-<code JavaScript [enable_line_numbers="​false"​]>​ 
-[ 
-  { 
-     "​task":​{ 
-        "​number":​ 4, 
-        "​working_name":"​Уровень 1", 
-        "​Answer":"​Добавляем новый ФО", 
-     }, 
-     "​bonuses":​[ 
-        { 
-           "​code":"​Бонус1,​б1",​ 
-           "​delay":​15,​ 
-           "​duration":​60,​ 
-           "​time":​10,​ 
-           "​description":"​Другое описание бонуса",​ 
-           "​hint":"​Текст после решения бонуса"​ 
-        }, 
-  } 
-] 
-</​code>​ 
- 
-=====Python библиотека===== 
-Для взаимодействия с API через Python есть библиотека,​ которую можно найти [[https://​github.com/​Phaust94/​qeng_admin_api|тут]] 
  • admin_api.1634338377.txt.gz
  • Последние изменения: 2021/10/15 22:52
  • phaust