как ежедневно автоматически обновлять события (Rails) - PullRequest
0 голосов
/ 21 января 2020

Я работаю над сайтом, на котором пользователи могут подписаться через веб-канал на канал календаря. События меняются ежедневно. Когда события обновляются / удаляются / создаются, их следует соответствующим образом синхронизировать в локальном календаре пользователя.

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

Как это работает на техническом уровне? Будет ли это работать с моим кодом ниже (если события меняются ежедневно в БД?)

Код (Rails):

Контроллер:

respond_to do |format|
      format.html
      format.ics do
        cal = Icalendar::Calendar.new
        cal.x_wr_calname = 'My Calendar'
        events.each do |event|
        cal.event do |e|
            e.dtstart     = event.start_time
            e.dtend       = event.end_time
            e.summary     = "Calendar #{Area.where(area_code: events.first.area_code).first.name}"
            e.description = "placeholder"
         end
        end
        cal.publish
        render plain: cal.to_ical
      end
    end

и в html

    <button class="btn-subscribe">
        <%= link_to 'SUBSCRIBE TO ICAL', area_show_url(protocol: :webcal, format: :ics, id: Area.find(@selected_area.id)) %>
      </button>

спасибо за помощь и время

1 Ответ

0 голосов
/ 17 февраля 2020

Как это работает:

Ваш веб-сайт создает фид календаря (в основном текстовый / календарный файл .ics, возможно, созданный в режиме реального времени из последних данных, без кэширования). Надеемся, что этот файл содержит действительные данные RFC5545 и, таким образом, показывает любые обновления событий, как указано в https://tools.ietf.org/html/rfc5545 (с использованием UID и SEQUENCE и LAST-MODIFIED для каждой модификации VEVENT)

Подписка на приложения будет проверять наличие любые обновления, как и когда их устраивает, как определено их собственными алгоритмами. Они анализируют файл .ics, обрабатывают определения событий RFC5545 и соответственно обновляют свои системы.

...