Hi All,

I'm putting together a playlist for a dinner party, and I need to know
the duration of the playlist. The web interface doesn't seem to have a
feature to show the duration, so I've put together a PHP script to do
the job.

I run my slim using MySql rather than the standard "DBLite" (?) stuff,
so this will only work with MySql. Also, it's geared towards the design
of my own site. Therefore my only reason for posting it here is in case
other people whnt to do something similar. Hopefully somebody else can
find it useful.

Jim


Code:
--------------------
    
  <?php
  
  function secs_to_hhmmss ($secs) 
  { 
        // reset hours, mins, and secs we'll be using 
        $hh = 0; 
        $mm = 0; 
        $ss = 0; 
  
        if ($secs > 3600)
        {
                $hh = (int) floor ($secs / 3600);
                $secs -= ($hh * 3600);
        }
  
        if ($secs > 60)
        {
                $mm = (int) floor ($secs / 60);
                $secs -= ($mm * 60);
        }
  
        $ss = $secs;
  
        // Now format a string
        $h = ($hh < 10) ? "0" . $hh : $hh; 
  $m = ($mm < 10) ? "0" . $mm : $mm; 
  $s = ($ss < 10) ? "0" . $ss : $ss; 
  
  return ("$h:$m:$s"); 
  } 
  
  
  // Connect and select the database
  // Do this however you would normally do it, I use a bespoke class
  
  $DetailID = isset($_GET['DetailID']) ? $_GET['DetailID'] : NULL;
  
  ?>
  <HTML>
        <HEAD>
                <TITLE>Slimserver Playlist Information</TITLE>
        </HEAD>
        <BODY bgcolor="#FFFFFF" text="#000000" 
background="../Site/Img/Background.jpg">
                <TABLE width="50%" border="1" align="center">
                        <TR>
                                <TH colspan="3">Slimserver Playlist 
Information</TH>
                        </TR>
                        <TR>
                                <TD colspan="3">&nbsp;</TD>
                        </TR>
                        <TR>
                                <TH>
                                        Playlist Name
                                </TH>
                                <TH>
                                        Tracks
                                </TH>
                                <TH>
                                        Duration
                                </TH>
                        </TR>
  
                        <?php
                        // Build a list of all the playlists
                        $sql = "SELECT DISTINCT(playlist) AS PlayListID FROM 
playlist_track";
                        $playlistresult = mysql_query($sql) or die('Query 
failed : ' . mysql_error());
                        while ($playlistrow = 
mysql_fetch_array($playlistresult, MYSQL_ASSOC))
                        {
                                $PlayListID = $playlistrow['PlayListID'];
  
                                // Extract the playlist name
                                $sql = "SELECT title AS PlayListTitle FROM 
tracks WHERE id = $PlayListID";
                                $result = mysql_query($sql) or die('Query 
failed : ' . mysql_error());
                                $row = mysql_fetch_array($result, MYSQL_ASSOC);
                                $PlayListTitle = $row['PlayListTitle'];
  
                                // Extract the track count and playlist duration
                                $sql = "SELECT (SUM(secs)) AS TotalSecs, 
COUNT(id) AS TrackCount FROM tracks WHERE id IN (SELECT track FROM 
playlist_track WHERE playlist=$PlayListID)";
                                $result = mysql_query($sql) or die('Query 
failed : ' . mysql_error());
                                $row = mysql_fetch_array($result, MYSQL_ASSOC);
                                $TotalSecs = $row['TotalSecs'];
                                $TrackCount = $row['TrackCount'];
  
                                $FormattedSecs = secs_to_hhmmss($TotalSecs);
                                ?>
                                <TR>
                                        <TD>
                                                <A 
href="<?=$_SERVER['PHP_SELF']?>?DetailID=<?=$PlayListID?>"><?= $PlayListTitle 
?></A>
                                        </TD>
                                        <TD>
                                                <?= $TrackCount ?>
                                        </TD>
                                        <TD>
                                                <?= $FormattedSecs ?>
                                        </TD>
                                </TR>
                                <?php
                        }
                        ?>
                </TABLE>
  
                <?php
                // Show a detailed list?
                if ($DetailID != NULL)
                {
                        ?>
                        <BR>
                        <TABLE border="1" align="center">
                                <TR>
                                        <TH>
                                                Track
                                        </TH>
                                        <TH>
                                                Title
                                        </TH>
                                        <TH>
                                                Album
                                        </TH>
                                        <TH>
                                                Artist
                                        </TH>
                                        <TH>
                                                Duration
                                        </TH>
                                </TR>
                                <?php
                                $sql = "SELECT playlist_track.id AS TrackID, 
tracks.title AS TrackTitle, albums.title AS AlbumTitle, contributors.name AS 
ArtistName, tracks.secs AS Duration"
                                                . " FROM playlist_track, 
tracks, albums, contributors"
                                                . " WHERE playlist_track.track 
= tracks.id AND tracks.album = albums.id AND albums.contributor = 
contributors.id"
                                                . " AND playlist_track.playlist 
= '$DetailID'"
                                                . " ORDER BY 
playlist_track.position";
  
                                $detailresult = mysql_query($sql) or die('Query 
failed : ' . mysql_error());
                                while ($detailrow = 
mysql_fetch_array($detailresult, MYSQL_ASSOC))
                                {
                                        $TrackID = $detailrow['TrackID'];
                                        $TrackTitle = $detailrow['TrackTitle'];
                                        $AlbumTitle = $detailrow['AlbumTitle'];
                                        $ArtistName = $detailrow['ArtistName'];
                                        $Duration = 
secs_to_hhmmss($detailrow['Duration']);
                                        ?>
                                        <TR>
                                                <TD>
                                                        <?= $TrackID ?>
                                                </TD>
                                                <TD>
                                                        <?= $TrackTitle ?>
                                                </TD>
                                                <TD>
                                                        <?= $AlbumTitle ?>
                                                </TD>
                                                <TD>
                                                        <?= $ArtistName ?>
                                                </TD>
                                                <TD>
                                                        <?= $Duration ?>
                                                </TD>
                                        </TR>
                                        <?php
                                }
  
                                ?>
                        </TABLE>
                        <?php
                }
                ?>
  
                <TABLE border="1" align="center">
                        <TR>
                                <TD colspan="2" align="center">
                                        <B><A href="/admin/">Main Menu</A></B>
                                </TD>
                        </TR>
                </TABLE>                
  
        </BODY>
  </HTML>
  
  
--------------------


-- 
jimwillsher
------------------------------------------------------------------------
jimwillsher's Profile: http://forums.slimdevices.com/member.php?userid=410
View this thread: http://forums.slimdevices.com/showthread.php?t=20992

_______________________________________________
Discuss mailing list
Discuss@lists.slimdevices.com
http://lists.slimdevices.com/lists/listinfo/discuss

Reply via email to