Skip to main content
Примеры ниже выполняют запросы на сервере: CORS для обращения к Kalenich Stats с другого сайта не включён. Во всех примерах Discord ID остаются строками.

JavaScript: запрос с обработкой ошибок

Код рассчитан на Node.js с поддержкой fetch и AbortSignal.timeout. Функция сохраняет HTTP-статус при ошибке и учитывает, что прокси может ответить не в JSON.
Таймаут в 15 секунд выбран для примера клиентской реализации. Это не ограничение и не SLA сервиса. В приложении подберите его под свои условия работы.

Рейтинг по актуальным отчётам

Используйте функцию getKalenich из предыдущего примера. API возвращает каталог по номерам серверов, поэтому сортировку по активности выполняет клиент.
Не добавляйте устаревшие счётчики к итоговой сумме актуальных отчётов. Если хотите показывать stale отдельно, явно обозначьте, что данные устарели.

Иконка и баннер

Метод изображений не требует периода и не зависит от наличия статистики. Здесь также используется getKalenich из первого примера.
Путь /images/server-placeholder.png — пример заглушки вашего приложения. Добавьте собственное изображение и обработайте ошибку загрузки CDN-ссылки. Если bannerUrl равен null, блок баннера можно скрыть.

Python: статистика за диапазон

Пример использует только стандартную библиотеку Python 3. В HTTP-ошибке он пробует прочитать код приложения, а для ответа другого формата сохраняет HTTP-статус.

Отображение в приложении

При выводе статистики полезно показывать число сообщений, состояние отчёта и время его формирования. Для общей сводки добавьте охват серверов. Отдельно предусмотрите отсутствие данных, устаревший отчёт и ошибку запроса.

Данные и статусы

Поля ответа и правила интерпретации статистики.

Ошибки API

Что исправлять в запросе и когда имеет смысл повторить его.