gpt4 book ai didi

ruby-on-rails - 罗 : Import of a ics file

转载 作者:数据小太阳 更新时间:2023-10-29 08:28:16 25 4
gpt4 key购买 nike

我在我的项目中添加了导入日历(ics 文件)的功能。代码是这样的:

  events = ICS::Event.file(File.open(ics_temp_file))
events.each do |event|
if event.summary and event.started_on and event.description
Event.create(:description => event.description == '\n' ? nil : event.description,
:organization_id => @organization.id,
:user_id => current_user.id,
:event_type => Event::OTHER,
:date_time => event.started_on,
:title => event.summary,
:active => true)
else
logger.warn("***Error*** Importing ics (bad event)")
end
end

如我们所见,我正在使用 gem ics。几个月前我进行了研究,它看起来像是配对 ics 文件的最佳选择,即提取 ics 文件的事件。这个 gem 可以像这样提取事件:

BEGIN:VEVENT
something here
END:VEVENT.

问题如下;一些用户试图导入日历(我不知道他们用什么工具创建日历)但是事件是这样的:

BEGIN:VFREEBUSY
something here
END:VFREEBUSY.

所以提示是,您知道解析 ics 文件的更好替代方法吗?也许可以提取所有类型的事件,你可以做类似的事情events.map(&:vevents) 或 events.map(&:vfreebusy)。你有什么想法来处理这个吗?谢谢!

编辑:抱歉,我忘了说这个 gem 的已知属性列表是这个

    TRANSP
DTEND
UID
DTSTAMP
LOCATION
DESCRIPTION
URL
STATUS
SEQUENCE
SUMMARY
DTSTART
CREATED
# For the alarm…
# BEGIN:VALARM (ignored)
X-WR-ALARMUID
TRIGGER
ATTACH
ACTION
# END:VALARM (ignored)

因此很容易看出为什么这个 gem 没有提取所有类型的事件。

最佳答案

您应该试试 iCalendar:https://github.com/sdague/icalendar .它解析 ics 文件并支持您提到的事件类型:https://github.com/sdague/icalendar/blob/master/lib/icalendar/parser.rb#L139 .

关于ruby-on-rails - 罗 : Import of a ics file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12454860/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com