Capitalization routine
authorTim Pope <code@tpope.net>
Wed, 11 Aug 2004 00:04:07 +0000 (00:04 +0000)
committerTim Pope <code@tpope.net>
Wed, 11 Aug 2004 00:04:07 +0000 (00:04 +0000)
perl/sctweb

index 2e0d5409f5e9e01408eb57209a79af9728ad7771..49590ea07c871faf96ab177f082eed145ac8c7da 100755 (executable)
@@ -29,14 +29,21 @@ $ua->env_proxy;
 $ua->cookie_jar( {} );
 $ua->get("$url&tserve_tip_write=||WID&tserve_transconfig=astulog.cfg") or die "$!";
 $response = $ua->post("$url&tserve_trans_config=astulog.cfg", { tserve_tip_write => "%7C%7CWID%7CSID%7CPIN", SID => $opts{SID}, PIN => $opts{PIN} }) or die "$!";
-#print $response->content;
-#die "Site down.  Try again later.\n" if(length($response->content)<256);
 
 $response = $ua->get("$url&tserve_tip_write=||WID|SID|PIN|Term&tserve_trans_config=" . ("regterm.cfg"||"rgrdterm.cfg")); # Valid terms
 die $response->status_line unless $response->is_success;
 my @terms = grep {s/^<option value="([^"]*)">.*/$1/} (split( /\r\n/, $response->content));
 die "Site down. Try again later.\n" unless (@terms);
 
+sub capitalize {
+    local $_ = shift;
+    s/\b([A-Z])([A-Z]*)\b/$1\L$2/g;
+    s/\b(I)(i*)\b/$1\U$2/g;
+    s/\bUs\b/US/g;
+    s/ (Of|For|The) / \l$1 /g;
+    s/\b(Ma?c)([a-z])/$1u$2/g;
+    return $_;
+}
 sub get_schedule_terms {
     my @terms;
     my @localtime=localtime();
@@ -68,11 +75,13 @@ sub do_mhc_schedule {
        $te->parse($response->content);
     }
     print "# MHC school schedule\n";
+    print "# Autogenerated by sctweb ".localtime()."\n";
     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;
+           $row->[0] = capitalize($row->[0]);
            $row->[1] =~ s/([MTWRFS])/ $days{$1}/g;
            if($row->[2] =~ /^(\d\d):\d\d-(\d\d):\d\dPM$/) {
                $row->[2] =~ s/^(\d\d)/$1+12/e
@@ -81,12 +90,12 @@ sub do_mhc_schedule {
                $row->[2] =~ s/PM$//;
            } else { $row->[2] =~ s/AM$//; }
            $row->[3] =~ s/(\d\d)-(\d\d)-(\d\d)/20$3$1$2/g;
+           print "\n";
            print "X-SC-Subject: ", $row->[0], "\n";
            print "X-SC-Category: School\n";
            print "X-SC-Cond:", $row->[1], "\n"; # Space after colon not needed
            print "X-SC-Time: ", $row->[2], "\n";
            print "X-SC-Duration: ", $row->[3], "\n";
-           print "\n";
        }
     }
 }