diff --git a/trunk/README b/trunk/README index 4209a8c..3514cb1 100755 --- a/trunk/README +++ b/trunk/README @@ -1,7 +1,7 @@ -Yolanda - http://mister-muffin.de/proj +Yolanda - http://yolanda.mister-muffin.de/trac ======================================================= -A video content management using Perl for the backend and XML and XSLT for the frontend. Video playback is provided by Fluendo's Cortado applet. +A video content management system using Perl for the backend and XML and XSLT for the frontend. Video playback is provided by Fluendo's Cortado Java applet. Installation ============ diff --git a/trunk/images/cc/cc-unknown.png b/trunk/images/cc/cc-unknown.png new file mode 100644 index 0000000..c203de5 Binary files /dev/null and b/trunk/images/cc/cc-unknown.png differ diff --git a/trunk/images/cc/cc-unknown.xcf b/trunk/images/cc/cc-unknown.xcf new file mode 100644 index 0000000..02c9c78 Binary files /dev/null and b/trunk/images/cc/cc-unknown.xcf differ diff --git a/trunk/images/cc/no-endorse.png b/trunk/images/cc/no-endorse.png new file mode 100644 index 0000000..746dc85 Binary files /dev/null and b/trunk/images/cc/no-endorse.png differ diff --git a/trunk/images/logo-small.png b/trunk/images/logo-small.png index bca179e..147e125 100644 Binary files a/trunk/images/logo-small.png and b/trunk/images/logo-small.png differ diff --git a/trunk/locale/en-us.xml b/trunk/locale/en-us.xml index c6263a0..ed336ad 100755 --- a/trunk/locale/en-us.xml +++ b/trunk/locale/en-us.xml @@ -19,10 +19,16 @@ logout - © 2007 Yolanda team - license - download source code - report bug + © 2007 - 2008 Yolanda Team + + This software comes WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the license for details. + + view license + get source code + report bug + view this page as xml + Find diff --git a/trunk/man/yolanda b/trunk/man/yolanda new file mode 100644 index 0000000..191d7fa --- /dev/null +++ b/trunk/man/yolanda @@ -0,0 +1,47 @@ +.TH YOLANDA 7 2008-01-02 "" "Yolanda Video CMS Manual" + +.SH NAME +Yolanda Video CMS + +.SH SYNOPSIS +.B daemon.pl + +.B tagcloud.pl + +.B yolanda-upload.pl + +.SH DESCRIPTION +Yolanda is a WWW video content management system using a Perl backend and XML frontend. Video playback in Browser is provided by Fluendo's Cortado Java applet or media player plugins like those of +.B vlc(1) +or +.B mplayer(1). + +.SH OPTIONS +MOAR CONTENT. +.B CONTRIBUTE ! + +.SH FILES +AS I SAID: +.B CONTRIBUTE ! + +.SH CONFORMING TO +XHTML 1.0 Strict <-- we hope so +[[insert +.IB MOAR +standards here]] + +.SH NOTES +this man page is useless, as it was thrown together just to see if it would be easy to make a man page without +.B prior knowledge \*(Tm +. + +.SH BUGS +many. see http://yolanda.mister-muffin.de/trac + +Yolanda is full of bad programming, severely unsafe and not fit for general use. Use on hacker conferences like the Chaos Communication Congress is encouraged - but please, for the love of the invisible pink unicorn, submit tickets in our bug tracking system afterwards. + +.SH EXAMPLE +this will change often ( so i will just omit it ) + +.SH SEE ALSO +.B yolanda-upload (1) diff --git a/trunk/man/yolanda-upload b/trunk/man/yolanda-upload new file mode 100644 index 0000000..dd86d97 --- /dev/null +++ b/trunk/man/yolanda-upload @@ -0,0 +1,79 @@ +.TH YOLANDA-UPLOAD 1 2008-01-03 "" "Yolanda Video CMS Manual" + +.SH NAME +Yolanda Uploader \- command-line tool to upload videos to WWW sites running Yolanda Video CMS. + +.SH SYNOPSIS +.B yolanda-upload.pl +.RI [ options ] + +.SH DESRIPTION +This manual page documents briefly the \fByolanda-upload\fP command. +.PP +\fByolanda-upload\fP is a program that uploads a video file to a WWW site running Yolanda Video CMS. + +.SH OPTIONS +This program follows the usual GNU command line synthax, with long options starting with two dashes (`-'). A summary of options is included below. + +As of now, all options are mandatory. + +.SS General options: +.TP +.B \-u, \-\-username +Specify the username. This value will also be used for the publisher. +.TP +.B \-p, \-\-password +Specify the password. Lol insecure !!1 +.TP +.B \-f, \-\-file +Upload given video file. + +.SS Metadata options: +.B \-t, \-\-title +State the title of the video. +.TP +.B \-d, \-\-description +State a description of the video in natural language. +.TP +.B \-x, \-\-tags +Specify multiple tags, separated by spaces. +.TP +.B \-c, \-\-creator +Specify the creator of the video. +.TP +.B \-s, \-\-source +Specify the source of the video, preferably by URL. +.TP +.B \-l, \-\-language +Specify the language of the video, preferably conforming to ISO ???. +.TP +.B -\v, \-\-coverage +Specify the coverage of the video, e.g. "Berlin, December 2007" +.PP +( coverage should be -o, because -v usually is used for "verbose". ) + +.SH CONFORMING TO +[[insert +.IB MOAR +standards here]] + +.SH NOTES +this man page is useless, as it was thrown together just to see if it would be easy to make a man page without +.B prior knowledge \*(Tm +. + +.SH BUGS +many. see http://yolanda.mister-muffin.de/trac + +Yolanda-upload is full of bad programming, severely unsafe and not fit for general use. Use on hacker conferences like the Chaos Communication Congress is encouraged - but please, for the love of the invisible pink unicorn, submit tickets in our bug tracking system afterwards. + +.SH EXAMPLE +this will change often ( so i will just omit it ) + +.SH SEE ALSO +\fByolanda\fP(7) + +.SH AUTHOR +yolanda-upload was written by Johannes Schauer. +.PP +This manual page was written by Nils Moskopp for his own amusement (but may be used by others). diff --git a/trunk/site/main.xml b/trunk/site/main.xml index 176e5c0..edc1091 100755 --- a/trunk/site/main.xml +++ b/trunk/site/main.xml @@ -1,4 +1,4 @@ - + @@ -13,7 +13,7 @@ /login.pl?action=openid /login.pl?action=logout http://yolanda.mister-muffin.de/trac - http://www.fsf.org/licensing/licenses/agpl-3.0.html + /LICENSE http://yolanda.mister-muffin.de/trac/browser/trunk /register.pl http://yolanda.mister-muffin.de/trac/newticket diff --git a/trunk/style/default.css b/trunk/style/default.css index edc4923..9e2c526 100755 --- a/trunk/style/default.css +++ b/trunk/style/default.css @@ -67,12 +67,23 @@ div vertical-align: middle; } + div.commentform, + div.loginform, + div.registerform, + div.settingsform, + div.uploadform + { + line-height: 2.5em; + margin: 1.5em; + } + div.comments { } div.footer { + line-height: 2.5em; padding: 0.75em; } @@ -94,16 +105,6 @@ div vertical-align: bottom; } - div.loginform, - div.registerform, - div.settingsform, - div.uploadform, - div.commentform - { - line-height: 2.5em; - margin: 1.5em; - } - div.messagebox { border-color: #606060; diff --git a/trunk/tools/daemon.pl b/trunk/tools/daemon.pl index 1cbe39c..6468177 100755 --- a/trunk/tools/daemon.pl +++ b/trunk/tools/daemon.pl @@ -5,6 +5,7 @@ use DBI; use Digest::SHA; use File::Copy; +#TODO: put this into central configuration file $database = 'yolanda'; $dbhost = 'localhost'; $dbuser = 'root'; @@ -17,6 +18,7 @@ $root = '/var/www/yolanda'; $LOG = "$root/daemon.log"; +#TODO: maybe keep file open the whole time ? sub appendlog { if (open(FILE, ">>$LOG")) @@ -100,7 +102,7 @@ while(1) my ($resultid) = $sth->fetchrow_array(); $sth->finish() or interrupt $dbh->errstr; - #if so, then video is a duplicate + #if so, then video is a duplicate (alternatively ALL HAIL QUANTUM COMPUTING) if($resultid) { appendlog "id: $id", @@ -151,7 +153,7 @@ while(1) system "ffmpeg -i $root/tmp/$id -vcodec mjpeg -vframes 1 -an -f rawvideo -ss $thumbnailsec -s ".$tnwidth."x$tnheight $root/video-stills/$id"; - $vmaxheight = 240; + $vmaxheight = 640; #check if the upload already is in the right format and smaller/equal max-width/height if ($container eq 'ogg' and $video eq 'theora' and $audio eq 'vorbis' and $height <= $vmaxheight) @@ -170,13 +172,14 @@ while(1) else #encode video { #calculate video width + #TODO: ffmpeg only accepts values dividable by 8 !!! ( check that ) $vheight = $vmaxheight <= $height ? $vmaxheight : $height; $vwidth = int($vheight*($width/$height)/2 + .5)*2; $abitrate = 64; $vbitrate = int($filesize*8) / $duration + .5) - $abitrate; - #TODO: addmetadata information + #TODO: add metadata information system "ffmpeg2theora --optimize --videobitrate $vbitrate --audiobitrate $abitrate --sharpness 0 --width $vwidth --height $vheight --output $root/videos/$id $root/tmp/$id"; appendlog $id, $audio, $video, $vwidth, $vheight, $fps, $duration, $sha; @@ -190,6 +193,7 @@ while(1) $vheight, $fps, $sha, $id) or interrupt $dbh->errstr; #delete temp file + #TODO: use /tmp you insensitive clod ! unlink "$root/tmp/$id"; } @@ -201,6 +205,7 @@ while(1) } else { + TODO: maybe make this event-driven by using the kernels has-this-file-changed-interface ? sleep 10; } } diff --git a/trunk/tools/yolanda-upload.pl b/trunk/tools/yolanda-upload.pl index f5bcdbb..a61f264 100755 --- a/trunk/tools/yolanda-upload.pl +++ b/trunk/tools/yolanda-upload.pl @@ -11,7 +11,7 @@ sub preamble { } # set these values for default -l (login) and -p (pass) values -# +# TODO: lol configfile !!! use constant USER => ""; use constant PASS => ""; @@ -93,6 +93,7 @@ $ua = LWP::UserAgent->new(cookie_jar => {}); push @{$ua->requests_redirectable}, 'POST'; print "Getting sid cookie...\n"; +# DONT PRINT THIS - UNIX PHILOSPHY IS: IF IT WORKS DONT DISPLAY SHIT ! ( maybe add a -v switch ) $response = $ua->request(GET $url); unless($response->is_success) { @@ -101,6 +102,7 @@ unless($response->is_success) } print "Logging in to $url/login.pl...\n"; +# DONT PRINT THIS - UNIX PHILOSPHY IS: IF IT WORKS DONT DISPLAY SHIT ! ( maybe add a -v switch ) $response = $ua->request(POST "$url/login.pl", "Content_Type" => "form-data", "Content" => [action => login, user => test, pass => test]); unless($response->is_success) { @@ -113,6 +115,7 @@ unless($response->content =~ /action=logout/) } print "Uploading $opts{f} to $url/uploader.pl...\n"; +# DONT PRINT THIS - UNIX PHILOSPHY IS: IF IT WORKS DONT DISPLAY SHIT ! ( maybe add a -v switch ) $response = $ua->request(POST "$url/uploader.pl", "Content_Type" => "multipart/form-data", "Content" => [ @@ -132,3 +135,4 @@ unless($response->is_success) $response->status_line; } print "Done!\n"; +# DONT PRINT THIS - UNIX PHILOSPHY IS: IF IT WORKS DONT DISPLAY SHIT ! ( maybe add a -v switch ) diff --git a/trunk/xsl/xhtml.xsl b/trunk/xsl/xhtml.xsl index daf2a94..a891b3b 100755 --- a/trunk/xsl/xhtml.xsl +++ b/trunk/xsl/xhtml.xsl @@ -251,33 +251,45 @@