diff --git a/AudioVideoHandler.php b/AudioVideoHandler.php index 7e7bc0d..40b886b 100644 --- a/AudioVideoHandler.php +++ b/AudioVideoHandler.php @@ -9,34 +9,49 @@ class AudioVideoHandler echo "[INFO] Fetching directories..."; $this->directories = glob( DOWNLOAD_PATH . '/*', GLOB_ONLYDIR ); echo "OK\n"; + artistChoose: + $artist = readline( "Artist: " ); + if( $artist === 'exit' ) + { + return; + } - $dir = realpath( DOWNLOAD_PATH . '/' . readline( "Artist: " ) ); + $dir = realpath( DOWNLOAD_PATH . '/' . $artist ); $dir = str_replace( "\\", '/', $dir ); - echo "[INFO] Loading results...\n"; - echo $dir; + echo "[INFO] Loading results..."; + + $matches = 0; + $index = 0; + $_found = ''; foreach ( $this->directories as $index => $_dir ) { - if ( ( $lev = levenshtein( $_dir, $dir ) ) < 3 ) { - echo "[MATCH#$lev] Did you mean: $_dir? [$index]\n"; + $_found .= "$index | $_dir\n"; $matches++; } #echo $lev . "\n"; } + echo "OK\n"; if ( $matches === 0 ) { echo "[INFO] No matches found!\n"; - return; + goto artistChoose; } - $index = readline( "Name the index-number: " ); + indexChoose: + if( $matches > 1 ) + { + echo "[FOUND] $matches are found!\nIndex | Artist\n"; + echo $_found; + $index = readline( "Name the index-number: " ); + } if ( isset( $this->directories[$index] ) === false ) { echo "[ERROR] Index is invalid!\n"; - return; + goto indexChoose; } $dir = $this->directories[$index]; @@ -48,37 +63,61 @@ class AudioVideoHandler if ( count( $files ) < 1 ) { echo "[WARNING] Directory $dir is empty!\n"; - return; + goto artistChoose; } - $_titleOrFull = readline( "Do you want to download all songs or just an explicit title?[A/t]: " ); - if ( stripos( $_titleOrFull, 't' ) !== false ) + echo "[INFO] " . count($files) . " songs found."; + $_titleOrFull = readline( "Do you want to download all songs or just an specific title?[A/t]: " ); + if ( stripos( $_titleOrFull, 't' ) !== false || stripos( $_titleOrFull, 'title' ) !== false ) { echo "\n"; // Only one - $song = readline( "Enter the Song name: " ); + songChoose: + $song = readline( "Enter the Song name('list' to list): " ); + if( $song === 'exit' ) + { + return; + } + if( $song === 'list' ) + { + echo "Listing all Songs...\n"; + foreach( $files as $_song ) + { + echo "$_song\n"; + } + goto songChoose; + } echo "[INFO] Searching...\n"; $matches = 0; $artist = basename( $dir ); + $_found = ''; + $index = 0; foreach ( $files as $index => $name ) { $name = str_replace( array( '.txt', '.mp3', '.mp4' ), '', $name ); if ( ( $lev = levenshtein( $name, $artist . ' - ' . $song ) ) < 4 ) { - echo "[MATCH#$lev] Did you mean: $name? [$index]\n"; + $_found .= "$index | $song\n"; $matches++; } } if ( $matches === 0 ) { echo "[WARNING] No matches found!\n"; - return; + goto songChoose; } - $index = readline( "Name the index-number: " ); + if( $matches > 1 ) + { + echo "[FOUND] $matches are found!\nIndex | Song\n"; + echo $_found; + $index = readline( "Name the index-number: " ); + } + if ( isset( $files[$index] ) === false ) { echo "[ERROR] Index is invalid!\n"; - return; + goto songChoose; } + $files[$index] = str_replace( array( '.txt', '.mp3', '.mp4' ), '', $files[$index] ); $this->download( $files[$index] ); diff --git a/config.inc.php b/config.inc.php index f74224c..1e60c82 100644 --- a/config.inc.php +++ b/config.inc.php @@ -9,4 +9,4 @@ error_reporting(0); require_once 'AudioVideoHandler.php'; require_once 'Downloader.php'; -define( 'CURL_PHPSESSID', '' ); \ No newline at end of file +define( 'CURL_PHPSESSID', 'hi' ); \ No newline at end of file