ChatIndex и Page
Индекс чата — отсортированная таблица «ключ → число» для топов и рейтингов. Руководство — в статье Индексы чата.
ChatIndex
Получается через chat.getIndex('имя') или chat.indexes.имя.
| Метод | Возвращает | Описание |
|---|---|---|
get(ключ) | ChatIndexEntry | Запись по ключу (до 255 символов) |
update({ k1: v1, k2: v2 }) | — | Записать до двух значений сразу |
getPageOf(номер, размер, порядок) | Page | Страница записей. Номер с 0, размер до 25, порядок 'DESC' или 'ASC' |
clearAll() | — | Удалить все записи индекса |
ChatIndexEntry
| Свойство | Тип | Описание |
|---|---|---|
key | Строка | Ключ записи |
value | Число | Значение |
metadata | Строка | Дополнительные данные, до 500 символов |
indexName | Строка | Имя индекса |
updatedAt | DateTime | Когда меняли |
| Метод | Описание |
|---|---|
update(значение, метаданные?) | Записать значение |
increment(n), decrement(n) | Прибавить или вычесть |
clear() | Удалить запись |
Page
Страница записей. Ее можно перебрать в цикле for.
| Свойство | Описание |
|---|---|
content | Список записей страницы |
number | Номер страницы с 0 |
size | Размер страницы |
numberOfElements | Сколько записей на этой странице |
totalElements | Сколько всего записей |
totalPages | Сколько всего страниц |
sort | Порядок сортировки |
hasContent, hasNext | Есть ли записи, есть ли следующая страница |
isFirst, isLast | Первая ли, последняя ли страница |
Квоты
За одно выполнение — до 2 разных индексов, 2 записей и 1 страницы. В чате — до 50 индексов, в индексе — до 100 000 записей.
Пример
template
{% set page = chat.indexes.wins.getPageOf(0, 5, 'DESC') %}
🏆 Топ-5 по победам:
{% for e in page %}
{{ loop.index }}. {{ mention(e.key) }} — {{ e.value }}
{% endfor %}