Мы добавили новую вкладку Календарь в настройки пользователя, которая позволяет подписаться на ленты Discourse в сторонних календарных приложениях, таких как Google Календарь, Apple Календарь и Microsoft Outlook.
Мои события — события, на которые вы планируете пойти или которые вас интересуют
Для разработчиков плагинов
Плагины могут регистрировать дополнительные ICS-ленты с помощью нового API register_calendar_subscription_feed. Ленты, зарегистрированные таким образом, автоматически отображаются на вкладке «Календарь» в настройках, когда плагин включён.
Безопасность
URL-адреса подписки используют ограниченные ключи API пользователя с доступом только для чтения в формате ICS. Ключи имеют ограничение скорости запросов, а URL-адреса отображаются только один раз при генерации — пользователи могут сгенерировать их заново в любое время, что отменяет действие старых URL.
Большое спасибо за эту реализацию — это повысит удобство использования плагина календаря/событий для многих сообществ!
У меня та же возражение, что и у @hellekin: в рамках Discourse мы находимся в среде с открытым исходным кодом. В нашем сообществе никто не использует ни Google Calendar, ни Microsoft. Если пользователям нужны ссылки на эти проприетарные сервисы, они должны решать это самостоятельно, а не приложение. Поэтому я предпочитаю выбирать тип внешнего сервиса календаря на этапе создания URL-адресов подписки (например, с помощью некоторых флажков), а не позже.
У нас на экземпляре Discourse работает несколько сообществ. Они разделены правами доступа по группам, и некоторые пользователи состоят более чем в одном сообществе. Было бы удобно добавить возможность фильтрации URL «Discourse Calendar - All Events», чтобы отображались только календарные записи конкретного сообщества. Пример URL:
С этим улучшением появится возможность публиковать события Discourse конкретного (!) сообщества на собственном сайте, например, с помощью плагина WordPress «ICS calendar».
Ещё одно небольшое предлагаемое улучшение: если вы хотите подписаться на события Discourse с двух разных клиентов (например, Thunderbird на двух устройствах), вам нужно скопировать URL дважды. Однако в настоящее время URL отображается только один раз. Если вы добавите второй клиент, вам придётся сгенерировать URL заново, и вы потеряете первые ссылки.
Я понимаю, но моя мысль касается необходимости повторной генерации после того, как ссылки будут показаны впервые.
Если я использую ссылку календаря на двух разных устройствах, они, вероятно, не будут доступны для настройки одновременно. Я бы зашёл в свой профиль Discourse с первого устройства, а позже — со второго. Было бы лучше, если бы старая ссылка отображалась снова, и она становилась недействительной только по явной просьбе.
Если я являюсь участником двух разных сообществ (и их групп разрешений), ссылка «https://discourse.example.com/discourse-post-event/events.ics» отображает события обоих сообществ. Пока всё верно. Но у обоих сообществ могут быть свои собственные веб-сайты. Если я захочу разместить события из Discourse на их сайтах, мне нужно видеть только события «сообщества А», а не «сообщества Б». И наоборот.
Если ты говоришь о календарных сервисах других провайдеров, то принцип тот же — 1–2 раза в день. В своё время я не нашёл решения, чтобы увеличить количество синхронизаций. Позже я подумал, что это вполне нормально, учитывая, сколько календарей нужно синхронизировать по всему миру Думаю, они ограничивают это, чтобы не перегружать свои серверы!
Контекст: наш экземпляр Discourse используется несколькими группами пользователей/сообществами, у которых есть свои отдельные группы разрешений. Для каждой из этих групп есть главная категория. Эта категория публично видна, а её контент передаётся в Fediverse (Discourse ActivityPub). Также отображается публичный календарь. Пример (https://forum.netzwissen.de/c/meshcore-str/84):
Календарь отображает события из постов в главной категории, а также из подкатегорий. Посты со событиями в подкатегориях (которые видны только «авторизованным» пользователям с соответствующей группой разрешений сообщества) не показываются в основном календаре для анонимных пользователей (не авторизованных). Отлично — это ожидаемое поведение!
Я вижу два требования, которые сделают ссылку на ICS-календарь «полностью функциональной». Мы используем новую ссылку на ICS-календарь для публикации событий, созданных в Discourse, на публичных сайтах сообществ (CMS: WordPress).
События, отображаемые в ICS-файле, должны быть «отфильтрованы» по сообществу/группе разрешений. Предлагаемый синтаксис:
ICS-файл должен отображать только события со статусом «public». События со статусом «private» или «standalone» в целом не должны публиковаться в ICS-файле. Примечание: я ещё не проверял, реализовано ли это уже…
К сожалению, даже несмотря на то, что плагин «Календарь» включен (и мы регулярно его используем), при генерации URL-адресов для моего пользователя создаётся только подписка «Закладки». Есть какие-то идеи, почему это может происходить?
Я также согласен с @Thomas_Rother: URL-адреса подписок должны отображаться до момента их отмены или повторной генерации. Устройства и приложения со временем меняются, и необходимость повторно подписываться на всех устройствах только потому, что вы хотите добавить ещё одно, утомительна и кажется излишней. Возможно, это можно сделать опцией конфигурации плагина, в зависимости от чувствительности данных событий.
Может ли это быть проблемой для установок, которые ранее использовали отдельный плагин? Я также пробовал деактивировать и повторно активировать плагин, но это не решило проблему.
Редактирование: Только что подтвердил — события больше не отображаются в постах. Таким образом, это проблема миграции плагина, а не функции подписки. Разберёмся, что произошло.
Я пришел сюда именно ради этой функции, поэтому так рад, что она была реализована!
Поддерживаю мнение @hellekin и @Thomas_Rother о корпоративных ссылках. Было бы отлично, если бы их можно было сделать опциональными. Многие используют Discourse, потому что верят в цифровой суверенитет, поэтому появление этих логотипов здесь неуместно.
Ещё важнее — доступность функции. Сейчас она спрятана в настройках пользователя, но было бы здорово видеть её прямо в навигации интерфейса календаря. Нажать «Ближайшие события» и сразу увидеть ссылку для подписки — это было бы просто золото.