Jump to content
Korean Random
GPCracker

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

Recommended Posts

При формировании текста уведомления список ответивших в теме пользователей считается некорректно. В приведенном ниже примере ожидаемая последовательность (согласно скриншоту): 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

Edited by GPCracker

Share this post


Link to post

Short link
Share on other sites

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

Share this post


Link to post

Short link
Share on other sites
30 minutes ago, Mr 13 said:

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

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

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

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

Edited by GPCracker

Share this post


Link to post

Short link
Share on other sites

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

 

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

Share this post


Link to post

Short link
Share on other sites
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

Edited by GPCracker

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...