From 7836a33bfac21cce90ab32169b066b52ba719407 Mon Sep 17 00:00:00 2001 From: Tim Pope Date: Sat, 4 Sep 2004 16:27:39 +0000 Subject: [PATCH] More MHC headers --- perl/sctweb | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/perl/sctweb b/perl/sctweb index 43e8236..d628285 100755 --- a/perl/sctweb +++ b/perl/sctweb @@ -10,7 +10,7 @@ use strict; use LWP::UserAgent; use HTML::TableExtract; #use Time::Local; -use Date::Calc::Object qw(Day_of_Week Decode_Day_of_Week Delta_Days); +use Date::Calc::Object qw(Day_of_Week Decode_Day_of_Week Week_of_Year Monday_of_Week Day_of_Week_Abbreviation Delta_Days Add_Delta_Days Gmtime Mktime); use Date::Calendar::Profiles qw($Profiles); use Date::Calendar::Year; use vars qw($ua %opts); @@ -27,6 +27,7 @@ if (-r $ENV{HOME} . "/.sctwebrc") { } close CONFIG; } +$url = $opts{'url'} if(defined($opts{'url'})); $ua = LWP::UserAgent->new; $ua->timeout(10); @@ -151,6 +152,7 @@ sub get_schedule { $row->[0] =~ s/.*launchWebCT\("([^"]*)"\).*/$1/s; $row->[0] =~ s/(.*)
(.*)/capitalize($2)/eg; $classid=$1; + $row->[2] = capitalize($row->[2]); $row->[2] =~ s/([A-Z]r?)$/$1./; ($begin, $end) = split("-", $row->[7]); if($row->[7] =~ /^(\d\d):\d\d-(\d\d):\d\dPM$/) { @@ -165,7 +167,7 @@ sub get_schedule { id => $classid, title => $row->[0], session => $row->[1], - instructor => capitalize($row->[2]), + instructor => $row->[2], credits => $row->[3], callnumber => $row->[4], gradetype => $row->[5], @@ -197,17 +199,6 @@ return ( ); } -sub print_mhc_header { -my $header .= join("\n", get_mhc_header) . "\n"; - if(defined($_[0])) { - open SCHEDULE, (">" . $_[0]); - print SCHEDULE $header; - close SCHEDULE; - } else { - print $header; - } -} - sub do_mhc_schedule { $| = 1; my %days = (M => "Mon", T => "Tue", W => "Wed", R => "Thu", F => "Fri", S => "Sat", U => "SU"); @@ -215,7 +206,6 @@ sub do_mhc_schedule { $file = shift unless (!defined $_[0] or $_[0] =~ /^\d/); @schedule = get_schedule(@_); @mhc = get_mhc_header; - #print_mhc_header($file); foreach my $row (@schedule) { map {s/\n/-/g if defined; $_} %$row; my $id=generate_id($row->{'id'}); @@ -234,6 +224,19 @@ sub do_mhc_schedule { $current .= "X-SC-Day: @day\n" if(exists $day[0]); $current .= "X-SC-Alarm: 20 minutes\n"; $current .= "X-SC-Record-Id: <".$row->{'id'}."\@from.sctweb>\n"; + if(defined($file) && (-d $file)) { + $row->{'instructor'} =~ s/(.*), (.*)/$2 $1 <$1\@from.sctweb>/; + $row->{'days'} =~ s/ .*$//; + $row->{'duration'} =~ /^(\d\d\d\d)(\d\d)(\d\d)-\d{8}$/; + my @date = Add_Delta_Days(Monday_of_Week(Week_of_Year + ($1,$2,$3)),Decode_Day_of_Week($row->{'days'})-1); + $row->{'begin'} =~ /^(\d\d):(\d\d)$/; + @date = Gmtime(Mktime(@date,$1,$2,0)); + my @mon = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec); + $current .= sprintf "Date: %s, %2d %s %4d %02d:%02d:00 +0000\n", Day_of_Week_Abbreviation($date[7]), $date[2], $mon[$date[1]-1], $date[0], $date[3], $date[4], $date[5]; + $current .= "Subject: " . $row->{'title'} . "\n"; + $current .= "From: " . $row->{'instructor'} . "\n"; + } #print "\n$current"; push @mhc, $current; } -- 2.30.2