Подписка на категорию не вызывает push-уведомления

Итак, когда я устанавливаю для категории параметр «Следить за первым сообщением» («Вы будете уведомлены о первом сообщении в каждой новой теме в этих категориях»), я получаю push-уведомления на телефоне при создании темы в категории, а также получаю push-уведомления и на последующие ответы.

Однако, когда я устанавливаю для категории параметр «Следить» («Вы будете уведомлены обо всех новых сообщениях и темах»), push-уведомления не приходят.

Изучив код, я обнаружил условие NOTIFIABLE_TYPES.include?(type).

NOTIFIABLE_TYPES включает watching_first_post и posted, но не включает watching_category_or_tag.

Это сделано намеренно? Я всегда считал, что режим «Следить» является надмножеством режима «Следить за первым сообщением»?

(Схожая/связанная тема: Watching First Post does not send push notifications и это изменение)

РЕДАКТИРОВАНИЕ: В настоящее время я управляю несколькими форумами, которые использую сам, с помощью модифицированной версии, в которую добавлено watching_category_or_tag. При установке параметра «Временное окно push-уведомлений (мин)» в значение 0 мой пользовательский опыт улучшился с «так себе» до «отлично». Так что, если это не ошибка, рассмотрите это как запрос на добавление новой функции :wink:

8 лайков

Я объединил коммит, который добавляет watching_category_or_tag в NOTIFIABLE_TYPES, точно так же, как вы описали! Спасибо за отчет об ошибке и решение :chefs_kiss:

7 лайков

Спасибо @markvanlan!!

… Я только что узнал, что для этого также требуется строка локали en.discourse_push_notifications.popup.watching_category_or_tag

1 лайк

Отлично подмечено, конечно, тип привязан к переводу! Но… мне интересно, какой текст лучше. Тот, что для watching_first_post, приведён ниже. Мне кажется, перевод должен быть «X создал новый пост», а не «X создал новую тему», поскольку это может быть новая тема, но скорее всего это ответ.

Чтобы сделать строку более изощрённой, нам придётся изменить PushNotificationPusher. Пока я создам PR с моим предложением, а затем мы можем обсудить улучшения.

watching_first_post: '%{username} создал новую тему «%{topic}» — %{site_title}'
watching_category_or_tag: '%{username} создал новый пост «%{topic}» — %{site_title}'

РЕДАКТИРОВАНИЕ: Добавил коммит с переводом. Завтра я вернусь к этому вопросу, чтобы предложить более богатый опыт: прямую ссылку на пост с указанием категории или тега, к которому он относится. FIX: Add translation for new push notification (#24203) · discourse/discourse@1d96b0a · GitHub

4 лайка

Я только что отправил ещё один коммит, который немного улучшает текст push-уведомлений. Из описания PR:

Теперь для новых тем будет отображаться:

username создал новую тему «title here!» - Marks' Discourse

А для новых сообщений:

username опубликовал сообщение в «title here!» - Marks' Discourse


После изучения кода стало ясно, что изменить текст так, чтобы он звучал как «X создал новую тему в категории/с тегом Y», потребовало бы огромных изменений. Это хороший шаг в правильном направлении, и при необходимости в будущем мы можем вернуться к более сложным изменениям.

Ещё раз спасибо @RGJ!

3 лайка

Эта тема была автоматически закрыта через 13 часов. Новые ответы больше не принимаются.