#!/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(
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>
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
}
<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>