$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();
$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
$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";
}
}
}