From 3f3fc5dd8fb6692464a261ebe2ea85bc762bec46 Mon Sep 17 00:00:00 2001 From: Graham Knop Date: Wed, 27 Jun 2007 15:18:49 +0000 Subject: [PATCH] Don't fail on importing iCal events with invalid timezones --- lib/WebGUI/Workflow/Activity/CalendarUpdateFeeds.pm | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/lib/WebGUI/Workflow/Activity/CalendarUpdateFeeds.pm b/lib/WebGUI/Workflow/Activity/CalendarUpdateFeeds.pm index 51c2df679..f6c2dd808 100755 --- a/lib/WebGUI/Workflow/Activity/CalendarUpdateFeeds.pm +++ b/lib/WebGUI/Workflow/Activity/CalendarUpdateFeeds.pm @@ -22,6 +22,7 @@ use base 'WebGUI::Workflow::Activity'; use WebGUI::Asset::Wobject::Calendar; use WebGUI::Asset::Event; use WebGUI::DateTime; +use DateTime::TimeZone; use LWP::UserAgent; @@ -210,8 +211,11 @@ sub execute { my ($year, $month, $day) = $date =~ /(\d{4})(\d{2})(\d{2})/; my ($hour, $minute, $second) = $time =~ /(\d{2})(\d{2})(\d{2})/; - my $tz = $events{$id}->{dtstart}->[0]->{tzid} || "UTC"; - + my $tz = $events{$id}->{dtstart}->[0]->{tzid}; + if (!$tz || !DateTime::TimeZone->is_valid_name($tz)) { + $tz = "UTC"; + } + ($properties->{startDate}, $properties->{startTime}) = split / /, WebGUI::DateTime->new( year => $year, @@ -245,7 +249,10 @@ sub execute { my ($year, $month, $day) = $date =~ /(\d{4})(\d{2})(\d{2})/; my ($hour, $minute, $second) = $time =~ /(\d{2})(\d{2})(\d{2})/; - my $tz = $events{$id}->{dtend}->[0]->{tzid} || "UTC"; + my $tz = $events{$id}->{dtend}->[0]->{tzid}; + if (!$tz || !DateTime::TimeZone->is_valid_name($tz)) { + $tz = "UTC"; + } ($properties->{endDate}, $properties->{endTime}) = split / /, WebGUI::DateTime->new(