diff options
Diffstat (limited to 'web/stream.gathering.org/pre-tg15/test.pl')
| -rwxr-xr-x | web/stream.gathering.org/pre-tg15/test.pl | 70 | 
1 files changed, 70 insertions, 0 deletions
diff --git a/web/stream.gathering.org/pre-tg15/test.pl b/web/stream.gathering.org/pre-tg15/test.pl new file mode 100755 index 0000000..3b440d5 --- /dev/null +++ b/web/stream.gathering.org/pre-tg15/test.pl @@ -0,0 +1,70 @@ +#!/usr/bin/perl -I /srv/streamlib +use warnings; +use strict; +use CGI; +use Geo::IP; +use NetAddr::IP; +use Net::IP; +# apt-get install libnet-ip-perl libnetaddr-ip-perl  +use HTML::Template; +use stream; +use stream::config; + +my $client = CGI->new; + +my $v4net = $stream::config::v4net; +my $v6net = $stream::config::v6net; +my $tg = $stream::config::tg; +my $tg_full = $stream::config::tg_full; +my %streams = %stream::config::streams; + +my $force_unicast = $client->param('forceunicast'); + +my $location = undef; + +print $client->header(); + +my $clip = $client->remote_addr(); +my $template = HTML::Template->new(filename => 'test.tmpl'); +my $is_local = &is_ip_local($clip, $v4net, $v6net); + +my @streams = &html_local_test(); +$template->param(TG => $tg); +$template->param(TG_FULL => $tg_full); +$template->param(STREAMS => \@streams); +print $template->output(); + + +sub html_local_test() { +	my @s = (); +	foreach my $name (sort { $streams{$a}->{priority} <=> $streams{$b}->{priority} } keys %streams) { +		my $title_link = "http://stream.tg$tg.gathering.org/stream.pl?delivery=%s&stream=${name}&interlaced=%s"; +		my $multicast_link = $streams{$name}->{has_multicast} ? "multicast" : "unicast"; +		$multicast_link = "unicast" if ($force_unicast == 1 || not $is_local); + +		if ($streams{$name}->{external}) { +			 $title_link = $streams{$name}->{url}; +		} else { +			$title_link = sprintf($title_link, $multicast_link, $streams{$name}->{interlaced}); +		} +		my %hash = ( +			'title_link' => $title_link, +			'title' => $streams{$name}->{title}, +			'source' => $streams{$name}->{source}, +			'quality' => $streams{$name}->{quality}, +			'location' => $streams{$name}->{location}, +			'type' => $streams{$name}->{type}, +			'delivery' => $multicast_link, +		); +		if ($multicast_link eq "multicast") { +			$hash{'is_multicast'} .= 1;  +			my $unicast_link = $title_link; +			$unicast_link=~s/multicast/unicast/g; +			$hash{'unicast_link'} .= $unicast_link; +		} +		$hash{'description'} .= $streams{$name}->{description} if exists($streams{$name}->{description}); +		push(@s, \%hash); + +	} +	return @s; +}  | 
