Русский
Открыть в Telegram

Пост Система подсчёта места чата в общем рейтинге всегда работала как-то подозрительно, хотя и была внимательно покрыта теста…

15 сентября 2025
Л
Любопытный Код
Система подсчёта места чата в общем рейтинге всегда работала как-то подозрительно, хотя и была внимательно покрыта тестами. И в очередной раз, обратив внимание на то что у чата, который поймал двух котов сообщение Ваш счёт лучше чем у 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 Буду меньше краснеть.
197 ·

Рядом в ленте

ЛЛюбопытный КодTBAЛЛюбопытный КодСейчас работаю над тем, чтобы можно было квесты подгружать в бота динамически. Т.е. всё это время до этого квест писался в виде кода. Это было вполне удобно и ч
это сообщение
ЛЛюбопытный Код💭 Вы ведёте своего бота, который обслуживает тысячи чатов. У вас аккуратная база, которая хранит id'шники чатов и пользователей. Вы сохраняете свойства пользоваЛЛюбопытный Код😎 Давно хотел это сделать. Глядите, как изменилось количество ошибок, после того как я исправил проблему с супергруппами *Метрика показывает количество WARN и E
ЛЛюбопытный КодЛюбопытный Код@curious_code · канал
74постов в индексе
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Границы индекса · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем