Just a utility script
This commit is contained in:
		
							parent
							
								
									b7d0d79ec5
								
							
						
					
					
						commit
						1b09cd404a
					
				
							
								
								
									
										89
									
								
								scripts/homeaudio_utils.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										89
									
								
								scripts/homeaudio_utils.php
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,89 @@
 | 
				
			||||||
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					require_once 'getid3/getid3.php';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$ini = parse_ini_file("/etc/homeaudio.ini");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					define("MP3ROOTDIR", $ini['MP3DIR']);
 | 
				
			||||||
 | 
					define("ARTDIR", $ini['ARTDIR']);
 | 
				
			||||||
 | 
					define("SONGSTABLE", "songs");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$globaldbh = new PDO("mysql:host={$ini['DBHOST']};dbname={$ini['DBNAME']}", $ini['DBUSER'], $ini['DBPASS']);
 | 
				
			||||||
 | 
					$ignoredirs = array();
 | 
				
			||||||
 | 
					$ignoredirs[] = "Album Playlists";
 | 
				
			||||||
 | 
					$ignoredirs[] = "Alphabetical";
 | 
				
			||||||
 | 
					$ignoredirs[] = "Incoming2";
 | 
				
			||||||
 | 
					$ignoredirs[] = "Recent";
 | 
				
			||||||
 | 
					$ignoredirs[] = "Recent (1-2 Months)";
 | 
				
			||||||
 | 
					$ignoredirs[] = "Recent (2-3 Months)";
 | 
				
			||||||
 | 
					$ignoredirs[] = "playlists";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$extbymimetypes = array(
 | 
				
			||||||
 | 
					   'image/jpg' => 'jpg',
 | 
				
			||||||
 | 
					   'image/jpeg' => 'jpg',
 | 
				
			||||||
 | 
					   'image/png' => 'png',
 | 
				
			||||||
 | 
					   'image/gif' => 'gif'
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function search() {
 | 
				
			||||||
 | 
					   global $globaldbh, $argv;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   $target = $argv[2];
 | 
				
			||||||
 | 
					   switch ($target) {
 | 
				
			||||||
 | 
					      case "song":
 | 
				
			||||||
 | 
					      case "songs":
 | 
				
			||||||
 | 
					         $terms = array();
 | 
				
			||||||
 | 
					         for ( $i=3; $i<count($argv); $i++ ) {
 | 
				
			||||||
 | 
					            if ( strlen($argv[$i]) > 2 ) $terms[] = $argv[$i];
 | 
				
			||||||
 | 
					         }
 | 
				
			||||||
 | 
					         if ( count($terms) == 0 ) {
 | 
				
			||||||
 | 
					            echo "Searching requires search terms as command line parameters\n\n";
 | 
				
			||||||
 | 
					            exit();
 | 
				
			||||||
 | 
					         }
 | 
				
			||||||
 | 
					         $query = "SELECT id, path, song, artist, album, title FROM songs WHERE (PATH LIKE :term1";
 | 
				
			||||||
 | 
					         for ( $i=1; $i<count($terms); $i++ ) {
 | 
				
			||||||
 | 
					            $query .= " AND path LIKE :term" . ($i+1);
 | 
				
			||||||
 | 
					         }
 | 
				
			||||||
 | 
					         $query .= ") OR (song LIKE :term1";
 | 
				
			||||||
 | 
					         for ( $i=1; $i<count($terms); $i++ ) {
 | 
				
			||||||
 | 
					            $query .= " AND song LIKE :term" . ($i+1);
 | 
				
			||||||
 | 
					         }
 | 
				
			||||||
 | 
					         $query .= ") OR (title LIKE :term1";
 | 
				
			||||||
 | 
					         for ( $i=1; $i<count($terms); $i++ ) {
 | 
				
			||||||
 | 
					            $query .= " AND title LIKE :term" . ($i+1);
 | 
				
			||||||
 | 
					         }
 | 
				
			||||||
 | 
					         $query .= ") OR (artist LIKE :term1";
 | 
				
			||||||
 | 
					         for ( $i=1; $i<count($terms); $i++ ) {
 | 
				
			||||||
 | 
					            $query .= " AND artist LIKE :term" . ($i+1);
 | 
				
			||||||
 | 
					         }
 | 
				
			||||||
 | 
					         $query .= ") ORDER BY path, song";
 | 
				
			||||||
 | 
					         $sth = $globaldbh->prepare($query);
 | 
				
			||||||
 | 
					         for ( $i=0; $i<count($terms); $i++ ) {
 | 
				
			||||||
 | 
					            $sth->bindValue(":term".($i+1), "%".$terms[$i]."%", PDO::PARAM_STR);
 | 
				
			||||||
 | 
					         }
 | 
				
			||||||
 | 
					         $sth->execute();
 | 
				
			||||||
 | 
					         if ( $sth->rowCount() > 0 ) {
 | 
				
			||||||
 | 
					            echo " ID    | Path                                   | Song                         | Title                     | Artist\n";
 | 
				
			||||||
 | 
					            echo "-------|----------------------------------------|------------------------------|---------------------------|----------------------\n";
 | 
				
			||||||
 | 
					         }
 | 
				
			||||||
 | 
					         while ( $row = $sth->fetch(PDO::FETCH_ASSOC) ) {
 | 
				
			||||||
 | 
					            echo str_pad(strval($row['id']), 7) . "|";
 | 
				
			||||||
 | 
					            echo " " . str_pad(substr($row['path'], 0, 37), 39) . "|";
 | 
				
			||||||
 | 
					            echo " " . str_pad(substr($row['song'], 0, 27), 29) . "|";
 | 
				
			||||||
 | 
					            echo " " . str_pad(substr($row['title'], 0, 24), 26) . "|";
 | 
				
			||||||
 | 
					            echo " " . substr($row['artist'], 0, 25) . "\n";
 | 
				
			||||||
 | 
					         }
 | 
				
			||||||
 | 
					         break;
 | 
				
			||||||
 | 
					   }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					switch ($argv[1]) {
 | 
				
			||||||
 | 
					   case "search":
 | 
				
			||||||
 | 
					      search();
 | 
				
			||||||
 | 
					      break;
 | 
				
			||||||
 | 
					   default:
 | 
				
			||||||
 | 
					      echo "Nothing to do\n";
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					echo "\n";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// vim: ts=3:sw=3
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user