用AppleScript解析日历(ICS)



我很难破解这个。我已经将ICS文件读取到AppleScript中,我需要对其进行解析。这是我的代码

set calURL to "https://url.to.ics"
set calenderData to do shell script "curl " & calURL

数据读起来很好,但我需要解析它。我希望脚本读取数据之间的BEGIN:VEVENT和END:VEVENT为每个事件。我不知道如何做到这一点,但与foreach循环或什么?

这是我的考试日历样本。

<>之前开始:VCALENDAR版本:2.0X-WR-CALNAME: EksamenerX-WR-CALDESC:X-APPLE-CALENDAR-COLOR: # CC2B23FF开始:VEVENTUID: c96ef18c - 5 - d17 - 4170 - 8 c67 - 832 b7f90b464概要:TK 1100 Eksamen序列:0地点:DTSTART;价值=日期:20111213DTEND;价值=日期:20111214结束:VEVENT开始:VEVENTUID: bdbe0b4b - ff3d - 4245 b23f f1bf25f65998概要:DB 1100 Eksamen序列:0地点:DTSTART;价值=日期:20111006DTEND;价值=日期:20111007结束:VEVENT开始:VEVENTUID: 21261 af0 fda7 - 432 b - b513 cc3a9c04393d概要:PG 1100 Eksamen序列:0地点:DTSTART;价值=日期:20111216DTEND;价值=日期:20111217结束:VEVENT结束:VCALENDAR 之前

这与学校无关,我只是想解析数据以便在我的桌面(GeekTool)上查看。

您需要使用文本项分隔符。试试这个,看看你是否能理解它是如何工作的。

set theData to "BEGIN:VCALENDAR
VERSION:2.0
X-WR-CALNAME:Eksamener
X-WR-CALDESC:
X-APPLE-CALENDAR-COLOR:#CC2B23FF
BEGIN:VEVENT
UID:C96EF18C-5D17-4170-8C67-832B7F90B464
SUMMARY:TK 1100 Eksamen
SEQUENCE:0
LOCATION:
DTSTART;VALUE=DATE:20111213
DTEND;VALUE=DATE:20111214
END:VEVENT
BEGIN:VEVENT
UID:BDBE0B4B-FF3D-4245-B23F-F1BF25F65998
SUMMARY:DB 1100 Eksamen
SEQUENCE:0
LOCATION:
DTSTART;VALUE=DATE:20111006
DTEND;VALUE=DATE:20111007
END:VEVENT
BEGIN:VEVENT
UID:21261AF0-FDA7-432B-B513-CC3A9C04393D
SUMMARY:PG 1100 Eksamen
SEQUENCE:0
LOCATION:
DTSTART;VALUE=DATE:20111216
DTEND;VALUE=DATE:20111217
END:VEVENT
END:VCALENDAR"
set text item delimiters to "BEGIN:VEVENT"
set theEvents to text items of theData
set text item delimiters to "END:VEVENT"
set allEvents to {}
repeat with i from 2 to count of theEvents
    set theEvent to item i of theEvents
    set trimmedEvent to text item 1 of theEvent
    set end of allEvents to text 2 thru -2 of trimmedEvent -- you can do something here instead of collecting them in the list
end repeat
set text item delimiters to ""
return allEvents

相关内容

  • 没有找到相关文章

最新更新