GPCracker 2,088 Posted November 29, 2018 (edited) При формировании текста уведомления список ответивших в теме пользователей считается некорректно. В приведенном ниже примере ожидаемая последовательность (согласно скриншоту): 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 November 29, 2018 by GPCracker Quote Share this post Link to post Short link Share on other sites
13 3,392 #445970 Posted November 29, 2018 Ничего не понял по описанию. Переформулируй. Quote Share this post Link to post Short link Share on other sites
GPCracker 2,088 #445974 Posted November 29, 2018 (edited) 30 minutes ago, Mr 13 said: Переформулируй. Каждое сообщение в отслеживаемой теме генерирует уведомление. Если с момента последнего чтения темы новых сообщений появилось несколько, то они (уведомления) группируются в одно уведомления с перечислением отвечавших пользователей. В приведенном на скриншоте примере есть два сгруппированных уведомления (четвертое снизу и второе сверху). Но список пользователей в них перечислен так, что мои сообщения оказываются между сообщениями перечисленных пользователей. То есть уведомления о новых сообщениях в теме группируются как-то неправильно, к примеру уведомление о сообщении от StranikS_Scan сгруппировалось с Pavel3333, хотя между этими сообщениями есть мое, где я ответил на сообщение Pavel3333, то есть однозначно прочитал тему. Иными словами, новые уведомления почему-то группируются с уведомлениями об уже прочитанных ранее сообщениях. Есть весьма навязчивое ощущение, что там проблема с индексами, ошиблись где-то на единичку, потому как сгруппированным (на скрине) должно быть третье сверху уведомление, с содержанием Mr 13, night_dragon_on, а второе сверху должно содержать только Mr 13, тогда все получается ровно. Как по идее должно быть (отредактировано в браузере). Edited November 29, 2018 by GPCracker Quote Share this post Link to post Short link Share on other sites
13 3,392 #445981 Posted November 29, 2018 Насколько понимаю, дело в том, что уведомления объединяются по признаку прочитанности уведомлений, а не контента. Переделывать довольно трудоёмко и громоздко. Я поговорю с IPS по этоу вопросу, но маловероятно что они возьмутся за это в обозримом будущем, т.к. их бэклог полон куда более важных задач. Quote Share this post Link to post Short link Share on other sites
GPCracker 2,088 #446012 Posted November 29, 2018 (edited) 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 не были прочитаны. В общем, если свести все сказанное выше, отслеживается следующая логика работы системы уведомлений: Таки подтверждается тот факт, что уведомления группируются с учетом прочитанности уведомлений, а не контента. Но само по себе причиной рассматриваемой ошибки это быть не может. Уведомления о новых сообщениях в теме группируются к первому непрочитанному уведомлению такого типа (по крайней мере так должно быть, но не всегда работает как надо). Все остальные уведомления группировке не подвержены. Наблюдается интересный глюк, заключающийся в том, что при определенных условиях при поиске ["базового"] уведомления для "пригруппировки" к нему нового, прочитанность "базового" почему-то не учитывается (оно по непонятной причине считается непрочитанным); иными словами, движок группирует новые уведомления к уже прочитанному, считая его непрочитанным, создавая тем самым предмет обсуждения данной темы. Таким образом, проблема не в стратегии группировки уведомлений, а в какой-то ошибке в плане ее реализации. В общем, ставлю на типичную ошибку с индексами (с нуля или с единицы считаются элементы), скорее всего именно из-за этого последнее прочитанное уведомление (возможно с фильтрацией по типу) и считается непрочитанным, отсюда и возникает проблема. Но это всего лишь предположение. P.S. Извиняюсь за чрезмерно длинный пост, но возможно данная информация таки поможет найти причину проблемы. И да, по всей видимости именно из-за этой самой проблемы у меня несколько раз и были ситуации, когда один и тот же человек отправлял два сообщения подряд (с интервалом больше порога слияния), но при этом на второе сообщение уведомление не приходило, точнее оно просто незаметно сливалось с предыдущим (если в других отслеживаемых темах было тихо). Кстати, возможно что и проблема с не приходящими уведомлениями при слиянии сообщений так же связана с предметом обсуждения этой темы. Заинтересованные: + @ktulho, @Pavel3333 Edited November 29, 2018 by GPCracker Quote Share this post Link to post Short link Share on other sites
Pavel3333 1,148 #446021 Posted November 29, 2018 + Quote Share this post Link to post Short link Share on other sites