commit:a19d3e2e6af47d5d613d96188e4bd15c0bf3aef0
author:Chip Black
committer:Chip Black
date:Fri Oct 17 02:19:00 2008 -0500
parents:0b8aeda739dd47b8ef99a23fc882d1354cb54523
Made ut-web nicer
diff --git a/omake/ut-web b/omake/ut-web
line changes: +44/-5
index d597c6f..873b9fb
--- a/omake/ut-web
+++ b/omake/ut-web
@@ -1,8 +1,12 @@
 #!/usr/bin/perl
 use Getopt::Long;
 use File::Basename;
+use File::Copy;
+use IPC::Open2;
 use strict;
 
+my $resources = '/home/yomiko/chip/programs/utunes/omake/webpack';
+
 my $name = 'Web Playlist';
 my $convopts = '';
 GetOptions(
@@ -16,8 +20,32 @@ sub url_escape {
 	return $s;
 }
 
+sub udb_snarf {
+	my %info;
+
+	my $pid = open2 \*UDB_OUT, \*UDB_IN, 'udb info';
+	print UDB_IN $_[0], "\n";
+	close UDB_IN;
+	while (<UDB_OUT>) {
+		$info{$1} = $2 if /^\t(\w+)\s+(.*)$/;
+	}
+	close UDB_OUT;
+	waitpid $pid, 0;
+
+	return \%info;
+}
+
+my $dir = shift;
+# Initialize a dir
+mkdir "$dir";
+for (<$resources/*>) {
+	copy $_, $dir;
+}
+chdir $dir;
+
 open PLAYLIST, ">playlist.xml";
 print PLAYLIST <<XML;
+<?xml version="1.0" encoding="UTF-8"?>
 <playlist version="1">
   <title>$name</title>
   <tracklist>
@@ -34,14 +62,19 @@ while (<STDIN>) {
 
 	print CONV "$_\n";
 
-	my $basename = basename $_;
-	(my $outname = $basename) =~ s/\.[^.]+$/\.mp3/;
+	my $name = basename $_;
+	(my $outname = $name) =~ s/\.[^.]+$/\.mp3/;
 	$outname = url_escape($outname);
 
+	# snarf some info
+	my $info = udb_snarf($_);
+	$name = $info->{title} if exists $info->{title};
+
 	print PLAYLIST <<XML;
     <track>
-      <title>$basename</title>
+      <title>$name</title>
       <location>$outname</location>
+      <annotation>$info->{artist}\n$info->{album}</annotation>
     </track>
 XML
 }
@@ -59,13 +92,19 @@ print INDEX <<HTML;
 <html>
 <head>
 <title>$name</title>
+<style type="text/css">
+body { margin: 0 }
+</style>
 </head>
 <body>
 <div id="container">YOU DON'T HAVE FLASH PLAYER, NIGGA</div>
 <script type="text/javascript" src="swfobject.js"></script>
 <script type="text/javascript">
-var so = new SWFObject("player.swf", "ply", "328", "200", "9", "#FFFFFF");
-so.addParam("Flashvars", "file=playlist.xml");
+var w = window.innerWidth.toString();
+var h = window.innerHeight.toString();
+var plh = window.innerHeight - 20;
+var so = new SWFObject("player.swf", "ply", w, h, "9", "#FFFFFF");
+so.addParam("Flashvars", "file=playlist.xml&height=0&playlist=bottom&repeat=list&playlistsize=" + plh);
 so.write("container");
 </script>
 </body>