Перейти к основному содержимому

Гайды

Гайды — вики-страницы по играм в Markdown («Как ставить моды в Deadlock», гайды по инструментам). Каждый гайд существует на одном языке (locale = en или ru), имеет числовой id, slug, уникальный внутри игры, и публичную историю правок. На сайте гайд лежит по адресу /games/{game}/guides/{slug}.

Чтение​

GET /games/{game}/guides?locale=ru&limit=20
GET /games/{game}/guides/{slug}

Список отдаёт опубликованные гайды, новые первыми, в обычной курсорной обёртке. GET /games/{game}/guides/{slug} возвращает Markdown (body), очищенный HTML (bodyHtml, заголовки начинаются с h2) и права вызывающего (canEdit, canPublish, canModerate). Черновики и скрытые гайды видны только автору и редакторам, остальным — 404.

#!/usr/bin/env bash
set -euo pipefail
BASE_URL="${GLITCHMUG_API:-https://api.glitchmug.com/v1}"

# Published guides of a game in one language, newest first
curl -fsS "$BASE_URL/games/deadlock/guides?locale=en&limit=20"

Запись​

POST /games/{game}/guides
PATCH /games/{game}/guides/{slug}

Для записи нужен API-ключ со scope mods:write или сессия сайта.

  • Создать гайд может любой вошедший (10 в сутки). Он начинается как draft, если не запросить status: "published" при праве guide:publish (доверенные авторы и модераторы).
  • Автор правит свой гайд; guide:edit (модераторы игры и выше) правит любой. 60 правок в час.
  • Смена status между draft и published требует guide:publish.
  • Каждое создание, правка и откат добавляют версию в историю. slug берётся из заголовка при создании и больше не меняется.
  • Слишком частые запросы: 429 guide_rate_limited.
#!/usr/bin/env bash
set -euo pipefail
BASE_URL="${GLITCHMUG_API:-https://api.glitchmug.com/v1}"

# Needs scope mods:write. Without the guide:publish permission the guide starts as a draft.
curl -fsS -X POST "$BASE_URL/games/deadlock/guides" \
-H "Authorization: Bearer $GLITCHMUG_TOKEN" \
-H "Content-Type: application/json" \
-d '{"locale": "en", "title": "How to install mods", "summary": "Folders and tools.", "body": "## Steps\n\n1. Download the mod.", "status": "published"}'

История​

GET /games/{game}/guides/{slug}/revisions
GET /games/{game}/guides/{slug}/revisions/{rev}
POST /games/{game}/guides/{slug}/revisions/{rev}/revert

История публична для видимых гайдов. revert (нужен guide:edit) возвращает заголовок, краткое описание и текст старой версии как новую версию; ничего не удаляется.

Модерация​

POST /games/{game}/guides/{slug}/hide принимает код правила (и необязательную причину); POST …/unhide показывает гайд снова. Оба действия требуют guide:hide в игре и пишутся в журнал модерации.