From 44d82d684950fecaf8d3419fbe8e3f2130fa8c3f Mon Sep 17 00:00:00 2001 From: josch Date: Wed, 17 Oct 2007 19:14:34 +0000 Subject: [PATCH] initial version git-svn-id: http://yolanda.mister-muffin.de/svn@82 7eef14d0-6ed0-489d-bf55-20463b2d70db --- trunk/video.pl | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 trunk/video.pl diff --git a/trunk/video.pl b/trunk/video.pl new file mode 100644 index 0000000..b515fcd --- /dev/null +++ b/trunk/video.pl @@ -0,0 +1,71 @@ +require "include.pl"; +require "functions.pl"; + +#initialize session data +CGI::Session->name($session_name); +$query = new CGI; +$session = new CGI::Session; + +#check if query is set +if($query->param('id')) +{ + %page = (); + + #if a username is associated with session id, username is nonempty + $page->{'username'} = get_username_from_sid($session->id); + $page->{'locale'} = $locale; + $page->{'stylesheet'} = $stylesheet; + $page->{'xmlns:dc'} = $xmlns_dc; + $page->{'xmlns:cc'} = $xmlns_cc; + $page->{'xmlns:rdf'} = $xmlns_rdf; + + #connect to db + my $dbh = DBI->connect("DBI:mysql:$database:$dbhost", $dbuser, $dbpass) or die $dbh->errstr; + + #prepare query + my $sth = $dbh->prepare(qq{select title, caption, userid, timestamp from videos where id = ? }) or die $dbh->errstr; + + #execute it + $sth->execute($query->param('id')) or die $dbh->errstr; + + #get every returned value + while (my ($title, $caption, $userid, $timestamp) = $sth->fetchrow_array()) + { + #before code cleanup, this was a really obfuscated array/hash creation + push @{ $page->{'video'} }, + { + 'thumbnail' => ['./video-stills/225x150/4chan_city_mashup.png'], + 'rdf:RDF' => + { + 'cc:Work' => + { + 'rdf:about' => "./videos/".$query->param('id'), + 'dc:title' => [$title], + 'dc:date' => [$timestamp], + 'dc:publisher' => [get_username_from_id($userid)] + }, + 'cc:License' => + { + 'rdf:about' => 'http://creativecommons.org/licenses/GPL/2.0/' + } + } + }; + } + + #finish query + $sth->finish() or die $dbh->errstr; + + #close db + $dbh->disconnect() or die $dbh->errstr; + + #print xml http header along with session cookie + print $session->header(-type=>'text/xml'); + + #print xml + print XMLout($page, KeyAttr => {}, XMLDecl => $XMLDecl, RootName => 'page'); +} +else +{ + print $session->header(); + print "no query passed"; +}