TGViewer
Любопытный Код Любопытный Код @curious_code · 115 subscribers
Post #9 197
Система подсчёта места чата в общем рейтинге всегда работала как-то подозрительно, хотя и была внимательно покрыта тестами.
И в очередной раз, обратив внимание на то что у чата, который поймал двух котов сообщение
Ваш счёт лучше чем у 92.4% чатов!

А у того, который поймал 4х
Ваш счёт лучше чем у 72.7% чатов!

Я решил докопаться до истины, развернул дамб БД локально и начал дебажить.
SELECT cue.chat.id, sum(cue.result)
FROM CatUserEvent cue
WHERE cue.date > :fromDate
AND cue.catType != 0
GROUP BY cue.chat.id

Вот так выглядит SQL запросик, выглядит правильно и логично. Отсеиваем по типу баллы за картинки(шут знает, за что их дали) и группируем по чату.
Делаю выборку, залезаю в результаты и наблюдаю, что чат, который должен был получить 2 бала, имеет 8 😳
Смотрю, что ж там за события такие, что аж 8 набралось, и вижу результаты:
CLOSE
CAT1
CAT1

А теперь внимание, тип события хранится в енуме, который сохраняется через ordinal.
public enum CatRequestVote implements CallbackItem {
NOT_CAT(0, "crv0", "Любопытный Кот сбегает от "),
CAT1(1, "crv1", "Любопытный Кот убегает к "),
CAT2(2, "crv2", "Два кота засчитано игроку "),
CAT3(3, "crv3", "Целых три кота засчитано "),
CAT4(4, "crv4", "Целых 4 кота засчитано "),
LIKE_PHOTO(-1, "crvl", null),
TIMEOUT(0, "crv0", "Любопытный Кот не дождался "),
CLOSE(0, "crv0", null);
}

И как вы видите CLOSE находится на 8 месте и имеет индекс 7, т.е. 7+1+1=9. Удивление! Тайна раскрыта, правим запрос:
SELECT cue.chat.id, sum(cue.result)
FROM CatUserEvent cue
WHERE cue.date > :fromDate
AND cue.catType != 0
AND cue.result <= 4
GROUP BY cue.chat.id

Буду меньше краснеть.
  • ❤ 1
  • 👍 1
More from @curious_code
  1. Sep 3, 2026Уже довольно давно для ботов добавили возможность присылать премиум эмодзи. И сегодня у ме…
  2. Aug 31, 2026photo post
  3. Aug 19, 2026Угадайте что 😏
  4. Aug 18, 2026Ребят, а Котоботу то сегодня 7 лет 🎂🎉
  5. Aug 17, 2026Наконец дозрел до прикручивания доната к боту. Угадайте с чего я начал? Думаете с удочки?…
  6. Aug 17, 2026Делюсь интересным фактом. Все пользователи бота за все время скопили 6 591 805 💰 Т.е. 6.5…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →