- Модерация
POSTA/api/moderation/accuseЗабанить пользователяPOSTB/api/moderation/blockБлокировка пользователяPOSTP/api/moderation/checkПроверить забанен ли пользовательPOSTA/api/moderation/listПолучить список бановPOSTP/api/moderation/reasonsПолучить список причин банаPOSTM/api/moderation/undoОтменить бан
- Поддержка
- Безопасность
запрос
{
messageId: number; // Идентификатор сообщения
reasonId: number; // Идентификатор причины бана
data?: Object; // Дополнительная информация
}ответ
[]Вернёт ошибку если переданные пользователь или причина не существуют, у текущего пользователя нет прав для указанной причины, нет гражданки, повторная заявка на того же пользовтеля с той же причиной, больше 5 заявок за последние 10 минут, текущий пользователь не залогинен или передан неверный токен.
запрос
{
userId: number; // Идентификатор пользователя которого нужно заблокировать или разблокировать
state: boolean; // Статус блокировки, false для снятия
}ответ
[]Заблокированный пользователь не проходит проверку токена.
Вернёт ошибку если пользователь не залогинен, передан неверный токен или пользователь не имеет роли blocker.
запрос
{
userId: number; // Идентификатор пользователя, которого нужно проверить
}ответ
{
id: number; // Идентификатор бана, 0 для незабаненных
banned: boolean; // true если забанен, false если не забанен или пользователь не существует
expire: unixtime; // Время истечения бана, 0 для незабаненных
reason: number; // Идентификатор причины бана, 0 для незабаненных
}Если банов несколько, то вернет тот, который заканчивается позднее.
Вернёт ошибку если передан пустой или несуществующий userId.
запрос
{
from?: unixtime; // От
to?: unixtime; // До
reason?: number; // Фильтр по указанной причине
banId?: number; // Конкретный номер бана
}ответ
[
{
id: number; // Идентификатор бана
start: unixtime; // Время начала бана от
end: unixtime; // Время начала бана до
reason: Object; // Причина бана, объект из ответа /api/moderation/reasons,
active: boolean; // Статус бана, false если отменён
data: [ // Дополнительные данные бана
{ // Сообщение чата
text: string; // Текст сообщения чата
attempt: boolean; // Флаг что за сообщение голосовали баном
accused: boolean; // Флаг что сообщение от забаненного пользователя
},
...
]
},
...
]Список доступен всем залогиненным пользователям. Все, кроме имеющих роль moderator, получают список только своих банов.
В дополнительных данных бана сообщения за которые голосовали баном и несколько сообщений из чата того же канала до забаненных.
Для причины бана 'несправедливо обвинил другого' в данных будут находиться причина бана и сообщение другого пользователя, бан по которым был отменён.
Вернёт ошибку если пользователь не залогинен или передан неверный токен.
запрос
{
content: string; // Тип контента, [chat, moderation]
}ответ
[
{
id: number; // Идентификатор причины
name: string; // Имя причины
content: string; // Тип контента
},
...
]Вернёт ошибку если передан неверный тип контента.
запрос
{
ban: number; // Идентификатор бана
}ответ
[]Отменяет выбранный бан, при этом выдавая бан всем пользователям которые его ставили.
Вернёт ошибку если бан с указанным идентификатором не существует, пользователь не залогинен,
передан неверный токен или пользователь не имеет роли moderator.
Общение ведётся в отдельном канале чата support/<id>, где <id> это идентификатор вопроса.
Реальые идентификаторы и имена пользователей(спрашивающего и отвечающих) скрыты и не передаются в запросах по саппорт каналам.
Активными вопросами считаются те, у которых в соответствующем канале чата последнее сообщение от спрашивающего.
запрос
{
category: number; // Идентификатор категории
question: string; // Текст вопроса
}ответ
{
id: number; // Идентификатор вопроса
time: unixtime; // Время вопроса
category: Object; // Данные категории, объект из ответа /api/category
question: string; // Текст вопроса
active: boolean; // Состояние вопроса, true для только созданного
}Вернёт ошибку если передан неверный идентификатор категории, текст вопроса пустой, у пользователя есть уже 3 неотвеченных вопроса(без хотя бы одного ответа поддержки), пользователь лишён права задавать вопросы(роль canUseSupport === false), не залогинен или передан неверный токен.
запрос
{
questionId: number; // Идентификатор вопроса
}ответ
{}Снимает с юзера, задавшего вопрос, роль canUseSupport, после чего тот не может задавать вопросы до разбана.
Вернёт ошибку если передан неверный идентификатор вопроса, пользователь не залогинен,
передан неверный токен или пользователь не имеет роли support.
запрос
{}ответ
[
string, // Идентификатор чат канала вопроса
...
]Вернёт список чат каналов последних вопросов пользователя(10 штук),
отсортированных по активности(без ответа поддержки первыми) и времени создания(более поздние первыми).
Вернёт ошибку если пользователь не залогинен или передан неверный токен.
запрос
{
category?: number; // Идентификатор категории
from?: unixtime; // Дата начала поиска
onlyActive?: boolean; // Вернуть только активные вопросы, true по умолчанию
}ответ
[
Object, // Данные вопроса, объект из ответа /api/support/ask
...
]Не вернёт вопросы пользователей, у которых стоит запрет на обращение в поддержку.
Вернёт ошибку если передан не верный идентификатор категории, пользователь не залогинен,
передан неверный токен или пользователь не имеет роли support.
запрос
{}ответ
[
{
ip: string; // IP адрес с которого логинились
accessTime: unixtime; // Время логина
firstAccessTime: unixtime; // Время первого логина с этого же IP
lastAccessTime: unixtime; // Время последнего логина с этого же IP
userAgent: string; // UserAgent браузера с которого логинились
},
...
]Возвращает данные 10 последних логинов в аккаунт текущего пользователя.
Вернёт ошибку если пользователь не залогинен или передан неверный токен.
{
// Данные бана, ответ /api/moderation/check
}/api/moderation/check
Приходит при получении бана в чате.
{
messageId: number; // Идентификатор сообщения
channel: string; // Идентификатор канала
}Приходит когда кто-то проголосовал за бан этого сообщения.
{}Приходит при отмене бана текущего пользователя.