- foreach $ts ($te->table_states) {
- foreach $row ($ts->rows) {
- map { s/\xa0//g; s/\n/-/g; $_} @$row;
- $row->[0] =~ s/.*launchWebCT\("([^"]*)"\).*/$1/s;
- $row->[0] =~ s/(.*) <BR>//g;
- my $classid=$1;
- $row->[0] = capitalize($row->[0]);
- $row->[1] =~ s/([MTWRFS])/ $days{$1}/g;
- $row->[1] =~ s/^ //;
- if($row->[2] =~ /^(\d\d):\d\d-(\d\d):\d\dPM$/) {
- $row->[2] =~ s/^(\d\d)/$1+12/e
- if($1 < $2);
- $row->[2] =~ s/-(\d\d)/"-".($1+12)/e;
- $row->[2] =~ s/PM$//;
- } else { $row->[2] =~ s/AM$//; }
- $row->[3] =~ s/(\d\d)-(\d\d)-(\d\d)/20$3$1$2/g;
- $row->[4] =~ s/ON CAMPUS-//g;
- $row->[4] =~ s/-/ /g;
- my @day = (off_for_holidays(@$row),off_for_exams(@$row));
- my $day = "";
- if(exists($day[0])) {
- $day = join(";", @day);
- $day =~ s/\b(\d{8})\b/$1T000000/g;
- }
- $row->[2] =~ s/://g;
- my ($starttime, $stoptime)=split(/-/, $row->[2]);
- my ($startdate, $stopdate)=split(/-/, $row->[3]);
- if(defined($file) && (-d $file)) {
- open FH, ">$file/$classid.vcs";
- select FH;
- print "BEGIN:VCALENDAR\r\nVERSION:1.0\r\n";
- }
- print "BEGIN:VEVENT\r\n";
- print "SUMMARY:", $row->[0], "\r\n";
- print "DESCRIPTION:", $classid, "\r\n";
- print "LOCATION:", $row->[4], "\r\n";
- print "CATEGORIES:Education\r\n";
- print "DTSTART:", $startdate."T".$starttime, "00\r\n";
- print "DTEND:", $startdate."T".$stoptime, "00\r\n";
- print "RRULE:W1 ", $row->[1] . " $stopdate", "T000000\r\n";
-
- print("EXDATE:$day\r\n") if($day);
- print "ATTENDEE;ROLE=OWNER;STATUS=CONFIRMED:", $opts{NAME}, "\r\n" if(defined($opts{NAME}));
- print "END:VEVENT\r\n";
- if(defined($file) && (-d $file)) {
- print "END:VCALENDAR\r\n";
- close FH;
- select STDOUT;
- }
+ foreach my $row (@schedule) {
+ map { s/\n/-/g; $_} %$row;
+ $row->{'days'} =~ s/([MTWRFS])/ $days{$1}/g;
+ $row->{'days'} =~ s/^ //;
+ $row->{'duration'} =~ s/(\d\d)-(\d\d)-(\d\d)/20$3$1$2/g;
+ my @day = (off_for_holidays(%$row),off_for_exams(%$row));
+ my $day = "";
+ if(exists($day[0])) {
+ $day = join(";", @day);
+ $day =~ s/\b(\d{8})\b/$1T000000/g;
+ }
+ my ($starttime, $stoptime)=($row->{'begin'}, $row->{'end'});
+ my ($startdate, $stopdate)=split(/-/, $row->{'duration'});
+ $starttime =~ s/://;
+ $stoptime =~ s/://;
+ if(defined($file) && (-d $file)) {
+ open FH, ">$file/" . $row->{'id'} . ".vcs" or die "$!";
+ select FH;
+ print "BEGIN:VCALENDAR\r\nVERSION:1.0\r\n";
+ }
+ print "BEGIN:VEVENT\r\n";
+ print "SUMMARY:", $row->{'title'}, "\r\n";
+ print "DESCRIPTION:", $row->{'id'}, "\r\n";
+ print "LOCATION:", $row->{'location'}, "\r\n";
+ print "CATEGORIES:Education\r\n";
+ print "DTSTART:", $startdate."T".$starttime, "00\r\n";
+ print "DTEND:", $startdate."T".$stoptime, "00\r\n";
+ print "RRULE:W1 ", $row->{'days'} . " $stopdate", "T000000\r\n";
+ print("EXDATE:$day\r\n") if($day);
+ print "ATTENDEE;ROLE=OWNER;STATUS=CONFIRMED:", $opts{NAME}, "\r\n" if(defined($opts{NAME}));
+ print "END:VEVENT\r\n";
+ if(defined($file) && (-d $file)) {
+ print "END:VCALENDAR\r\n";
+ close FH;
+ select STDOUT;