gothi<?php
 
 
/**
 
 * $Id: playlist.php 1631 2007-05-12 22:40:28Z matthieu $
 
 */
 
if (!defined('__CLASS_PATH__')) {
 
    define('__CLASS_PATH__', realpath(dirname(__FILE__) . '/../'));
 
}
 
require_once __CLASS_PATH__ . '/Autoload.php';
 
/**
 
 * @package playlist
 
 * this script allow browsing hard drive from mp3 and create playlist with
 
 * result
 
 *
 
 * args:  path to mp3
 
 * for better results: this script is a test script, just for
 
 * showing how works class_playlist.php
 
 * you need to use this script to have sort your mp3 in the following way:
 
 * path parameters => bandname => albumname
 
 *
 
 * this script will:
 
 * - test paramters
 
 * - delete all playlist in $config['file']['playlistfile'] folders
 
 * - browser path paramters and get list of mp3
 
 * - create playlist for each path
 
 *
 
 * warning : if you have more than 300 subfolders, you can exceed the
 
 * max_execution time parameters
 
 * increase this value if you have a max_execution_time error
 
 *
 
 * for bugs, http://www.phplibrairies.com
 
 *
 
 * this product is under GPL licence, please see copy of this licence for
 
 * furthers details
 
 *
 
 * latest version at http://www.phplibrairies.com
 
 */
 
@ set_time_limit(0);
 
error_reporting(E_ALL);
 
// config arrays
 
$debug = Debug_Console :: getInstance();
 
define('__SYNTAX__', 'playlist.php /path/to/mp3/files /playlist/destination/folder');
 
define('__CONFIG_PLAYLIST_FILES__', 'pls:m3u:b4s');
 
define('__CONFIG_AUDIO_FILES__', 'mp3:mpc:wma');
 
define('__ERR_CODE_BAD_SYNTAX__', 1);
 
define('__ERR_CODE_BAD_SOURCE_FOLDER__', 3);
 
define('__ERR_CODE_BAD_DEST_FOLDER__', 4);
 
 
$config['file']['playlistfiles'] = explode(';', __CONFIG_PLAYLIST_FILES__);
 
//------------------
 
// checks parameters
 
//------------------
 
if ($_SERVER['argc'] != 3) {
 
    $debug->showErrorMessage('Expecting at least the mp3 source folder and the destination folder');
 
    $debug->showFatalMessage(__SYNTAX__, __ERR_CODE_BAD_SYNTAX__);
 
}
 
define('__PARAM_PLAYLIST_DESTINATION_FOLDER__', $_SERVER['argv'][2]);
 
define('__PARAM_MP3_ROOT_PATH__', $_SERVER['argv'][1]);
 
 
/**
 
 * Check that parameters paths are valid folders
 
 */
 
if (!is_dir(__PARAM_PLAYLIST_DESTINATION_FOLDER__)) {
 
    $debug->showErrorMessage('Your playlist destination folder [' . __PARAM_PLAYLIST_DESTINATION_FOLDER__ . '] is not a valid folder');
 
    $debug->showFatalMessage(__SYNTAX__, __ERR_CODE_BAD_DEST_FOLDER__);
 
}
 
 
if (!is_dir(__PARAM_MP3_ROOT_PATH__)) {
 
    $debug->showErrorMessage(__PARAM_MP3_ROOT_PATH__ . 'isn\'t a valid folder');
 
    $debug->showFatalMessage(__SYNTAX__, __ERR_CODE_BAD_SOURCE_FOLDER__);
 
}
 
//--------------------------------------
 
// Delete folders where are the playlist
 
//--------------------------------------
 
$dir_playlist = new Files_DirectoryListing(__PARAM_PLAYLIST_DESTINATION_FOLDER__);
 
$aFile_playlist = $dir_playlist->LIST_files('--e ' . implode(',', explode(':', __CONFIG_PLAYLIST_FILES__)));
 
 
foreach ($aFile_playlist as $id => $sPath) {
 
    (!@ unlink($sPath)) ? $debug->showWarningMessage('cannot delete [' . $sPath . ']') : $debug->showMessage("DELETE : clean [$sPath] succefully");
 
}
 
//----------------------------------------------
 
// get the list of folders in the source folders
 
//----------------------------------------------
 
$directory = new Files_DirectoryListing(__PARAM_MP3_ROOT_PATH__);
 
if ($directory->DATA_errors_size()) {
 
    $debug->showErrorMessage('wrong source folder');
 
}
 
$aBand = $directory->LIST_directories();
 
// foreach Band Name
 
foreach ($aBand as $key => $sFolder) {
 
    // get all the album name
 
    $dir_band = new Files_DirectoryListing($sFolder);
 
    if (!$dir_band->DATA_errors_size()) {
 
        $aAlbums = $dir_band->LIST_directories();
 
        // foreach album name
 
        foreach ($aAlbums as $key_album => $sPath_album) {
 
            $debug->showDebugMessage("processing $sPath_album");
 
            // create playlist for the album name
 
            $aSubdirs = explode('/', $sPath_album);
 
            $aBandname = $aSubdirs[(count($aSubdirs) - 2)];
 
            $aAlbumname = $aSubdirs[(count($aSubdirs) - 1)];
 
            try {
 
                $playlist = new Audio_Playlist($sPath_album, $aBandname, __PARAM_PLAYLIST_DESTINATION_FOLDER__ . '/' . $aBandname . "-" . $aAlbumname . ".m3u", explode(':', __CONFIG_AUDIO_FILES__));
 
            }
 
            catch (Audio_Playlist_Exception $e) {
 
                echo $e;
 
            }
 
        } //foreach
 
    } //else
 
    unset ($dir_band);
 
} //foreach
 
?>
 
 |