admin_api

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
admin_api [2021/10/16 16:29]
admin [Экспорт в JSON]
— (текущий)
Строка 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|тут]] 
- 
-=====Экспорт в JSON===== 
-Можно экспортировать свои авторские игры или игры своего домена 
- 
-3493 - надо заменить на нужный вам ID игры 
- 
-https://​qeng.org/​game_export.php?​gid=3493 - сохранить JSON всего, что есть в игре. 
- 
-https://​qeng.org/​game_export.php?​gid=3493&​e=game - сохранить JSON только вкладки описания/​настроек игры. 
- 
-https://​qeng.org/​game_export.php?​gid=3493&​e=gbonuses - сохранить JSON сквозных бонусов игры. 
- 
-https://​qeng.org/​game_export.php?​gid=3493&​e=lines - сохранить JSON линеек игры. 
- 
-https://​qeng.org/​game_export.php?​gid=3493&​e=task&​n=1 - сохранить JSON задания с номером 1. Параметр 1 можно поменять на любой нужный номер задания. 
- 
- 
- 
- 
- 
  
  • admin_api.1634401778.txt.gz
  • Последние изменения: 2021/10/16 16:29
  • admin