From 44847614233fe3bee45782f952332b4c5c26e0c9 Mon Sep 17 00:00:00 2001 From: ivan Date: Thu, 19 Apr 2001 04:49:44 +0000 Subject: [PATCH 1/1] initial import --- index.cgi | 207 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ newindex.html | 134 +++++++++++++++++++++++++++++++++++++ template.html | 38 +++++++++++ 3 files changed, 379 insertions(+) create mode 100755 index.cgi create mode 100755 newindex.html create mode 100755 template.html diff --git a/index.cgi b/index.cgi new file mode 100755 index 0000000..959c22d --- /dev/null +++ b/index.cgi @@ -0,0 +1,207 @@ +#!/usr/bin/perl -w + +$template_file = "/home/ivan/radio/template.html"; + +use CGI; +use HTML::Table; +use Text::Template; + +%type2color = ( + 'upcoming' => '999966', + 'live' => 'ffffcc', + 'rebroadcast' => 'ffcc99', +); + +%shows = ( + 'high_jinx' => { + 'name' => 'High Jinx', + 'day' => 'sunday', + 'start' => '19', + 'len' => '3', + 'type' => 'upcoming', + 'startdate' => 'May 6th', + }, + 'high_jinx_rebroadcast' => { + 'name' => 'High Jinx', + 'day' => 'monday', + 'start' => '13', + 'len' => '3', + 'type' => 'upcoming', + 'startdate' => 'May 7th', + }, + 'dub_monday' => { + 'name' => 'Dub Monday', + 'day' => 'monday', + 'start' => '19.5', + 'len' => '2', + 'url' => 'http://www.voyager.org/sets', + 'type' => 'live', + }, + 'dub_monday_rebroadcast' => { + 'name' => 'Dub Monday', + 'day' => 'tuesday', + 'start' => '13', + 'len' => '2', + 'url' => 'http://www.voyager.org/sets', + 'type' => 'rebroadcast', + }, + 'organized_chaos' => { + #'name' => 'Organized
Chaos', + 'name' => 'Organized Chaos', + 'day' => 'wednesday', + 'start' => '20', + 'len' => '3', + 'url' => 'http://www.angelfire.com/rant/burf/oc.html', + 'type' => 'live', + }, + 'organized_chaos_rebroadcast' => { + #'name' => 'Organized
Chaos', + 'name' => 'Organized Chaos', + 'day' => 'thursday', + 'start' => '13', + 'len' => '3', + 'url' => 'http://www.angelfire.com/rant/burf/oc.html', + 'type' => 'rebroadcast', + }, + 'echo_communication_system' => { + #'name' => 'Echo
Communication
System', + #'name' => 'Echo Communication System', + 'name' => 'Echo Communication System', + 'day' => 'thursday', + 'start' => '19', + 'len' => '3', + 'url' => 'http://www.theoverworld.com/echo/', + 'type' => 'live', + }, + 'echo_communication_system__rebroadcast' => { + #'name' => 'Echo
Communication
System', + #'name' => 'Echo Communication System', + 'name' => 'Echo Communication System', + 'day' => 'friday', + 'start' => '13', + 'len' => '3', + 'url' => 'http://www.theoverworld.com/echo/', + 'type' => 'rebroadcast', + }, +); + +@times = qw( midnight 1am 2am 3am 4am 5am 6am 7am 8am 9am 10am 11am noon 1pm + 2pm 3pm 4pm 5pm 6pm 7pm 8pm 9pm 10pm 11pm ); +$increment = 0.5; +$showstart = 12; + +$cgi = new CGI; +if ( $cgi->param('showstart') =~ /^(\d+)$/ ) { + die unless $1 < 24; + $showstart = $1; +} + +@showtimes = @times[$showstart..23]; + +$template = new Text::Template ( TYPE => 'FILE', SOURCE => $template_file ) + or die "Can't create template for $template_file: $Text::Template::ERROR"; + +my $text = $template->fill_in() + or die "Can't fill in template for $template_file: $Text::Template::ERROR"; + +print $cgi->header, $text; + +# subroutines for the template + +sub table { + + my $rows = 1 + scalar(@showtimes)*(1/$increment); + #$rows += 10; + my $table = new HTML::Table($rows+20,8+2); +# $table->setBorder(0); + $table->setCellSpacing('0'); + $table->setCellPadding('1'); + + my $daycol=2; + foreach my $day ( map "${_}day", qw( Sun Mon Tues Wednes Thurs Fri Satur ) ) { + $table->setCell(1, $daycol, "${day}" ); + $table->setCellAlign(1, $daycol, 'CENTER'); + + my @dayshows = + sort { $shows{$a}{'start'} <=> $shows{$b}{'start'} } + grep { lc($shows{$_}{day}) eq lc($day) } keys %shows; + my $pshowrow = 2; + foreach my $show ( @dayshows ) { + + my $text = "$shows{$show}{name}"; + $text = qq($text) + if exists $shows{$show}{url}; + if ( $shows{$show}{type} eq 'upcoming' ) { + $text .= qq(
starts $shows{$show}{startdate}); + #$text .= '
starts May Xth'; + } + if ( $shows{$show}{type} eq 'live' ) { + $text .= "
LIVE "; + } + if ( $shows{$show}{type} eq 'rebroadcast' ) { + #$text .= "
rebroadcast "; + $text .= qq(
rebroadcast ); + } + if ( $shows{$show}{type} =~ /^(live|rebroadcast)$/ ) { + my $start = $shows{$show}{start}; + my $stext = $times[ $start ]; + $stext =~ s/([0-9])([ap]m)/$1:30$2/ if $start != int($start); + my $end = $shows{$show}{start} + $shows{$show}{len}; + my $etext = $times[$end]; + $etext =~ s/([0-9])([ap]m)/$1:30$2/ if $end != int($end); + #$text .= "$stext-$etext"; + $text .= qq($stext-$etext); + } + + my $showrow = 2 + (1/$increment) * ( $shows{$show}{start} - $showstart); + + if ( $pshowrow < $showrow ) { + #$table->setCell($pshowrow, $daycol, 'OFF THE AIR'. "($showrow/$pshowrow) ".($showrow-$pshowrow)); + $table->setCell($pshowrow, $daycol, 'OFF THE AIR'); + $table->setCellAlign($pshowrow, $daycol, 'CENTER'); + $table->setCellRowSpan( $pshowrow, $daycol, $showrow-$pshowrow ); + #$table->setCellRowSpan( $pshowrow, $daycol, 1 ); + $table->setCellBGColor( $pshowrow, $daycol, '89201b' ); + } + $table->setCell($showrow, $daycol, $text ); + $table->setCellAlign($showrow, $daycol, 'CENTER'); + $table->setCellBGColor($showrow, $daycol, + $type2color{$shows{$show}{type}}); + my $span = $shows{$show}{len} * (1/$increment); + $table->setCellRowSpan($showrow, $daycol, $span ); + + $pshowrow=$showrow+$span; + } + + if ( $pshowrow < $rows+1 ) { + #$table->setCell($pshowrow, $daycol, 'OFF THE AIR'. "($rows+1/$pshowrow) ".($rows+1-$pshowrow)); + $table->setCell($pshowrow, $daycol, 'OFF THE AIR'); + $table->setCellAlign($pshowrow, $daycol, 'CENTER'); + $table->setCellRowSpan( $pshowrow, $daycol, $rows+1-$pshowrow ); + #$table->setCellRowSpan( $pshowrow, $daycol, 2 ); + $table->setCellBGColor( $pshowrow, $daycol, '89201b' ); + } + + $daycol++; + } + + my $timerow = 2; + foreach my $time ( @showtimes ) { + my $text = $time; + $text = qq($text) if length($text) > 4; + $table->setCell( $timerow, 1, "$text" ); + $table->setCellAlign( $timerow, 1, 'CENTER' ); + $table->setCellRowSpan( $timerow, 1, 1/$increment ); + #$table->setCell( $timerow+1, 1, "$text:30" ); +# $table->setCell( $timerow+1, 1, " " ); +# $table->setCellAlign( $timerow+1, 1, 'CENTER' ); + $timerow += 1/$increment; + } + + local $^W=0; + my $html = $table->getTable; + $html =~ s///g; + return $html; +} + + diff --git a/newindex.html b/newindex.html new file mode 100755 index 0000000..8eb3e95 --- /dev/null +++ b/newindex.html @@ -0,0 +1,134 @@ + + +haze.st radio + + + + + + + + + + + + + + + + + + +
 
+ haze.st radio +
128k | 24k
mirror: 128k | 24k
+
 
chat: ICQ 113972341
 
all times US/Pacific
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SundayMondayTuesdayWednesdayThursdayFridaySaturday
midnightOFF
THE
AIR
OFF
THE
AIR
OFF
THE
AIR
OFF
THE
AIR
OFF
THE
AIR
OFF
THE
AIR
OFF
THE
AIR
1am
2am
3am
4am
5am
6am
7am
8am
9am
10am
11am
noon
1pmHigh Jinx
starts May 7th
Organized
Chaos

rebroadcast 1pm-4pm
Echo
Communication
System

rebroadcast 1pm-4pm
2pm
3pm
4pmOFF
THE
AIR
OFF
THE
AIR
OFF
THE
AIR
5pm
6pm
7pmHigh Jinx
starts May 6th
Echo
Communication
System

LIVE 7pm-10pm
8pmOrganized
Chaos

LIVE 8pm-11pm
9pm
10pmOFF THE AIROFF THE AIR
11pmOFF THE AIR
+
+ + + + + + diff --git a/template.html b/template.html new file mode 100755 index 0000000..5f2ca0d --- /dev/null +++ b/template.html @@ -0,0 +1,38 @@ + + +haze.st radio + + + + + + + + + + + + + + + + + +
 
+ haze.st radio +
128k | 24k
mirror: 128k | 24k
+
 
all times US/Pacific
 
+{ table(); } +
+ + + + + + + + + -- 2.11.0