Ejemplo n.º 1
0
 function generateStats()
 {
     $stats = array();
     if ($this->getLevel() == 0) {
         $pathstring = "";
         $fullpathstring = "";
     } else {
         $pathstring = "path LIKE '" . jz_db_escape($this->getPath("String")) . "/%' AND ";
         $fullpathstring = "WHERE path LIKE '" . jz_db_escape($this->getPath("String")) . "/%'";
     }
     $link = jz_db_connect();
     $results = jz_db_query($link, "SELECT sum(filesize) FROM jz_tracks WHERE {$pathstring} filesize != '-' AND filesize > 0");
     $stats['total_size'] = $results->data[0][0];
     $results = jz_db_query($link, "SELECT sum(length) FROM jz_tracks WHERE {$pathstring} length != '-' AND length > 0");
     $stats['total_length'] = $results->data[0][0];
     $results = jz_db_query($link, "SELECT count(*) FROM jz_tracks {$fullpathstring}");
     $stats['total_tracks'] = $tracks = $results->data[0][0];
     $results = jz_db_query($link, "SELECT avg(bitrate) FROM jz_tracks WHERE {$pathstring} bitrate != '-' AND bitrate > 0");
     $stats['avg_bitrate'] = round($results->data[0][0], 2);
     $results = jz_db_query($link, "SELECT avg(length) FROM jz_tracks WHERE {$pathstring} length != '-' AND length > 0");
     $stats['avg_length'] = round($results->data[0][0], 0);
     $results = jz_db_query($link, "SELECT avg(filesize) FROM jz_tracks WHERE {$pathstring} filesize != '-' AND filesize > 0");
     $stats['avg_size'] = round($results->data[0][0], 2);
     $results = jz_db_query($link, "SELECT avg(year) FROM jz_tracks WHERE {$pathstring} year != '-' AND year > 1000");
     $stats['avg_year'] = round($results->data[0][0], 2);
     $str = "";
     // stringize stuff:
     $stats['avg_length_str'] = stringize_time($stats['avg_length']);
     $stats['total_length_str'] = stringize_time($stats['total_length']);
     $stats['total_size_str'] = stringize_size($stats['total_size']);
     if (($d = distanceTo('genre', $this)) !== false) {
         $stats['total_genres'] = $this->getSubNodeCount('nodes', $d);
     } else {
         $stats['total_genres'] = 0;
     }
     if (($d = distanceTo('artist', $this)) !== false) {
         $stats['total_artists'] = $this->getSubNodeCount('nodes', $d);
     } else {
         $stats['total_artists'] = 0;
     }
     if (($d = distanceTo('album', $this)) !== false) {
         $stats['total_albums'] = $this->getSubNodeCount('nodes', $d);
     } else {
         $stats['total_albums'] = 0;
     }
     // nodes at track level are disks.
     if (($d = distanceTo('track', $this)) !== false) {
         $stats['total_disks'] = $this->getSubNodeCount('nodes', $d);
     } else {
         $stats['total_disks'] = 0;
     }
     $this->stats = $stats;
     return $stats;
 }
Ejemplo n.º 2
0
 /**
  * Creates all of our statistics.
  * 
  * @author Ben Dodson
  * @version 11/16/04
  * @since 11/16/04
  * @param $string specifically what to return, defaults to everything
  */
 function generateStats($return = false)
 {
     $stats = array();
     // have to do it...
     $elements = $this->getSubNodes("tracks", -1);
     $length = $size = $bitrate = $year = $yearc = $lengthc = $brc = $sizec = $tracks = 0;
     foreach ($elements as $track) {
         $tracks++;
         $meta = $track->getMeta();
         if ($meta['length'] != '-' && $meta['length'] > 0) {
             $length += $meta['length'];
             $lengthc++;
         }
         if ($meta['size'] != '-' && $meta['size'] > 0) {
             $size += $meta['size'];
             $sizec++;
         }
         if ($meta['year'] != '-' && $meta['year'] > 1000) {
             $year += $meta['year'];
             $yearc++;
         }
         if ($meta['bitrate'] != '-' && $meta['bitrate'] > 0) {
             $bitrate += $meta['bitrate'];
             $brc++;
         }
     }
     if ($tracks == 0) {
         return false;
     }
     $stats['total_size'] = $size;
     $stats['total_length'] = $length;
     $stats['total_tracks'] = $tracks;
     $stats['avg_bitrate'] = @round($bitrate / $brc, 2);
     $stats['avg_length'] = @round($length / $lengthc, 0);
     $stats['avg_size'] = @round($size / $sizec, 2);
     $stats['avg_year'] = @round($year / $yearc, 2);
     $str = "";
     // stringize stuff:
     $stats['avg_length_str'] = stringize_time($stats['avg_length']);
     $stats['total_length_str'] = stringize_time($stats['total_length']);
     $stats['total_size_str'] = stringize_size($stats['total_size']);
     // Now did we want to return something specific
     if ($return) {
         return $stats[$return];
     }
     if (($d = distanceTo('genre', $this)) !== false) {
         $stats['total_genres'] = $this->getSubNodeCount('nodes', $d);
     } else {
         $stats['total_genres'] = 0;
     }
     if (($d = distanceTo('artist', $this)) !== false) {
         $stats['total_artists'] = $this->getSubNodeCount('nodes', $d);
     } else {
         $stats['total_artists'] = 0;
     }
     if (($d = distanceTo('album', $this)) !== false) {
         $stats['total_albums'] = $this->getSubNodeCount('nodes', $d);
     } else {
         $stats['total_albums'] = 0;
     }
     // nodes at track level are disks.
     if (($d = distanceTo('track', $this)) !== false) {
         $stats['total_disks'] = $this->getSubNodeCount('nodes', $d);
     } else {
         $stats['total_disks'] = 0;
     }
     $this->stats = $stats;
 }