#!/usr/bin/perl -w

# Author: Jarle Bjørgeengen
# Date: 2009-03-01
# License: GNU General Public license

# Script for å levere inkeltvideoer basert på $Id
# 
# http://wiki.nuug.no/grupper/video/pubfrikanalen

use strict;
use warnings;

use XML::Simple;
use CGI qw/:standard/;

binmode STDOUT, ":utf8";

my $query = new CGI;
my $nuug_frikanalen_url = 'http://www.nuug.no/pub/video/frikanalen/';
my $videoid = $query->param("videoId");
my $playlist = $query->param("playlist");
my $lengde;

my $metainfo = "/home/ftp/pub/video/frikanalen/meta.xml";
my $ref = XMLin($metainfo);

my $id = "id_$videoid";
my $duration = $ref->{$id}->{'Length'};
if (! exists  $ref->{$id} ) {
    print STDERR "Unable to look up $id\n";
}
my $title = $ref->{$id}->{Title};
my $description = $ref->{$id}->{Description};
my $length = int($ref->{$id}->{Length});
my $seconds = ($length%60);
my $minutes = int(($length%3600)/60);
my $hours = int($length/3600);
my $date = $ref->{$id}->{UploadDate};
$date =~ s/T.+$//;
my $ogvurl = $ref->{$id}->{ogvUri};
my $wmvurl = $ref->{$id}->{VideoUri};
my $playlisturl = $nuug_frikanalen_url . url(-relative=>1) . "?playlist=$videoid.m3u" ;
my $imageuri = $ref->{$id}->{'ImageUri'};

if ($hours) {
    $lengde = (sprintf('%2dt %2dm',$hours,$minutes));
} else {
    $lengde = (sprintf('%2dm %2ds', $minutes, $seconds));
}

if ($playlist) {
    $playlist =~ /(^.+)\.m3u/;
    my $id = "id_$1";
    my $ogvurl = $ref->{$id}->{ogvUri};
    print "Content-type: audio/x-mpegurl\n\n";
    print "$ogvurl";  
    exit 0;
} else {

    print "Content-type: text/html; charset=UTF-8\n\n";

    print <<"EOF";
    <!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
	<html>
	<head>

	<title>Frikanalen: $title</title>
	<link rel="stylesheet" href="/nuug.css" type="text/css">
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	</head>
	<body>
	<h1>$title</h1>
	<p>$description</p>
	<applet code="com.fluendo.player.Cortado.class"
	archive="http://www.nuug.no/tools/cortado-unsigned.jar"
	width="640" height="320">
	<param name="url" value="$ogvurl"/>
	<param name="local" value="false"/>
	<param name="showStatus" value="show"/>
	<param name="bufferSize" value="500"/>
	<param name="duration" value="$duration"/>
	<param name="keepaspect" value="true"/>
        <img src="$imageuri" width="640" height="320" border="0" alt="preview">
	</applet><p>
	<table cellpadding=5>
	<tr><td>Lengde:</td><td> $lengde </td></tr>
	<tr><td>Dato:</td><td> $date </td></tr>
	</table>
	<p>Dersom du ikke ser noe video på denne siden, har du en nettleser uten fungerende java-støtte. Følgende lenker kan benyttes dersom dette er tilfelle, eller du ønsker mere kontroll på søking (playlist url) eller laste ned hele filen (Ogg Theora) . Vi har også lagt inn direktelink til Windows Media url på frikanalen sin side. 
	<p>Video URLs:
	<br><a href="$playlisturl">Playlist url (m3u) </a>for ekstern avspiller. <a href="http://www.videolan.org">(VLC fungerer  godt på alle platformer .)</a>
	<br><a href="$ogvurl">Ogg Theora</a>
	<br><a href="$wmvurl">Windows Media</a>
	<br><a href="frontpage.cgi">Tilbake</a>
	</p>
	</body>
	</html>
EOF
}
