Плагин ежедневной сводки почты для Discourse

:information_source: Краткое описание Отправка всех новых постов в рамках одного ежедневного или еженедельного обновления
:hammer_and_wrench: Ссылка на репозиторий https://github.com/thoka/discourse-mail-daily-summary
:open_book: Руководство по установке Как установить плагины в Discourse

Возможности

Форк discourse-mlm-summary, с реализованными добавлениями и изменениями:

  • отправка ежедневной/еженедельной сводки в указанное время суток
  • отправка либо сводок, либо полных текстов постов
  • необязательный диагностический вывод для поддержки настройки и устранения неполадок
  • принудительная отправка ежедневных сводок для групп пользователей: mail_daily_summary_auto_enabled_groups
  • ограничение ежедневных сводок по категориям (включая все подкатегории): mail_daily_summary_enabled_categories
  • время последнего запуска запоминается в переменной mail_daily_summary_last_run_at. Если она установлена, в сводку включаются сообщения, отправленные между временем отправки и значением mail_daily_summary_last_run_at. В противном случае отправляются изменения за последние 24 часа/7 дней.
  • необязательная активация для всех пользователей (с возможностью отказа)
  • шаблон сообщения основан на текущем (2024-04-30) шаблоне дайджеста
  • добавлена ссылка для отписки

Настройка

Если параметр mail_daily_summary_at не установлен, сводки будут отправляться каждый час пользователям, которые вошли в систему в то же время суток, что и при первом входе.

Если параметр mail_daily_summary_at установлен, все сообщения будут помещены в очередь один раз в день, когда наступит настроенное время.

В сводку включаются посты, опубликованные начиная с момента mail_daily_summary_last_run_at, но не старше 14 дней (для предотвращения случайных ошибок).

ВНИМАНИЕ

  • этот плагин игнорирует настройку «отключить режим рассылки»

ПЛАНЫ НА БУДУЩЕЕ

  • добавить возможность уведомления только о подписанных категориях
  • добавить параметр настройки для исключения групп
  • добавить параметр настройки для исключения категорий
  • добавить возможность ответа на отдельные темы/посты по электронной почте
  • добавить тесты

Поддержка

Этот плагин используется компанией Communitec.
:folded_hands: @RGJ отвечает за обеспечение его совместимости с новыми версиями Discourse.

8 лайков

Прекрасная работа!!!

Не могли бы вы сделать частоту настраиваемой?

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

1 лайк

Кажется, это вполне реализуемо как глобальная настройка.
Какие варианты потребуются (ежедневно, еженедельно, ежемесячно)?
Также день недели / месяц: если значение отрицательное, считается с конца?

1 лайк

Её можно решить множеством способов, а?

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

Может быть, и к неделям месяца тоже, но это становится немного запутанным из-за вариативности.

1 лайк

Каждое письмо создается для конкретного пользователя или одно письмо отправляется всем пользователям? Если письма индивидуализированы, настройка времени и частоты отправки должна ideally устанавливаться для каждого пользователя (вы упоминаете глобальную настройку — тогда она будет служить значением по умолчанию).

Каждый пользователь получает индивидуальное письмо.
Однако ведение учёта индивидуальных расписаний потребовало бы гораздо больше усилий по сравнению с глобальными настройками.

2 лайка

Теперь доступны еженедельные сводки.

3 лайка

Очень интересный плагин! Один вопрос по поводу…

С учётом того, как спроектирован этот плагин, возможно ли отображать топ новых сообщений вместо всех? Это альтернатива предложению по улучшению для ядра Discourse: Option to always receive Activity Summaries even when you've been on the forum

1 лайк

Я действительно недавно установил плагин, и сначала всё выглядело хорошо: он отправил дайджест примерно в то время, которое я настроил, в первый же день после обеда. Однако он отправил его только 22 из 56 человек, а в следующий раз — только двум людям, и в последующий раз тоже только двум.

У нас в форуме чуть больше 50 человек, и я просто не могу понять, почему дайджест не отправляется всем. Тем, кому он был отправлен, последний раз посещали форум от одного до 50 дней назад, и среди них были пользователи как с уровнем доверия 0, так и с уровнем доверия 1.

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

На вашем скриншоте, похоже, показаны дайджест-письма, а не ежедневные сводки.

Этот основной коммит изменил способ сохранения атрибутов предпочтений.
Из-за этого изменения плагин выдаёт ошибку при работе с предпочтениями — email.

Мы исправили проблему и открыли PR. Не могли бы вы его слить?

2 лайка

Спасибо. Это объединено.

Можно ли полагать, что люди, обновляющие плагин, также обновляют Discourse? Если нет, то это вызовет сбои?

Поскольку вы, кажется, используете плагин: стоит ли нам обновлять статус «не поддерживается» до дальнейшего уведомления, когда вы перестанете его использовать?

1 лайк

Я думаю, что это довольно безопасное предположение.

У нас есть несколько клиентов, использующих его, поэтому — до дальнейшего уведомления — мы готовы его поддерживать, да :+1:t3:
Я убрал этот тег.

2 лайка

Добавлены дополнительные опции, обновлены настройки и создан PR

  • добавлена опция использования отрывков вместо полных постов (mail_daily_summary_min_excerpt_length, работает аналогично стандартной digest_min_excerpt_length)
  • добавлена опция ограничения количества постов в теме (mail_daily_summary_max_posts_per_topic)
  • добавлена опция использования функционала /admin/email/preview-digest для ежедневной сводки (mail_daily_summary_preview_uses_daily_summary)

Спасибо за поддержку и добавление новых функций.

1 лайк