Я пытаюсь точно оценить и отразить активность на форуме, который я администрирую с помощью Discourse. Мне кажется, что я фундаментально не понимаю, что такое «пост».
В API есть темы (Topics) и посты (Posts). Например, чтобы получить посты, я могу использовать filter=5:
Насколько я могу судить, параметр filter=5 для постов в /user_actions.json?offset=0&username=USERNAME&filter=5 не соответствует пункту Посты в отчёте. Похоже, что Посты в отчёте включают как посты (filter=5), так и темы (filter=4).
Я предполагаю, что посты должны представлять собой ответы + темы. Было бы неплохо, если бы кто-то более осведомлённый мог подтвердить это.
Если это так, я могу попробовать использовать ответы (filter=6) и темы (filter=4). Однако я немного обеспокоен этим, поскольку отчёт в административной панели Discourse показывает правильные, ожидаемые значения.
Попробуйте найти пример использования API Discourse для генерации отчётов.
Да, посты находятся внутри темы. Поэтому поиск новых постов не будет искать новые темы.
Когда вы создаёте тему, вы также создаёте пост — первый пост является частью темы.
Однако все последующие ответы также считаются постами — вы публикуете свои ответы.
Что касается offset и совпадают ли посты в API с теми, что в Администрирование → Отчёты → Посты, я передам этот вопрос другому человеку.
Это верно. У каждой темы есть первый пост, который создаётся вместе с темой. Невозможно создать тему, состоящую только из заголовка. Этот первый пост не учитывается как ответ (реплика) в запросе постов (фильтр-5).
При запросе постов вы получаете запрос на новые ответы на существующие темы — исключая автора темы (OP). Это ожидаемое поведение — показывать только новые посты.
Чтобы включить темы (созданные этим пользователем) в запрос, фильтр=4 должен возвращать темы, созданные этим пользователем (включая авторские посты в подсчёте [3]) и его ответы [4]. Это вернёт 7, которые вы видите в отчёте: 3 созданные темы + 4 ответа, итого 7 (3 авторских поста + 4 ответа).
Если кто-то другой разбирается в этом лучше, пожалуйста, не стесняйтесь вступить в обсуждение.
@JimPas, спасибо за вашу помощь. Она очень полезна. С этими знаниями я с большей уверенностью продолжаю работу над панелью управления приложением. Хорошего дня. Очень приятно, что вы помогаете такому незнакомцу, как я.