admin_api

Это старая версия документа!


Как заливать?

Для того, чтобы автоматизировать процесс заливки уровней в движок, существует административная API для заливки. Использовать её можно двумя способами:

  1. Вставить JSON в нужном формате на страницу https://qeng.org/import_tasks.php, указав айди игры, и нажав Импортировать. Эта же ссылка доступна из пункта меню «Импорт заданий» на странице редактирования игры.
  2. Отправить POST запрос на https://qeng.org/import_tasks.php?gid=<ваш айди игры>&json=1, в котором в body будет корректно сформированный JSON объект. Для аутентификации необходимо удержать cookie с запроса на авторизацию, о чём детально написано тут: Встраивание движка в другие сервисы

В этом Гугл доке можно сгенерировать JSON уровня автоматически, чтобы потом просто вставить его на страницу заливки.

Описан тут: Структура JSON игры

В зависимости от того, какое действие необходимо произвести (добавить новый уровень / отредактировать существующий), некоторые поля JSON объекта будут отличаться.

Если необходимо добавить уровни в игру, то в поле JSON нужно вставить список из одного или нескольких уровней, разделённых запятыми. При этом уровни должны НЕ иметь поле number внутри task.

Например,

[
  {
     "task":{
        "working_name":"Урв1",
        "task":"Текст задания",
     },
     "codes":[
        {
           "name":"Первый код",
           "code":["Код1","Кодик1"]
        }
  },
  {
     "task":{
        "working_name":"Урв2",
        "task":"Текст задания 2",
     },
     "codes":[
        {
           "name":"Первый код",
           "code":"Код2, кодик2",
        }
  }
]

Если в секции task уровня есть поле number - то уровень с этим номером будет отредактирован, используя предоставленный JSON.

Для полей в секции task, если они присутствуют в JSON - они будут заменены на новые. Если поля отсутствуют в предоставленном JSON - то они будут оставлены как было.

Для остальных секций (codes, bonuses, hints), если секция присутствует в JSON - то она полностью заменит существующую. Если отсутствует - то секция остаётся, как была.

Например,

[
  {
     "task":{
        "number": 4,
        "working_name":"Уровень 1",
        "Answer":"Добавляем новый ФО",
     },
     "bonuses":[
        {
           "code":"Бонус1,б1",
           "delay":15,
           "duration":60,
           "time":10,
           "description":"Другое описание бонуса",
           "hint":"Текст после решения бонуса"
        },
  }
]

Для взаимодействия с API через Python есть библиотека, которую можно найти тут

Можно экспортировать свои авторские игры или игры своего домена

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.1634458950.txt.gz
  • Последние изменения: 2021/10/17 08:22
  • phaust