Перейти к содержимому
Korean Random
GPCracker

Некорректное формирование уведомлений

Рекомендуемые сообщения

(изменено)

При формировании текста уведомления список ответивших в теме пользователей считается некорректно. В приведенном ниже примере ожидаемая последовательность (согласно скриншоту): Mr 13, <тема прочитана>, Pavel3333, StranikS_Scan, <тема прочитана>, Mr 13, <тема прочитана>, night_dragon_on, Mr 13, <тема прочитана>. Реальная последовательность сообщений: Mr 13, Pavel3333, GPCracker, StranikS_Scan, Mr 13, night_dragon_on, GPCracker, Mr 13. Получается, что каким-то образом я два раза (четвертое снизу и второе сверху уведомления) оставил сообщение "посередине списка ответивших пользователей", указанных в уведомлении. И причем такое начало происходить относительно недавно, максимум месяц-полтора назад.

Пример ошибки

 

Заинтересованные: @Mr 13

Изменено пользователем GPCracker

Поделиться сообщением


Ссылка на сообщение

Короткая ссылка
Поделиться на других сайтах

Ничего не понял по описанию. Переформулируй.

Поделиться сообщением


Ссылка на сообщение

Короткая ссылка
Поделиться на других сайтах
(изменено)
30 minutes ago, Mr 13 said:

Переформулируй.

Каждое сообщение в отслеживаемой теме генерирует уведомление. Если с момента последнего чтения темы новых сообщений появилось несколько, то они (уведомления) группируются в одно уведомления с перечислением отвечавших пользователей. В приведенном на скриншоте примере есть два сгруппированных уведомления (четвертое снизу и второе сверху). Но список пользователей в них перечислен так, что мои сообщения оказываются между сообщениями перечисленных пользователей. То есть уведомления о новых сообщениях в теме группируются как-то неправильно, к примеру уведомление о сообщении от StranikS_Scan сгруппировалось с Pavel3333, хотя между этими сообщениями есть мое, где я ответил на сообщение Pavel3333, то есть однозначно прочитал тему. Иными словами, новые уведомления почему-то группируются с уведомлениями об уже прочитанных ранее сообщениях. Есть весьма навязчивое ощущение, что там проблема с индексами, ошиблись где-то на единичку, потому как сгруппированным (на скрине) должно быть третье сверху уведомление, с содержанием Mr 13, night_dragon_on, а второе сверху должно содержать только Mr 13, тогда все получается ровно.

Как по идее должно быть (отредактировано в браузере).

Как по идее должно быть

Изменено пользователем GPCracker

Поделиться сообщением


Ссылка на сообщение

Короткая ссылка
Поделиться на других сайтах

Насколько понимаю, дело в том, что уведомления объединяются по признаку прочитанности уведомлений, а не контента.

 

Переделывать довольно трудоёмко и громоздко. Я поговорю с IPS по этоу вопросу, но маловероятно что они возьмутся за это в обозримом будущем, т.к. их бэклог полон куда более важных задач.

Поделиться сообщением


Ссылка на сообщение

Короткая ссылка
Поделиться на других сайтах
(изменено)
6 hours ago, Mr 13 said:

Насколько понимаю, дело в том, что уведомления объединяются по признаку прочитанности уведомлений, а не контента.

Странно как-то все это. Самое что интересное, раньше такой проблемы не было, и группировка происходила правильно. То-ли я чего-то не замечал. И как-бы у меня страница уведомлений открыта практически постоянно в браузере, и на контент я перехожу по уведомлениям, так что уведомления практически всегда читаются раньше, чем сам контент. Меня больше всего здесь настораживает то, что в обоих случаях забаговалось только одно уведомление, которое было перед моим ответом в каждом из случаев.

Еще один пример ошибки

Тут более интересная ситуация. Первое уведомление на тему Advanced Aiming System прилетело 20 ноября, ссылается оно сюда (445412), перед этим сообщением последний пост датируется 17 октября, то есть более месяца назад, и поскольку кроме страницы уведомлений других открытых вкладок форума я обычно не держу, то попасть в тему и увидеть сообщение я мог только через уведомления. Следующим постом идет мой ответ, поэтому на момент публикации моего сообщения (445418) уведомление и сообщение (по ссылке чуть выше) уже однозначно были прочитаны. И далее опять те же яйца, только в профиль и в большем размере - произошла группировка уведомлений от сообщений 445429 (второе сообщение Scharfhobel, после моего первого ответа) и 445472 (от StranikS_Scan, после моего второго ответа) на базе уже прочитанного ранее уведомления со ссылкой на сообщение 445412 (исходное уведомление от 20 ноября). Тут правда есть один нюанс - я не помню, обновлял ли я страницу уведомлений после своего первого ответа (445418), или получил второе сообщение от Scharfhobel (445429) в виде подсказки на странице темы. Однако тут стоит также обратить внимание на еще один момент. Уведомления от 22 ноября отображаются нормально и под группировку с исходным уведомлением не попали (они сгруппировались отдельно, и там явных косяков не видно). При этом между ними и исходным (если анализировать по временным параметрам) есть три "левых" уведомления (два цитирования и личное сообщение), и группировки с исходным нет, а между уведомлением на сообщение от StranikS_Scan (445472) и исходным все еще остаются "левые" уведомления (но уже только два, личное сообщение и цитирование), и группировка с исходным уведомлением таки происходит. Однако есть нехилая вероятность, что на момент добавления уведомления от сообщения 445472 к исходной группе уведомления о цитировании и личном сообщении от Scharfhobel не были прочитаны.

В общем, если свести все сказанное выше, отслеживается следующая логика работы системы уведомлений:

  1. Таки подтверждается тот факт, что уведомления группируются с учетом прочитанности уведомлений, а не контента. Но само по себе причиной рассматриваемой ошибки это быть не может.
  2. Уведомления о новых сообщениях в теме группируются к первому непрочитанному уведомлению такого типа (по крайней мере так должно быть, но не всегда работает как надо). Все остальные уведомления группировке не подвержены.
  3. Наблюдается интересный глюк, заключающийся в том, что при определенных условиях при поиске ["базового"] уведомления для "пригруппировки" к нему нового, прочитанность "базового" почему-то не учитывается (оно по непонятной причине считается непрочитанным); иными словами, движок группирует новые уведомления к уже прочитанному, считая его непрочитанным, создавая тем самым предмет обсуждения данной темы.

Таким образом, проблема не в стратегии группировки уведомлений, а в какой-то ошибке в плане ее реализации. В общем, ставлю на типичную ошибку с индексами (с нуля или с единицы считаются элементы), скорее всего именно из-за этого последнее прочитанное уведомление (возможно с фильтрацией по типу) и считается непрочитанным, отсюда и возникает проблема. Но это всего лишь предположение.

P.S. Извиняюсь за чрезмерно длинный пост, но возможно данная информация таки поможет найти причину проблемы. И да, по всей видимости именно из-за этой самой проблемы у меня несколько раз и были ситуации, когда один и тот же человек отправлял два сообщения подряд (с интервалом больше порога слияния), но при этом на второе сообщение уведомление не приходило, точнее оно просто незаметно сливалось с предыдущим (если в других отслеживаемых темах было тихо). Кстати, возможно что и проблема с не приходящими уведомлениями при слиянии сообщений так же связана с предметом обсуждения этой темы.

 

Заинтересованные: + @ktulho, @Pavel3333

Изменено пользователем GPCracker

Поделиться сообщением


Ссылка на сообщение

Короткая ссылка
Поделиться на других сайтах

+

Поделиться сообщением


Ссылка на сообщение

Короткая ссылка
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×