From 01ae95274f734525c35f950fc7869c78aa782f99 Mon Sep 17 00:00:00 2001 From: Andrew McMillan Date: Sat, 29 May 2010 10:45:49 +1200 Subject: [PATCH] Migrate to AwlQuery and preg*, and remove need for globals. --- config/config-adorno.php | 5 ++++- inc/FormHandler.php | 14 +++++++------- inc/PlayTracks.php | 16 ++++++++-------- inc/adornoPlayer.php | 4 ++-- inc/daemonInterface.php | 14 ++++++++------ inc/header.php | 2 +- inc/menu.php | 12 ++++++------ www/album.php | 30 +++++++++++++++++------------- www/artist.php | 38 ++++++++++++++++++++------------------ www/dir.php | 14 +++++++------- www/edit_track.php | 4 ++-- www/index.php | 2 +- 12 files changed, 83 insertions(+), 72 deletions(-) diff --git a/config/config-adorno.php b/config/config-adorno.php index d15002b..326d338 100644 --- a/config/config-adorno.php +++ b/config/config-adorno.php @@ -1,6 +1,9 @@ pg_connect[] = 'dbname=adorno port=5432 user=adorno_app'; + $c->daemon_type = 'mpd'; $c->mpd['connection'] = "tcp://127.0.0.1:6600"; diff --git a/inc/FormHandler.php b/inc/FormHandler.php index 0209941..95fec60 100644 --- a/inc/FormHandler.php +++ b/inc/FormHandler.php @@ -63,10 +63,10 @@ class Field case "lookup": $r .= "select name=\"$this->name\"%%attributes%%>"; if ( isset($this->attributes["_sql"]) ) { - $qry = new PgQuery( $this->attributes["_sql"] ); + $qry = new AwlQuery( $this->attributes["_sql"] ); } else { - $qry = new PgQuery( "SELECT lookup_id, lookup_description FROM lookups WHERE lookup_type = ? ORDER BY lookup_type, lookup_seq, lookup_id", $this->attributes['_type'] ); + $qry = new AwlQuery( "SELECT lookup_id, lookup_description FROM lookups WHERE lookup_type = ? ORDER BY lookup_type, lookup_seq, lookup_id", $this->attributes['_type'] ); } error_log( "$sysname DBG: lookup $this->name via: $qry->querystring" ); $r .= $qry->BuildOptionList( $this->current, "rndr:$this->name" ); @@ -76,10 +76,10 @@ class Field case "multiselect": $r .= "select multiple name=\"$this->name" . "[]\"%%attributes%%>"; if ( isset($this->attributes["_sql"]) ) { - $qry = new PgQuery( $this->attributes["_sql"] ); + $qry = new AwlQuery( $this->attributes["_sql"] ); } else { - $qry = new PgQuery( "SELECT lookup_id, lookup_description FROM lookups WHERE lookup_type = ? ORDER BY lookup_type, lookup_seq, lookup_id", $this->attributes['_type'] ); + $qry = new AwlQuery( "SELECT lookup_id, lookup_description FROM lookups WHERE lookup_type = ? ORDER BY lookup_type, lookup_seq, lookup_id", $this->attributes['_type'] ); } error_log( "$sysname DBG: lookup $this->name via: $qry->querystring" ); $r .= $qry->BuildOptionList( $this->current, "rndr:$this->name" ); @@ -97,10 +97,10 @@ class Field } else { if ( isset($this->attributes["_sql"]) ) { - $qry = new PgQuery( $this->attributes["_sql"] ); + $qry = new AwlQuery( $this->attributes["_sql"] ); } else { - $qry = new PgQuery( "SELECT lookup_id, lookup_description FROM lookups WHERE lookup_type = ? ORDER BY lookup_type, lookup_seq, lookup_id", $this->attributes['_type'] ); + $qry = new AwlQuery( "SELECT lookup_id, lookup_description FROM lookups WHERE lookup_type = ? ORDER BY lookup_type, lookup_seq, lookup_id", $this->attributes['_type'] ); } error_log( "$sysname DBG: lookup $this->name via: $qry->querystring" ); $r .= $qry->BuildRadioSet( $fmt, $this->current, "rndr:$this->name" ); @@ -198,4 +198,4 @@ class Form } } -?> \ No newline at end of file +?> diff --git a/inc/PlayTracks.php b/inc/PlayTracks.php index a3d2588..7f3dd1c 100644 --- a/inc/PlayTracks.php +++ b/inc/PlayTracks.php @@ -3,8 +3,8 @@ if ( isset($_GET['act']) && $_GET['act'] == 'no' && ( !isset($_POST['act']) || $_POST['act'] == 'no') ) return; if ( isset($l) && isset($a) && isset($t) ) { - $qry = new PgQuery( "SELECT path_name, hash_key FROM tracks WHERE album = ? AND artist = ? AND title = ? ", $l, $a, $t ); - if ( $qry->Exec("PlayTracks") && $qry->rows == 1 ) { + $qry = new AwlQuery( "SELECT path_name, hash_key FROM tracks WHERE album = ? AND artist = ? AND title = ? ", $l, $a, $t ); + if ( $qry->Exec("PlayTracks") && $qry->rows() == 1 ) { $track = $qry->Fetch(); PlayTrack( $track->path_name, $track->hash_key ); } @@ -12,10 +12,10 @@ else if ( ( isset($a) || (isset($play) && $play > 0) ) && isset($l) ) { // Play all of the tracks for this album if ( isset($a) ) - $qry = new PgQuery( "SELECT path_name, hash_key FROM tracks WHERE album = ? AND artist = ? ORDER BY setpart, tracknum;", $l, $a ); + $qry = new AwlQuery( "SELECT path_name, hash_key FROM tracks WHERE album = ? AND artist = ? ORDER BY setpart, tracknum;", $l, $a ); else - $qry = new PgQuery( "SELECT path_name, hash_key FROM tracks WHERE album = ? ORDER BY setpart, tracknum;", $l ); - if ( $qry->Exec("PlayTracks") && $qry->rows > 0 ) { + $qry = new AwlQuery( "SELECT path_name, hash_key FROM tracks WHERE album = ? ORDER BY setpart, tracknum;", $l ); + if ( $qry->Exec("PlayTracks") && $qry->rows() > 0 ) { while( $track = $qry->Fetch() ) { PlayTrack( $track->path_name, $track->hash_key ); } @@ -28,10 +28,10 @@ // Attempt to update the database with the stream details $sql = "SELECT 1 FROM streams WHERE stream_url = ?"; - $qry = new PgQuery( $sql, $url ); - if ( $qry->rows == 0 ) { + $qry = new AwlQuery( $sql, $url ); + if ( $qry->rows() == 0 ) { $sql = "INSERT INTO streams ( stream_url ) VALUES( ? )"; - $qry = new PgQuery( $sql, $url ); + $qry = new AwlQuery( $sql, $url ); } } else if ( isset($_GET['i']) && isset($_GET['d']) ) { diff --git a/inc/adornoPlayer.php b/inc/adornoPlayer.php index 4fd4fd7..b48d3b7 100644 --- a/inc/adornoPlayer.php +++ b/inc/adornoPlayer.php @@ -47,10 +47,10 @@ function daemon_get_queue() { function daemon_other_command( $action, $track ) { $fifo = fopen( "/var/run/adorno/fifo", "w" ); - if ( ! ereg( "^(/music)|(http://)", "$track" ) ) { + if ( ! preg_match( '{^(/music)|(http://)}i', $track ) ) { $track = "/music" . "$track"; } - # $track = eregi_replace( " ", "\\ ", $track); + # $track = str_replace( " ", "\\ ", $track); fputs( $fifo, "$action $track\n" ); fclose($fifo); } diff --git a/inc/daemonInterface.php b/inc/daemonInterface.php index 7da8f47..30176b0 100644 --- a/inc/daemonInterface.php +++ b/inc/daemonInterface.php @@ -1,5 +1,7 @@ daemon_type ) { case 'mpd': include("mpdPlayer.php"); break; case 'vlc': include("vlcPlayer.php"); break; @@ -19,7 +21,7 @@ function PlayTrack( $path, $hash ) { error_log( sprintf("DBG: PlayTrack: Queueing '%s' for playing", $path) ); if ( daemon_play_track($path) ) { - $qry = new PgQuery( "SELECT track_played(?) ", $hash ); + $qry = new AwlQuery( "SELECT track_played(?) ", $hash ); $qry->Exec("PlayTrack"); } } @@ -33,13 +35,13 @@ function current_track() { $current_track = daemon_current_track(); $query = "SELECT *, extract( EPOCH FROM duration)::int AS secs "; - if ( ereg( '[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}', $current_track->started ) ) { + if ( preg_match( '/[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}/', $current_track->started ) ) { $query .= ", extract( EPOCH FROM ('".$current_track->started."'::timestamp + duration))::int AS finishing "; } $query .= "FROM tracks WHERE path_name = ? ; "; - $qry = new PgQuery( $query, $current_track->track ); - if ( $qry->Exec('current_track') && $qry->rows > 0 ) { + $qry = new AwlQuery( $query, $current_track->track ); + if ( $qry->Exec('current_track') && $qry->rows() > 0 ) { $track = $qry->Fetch(); return $track; } @@ -84,8 +86,8 @@ function current_queue() { * Select the track information from the database */ $sql = sprintf("SELECT *, EXTRACT( 'epoch' FROM duration ) AS dur_secs FROM tracks WHERE path_name IN ( %s );", $in_list ); - $qry = new PgQuery( $sql ); - if ( $qry->Exec("current_queue",__LINE__,__FILE__) && $qry->rows ) { + $qry = new AwlQuery( $sql ); + if ( $qry->Exec("current_queue",__LINE__,__FILE__) && $qry->rows() ) { while( $track = $qry->Fetch() ) { $position = $queue_pos[$track->path_name]; $queue[$position] = $track; diff --git a/inc/header.php b/inc/header.php index f674e75..72fd33d 100644 --- a/inc/header.php +++ b/inc/header.php @@ -20,7 +20,7 @@ $refresh_url .= "&a=".urlencode($a); else if ( isset($l) ) $refresh_url .= "&l=".urlencode($l); - $refresh_url = "http://$HTTP_HOST$PHP_SELF?act=no" . $refresh_url; + $refresh_url = sprintf( 'http://%s%s?act=no', $_SERVER['HTTP_HOST'], $_SERVER['PHP_SELF'], $refresh_url ); if ( isset($refresh) && ! $refresh) { // Don't add a refresh header diff --git a/inc/menu.php b/inc/menu.php index 4f4c974..c434e02 100644 --- a/inc/menu.php +++ b/inc/menu.php @@ -22,17 +22,17 @@ $ltrtype = "artist"; if ( preg_match( '/album.php/', $REQUEST_URI) ) $ltrtype = "album"; - $url = $PHP_SELF . ereg_replace( '^&', '?', $url . '&' ); - if ( !ereg( '/(artist|album)\.php', $url) ) { - error_log( "$sysabbr: DBG: >>$url<< " . (ereg('/(artist|album)\.php', $url)? 'true':'false') ); - $url = ereg_replace( '/[a-z0-9_-]+\.php', '/artist.php', $url ); + $url = $PHP_SELF . preg_replace( '/^&/', '?', $url . '&' ); + if ( !preg_match( '{/(artist|album)\.php}', $url) ) { + error_log( "$sysabbr: DBG: >>$url<< " . (preg_match('{/(artist|album)\.php}', $url)? 'true':'false') ); + $url = preg_replace( '{/[a-z0-9_-]+\.php}i', '/artist.php', $url ); } $ls = new LinkSet( '%s', 'alphabetica' ); error_log( "$sysabbr: DBG: >>$ls->template<<" ); $menubar = '
'.ucfirst($ltrtype).'s:'; - $qry = new PgQuery("SELECT letter, pattern, $ltrtype"."_count AS count FROM letter_groups ORDER BY 1;"); - if ( $qry->Exec("artist") && $qry->rows > 0 ) { + $qry = new AwlQuery("SELECT letter, pattern, $ltrtype"."_count AS count FROM letter_groups ORDER BY 1;"); + if ( $qry->Exec("artist") && $qry->rows() > 0 ) { while ( $letter = $qry->Fetch() ) { $help = "Display $letter->count $ltrtype"."s beginning with the letter '$letter->letter'."; $display = $letter->letter; diff --git a/www/album.php b/www/album.php index 3f5f4b0..3a4aef8 100644 --- a/www/album.php +++ b/www/album.php @@ -61,13 +61,14 @@ EOHTML; $qa .= "extract( EPOCH FROM duration)::int AS secs, quality "; $qa .= "FROM tracks WHERE lower(artist) = lower('" . addslashes($a) . "') "; $qa .= "ORDER BY lower(album), setpart, tracknum; "; - $qry = new PgQuery($qa); - if ( $qry->Exec() && $qry->rows > 0 ) { + $qry = new AwlQuery($qa); + if ( $qry->Exec() && $qry->rows() > 0 ) { echo "

".htmlspecialchars($a)."

\n"; - $last_album = ""; + $last_album = null; + $rownum = 0; while ( $track = $qry->Fetch() ) { if ( $track->album != $last_album ) { - if ( $qry->rownum > 1 ) echo "
"; + if ( $rownum > 1 ) echo ""; echo "
"; echo "artist) . "&l=" . urlencode($track->album) . "$letter_get\">"; echo ""; $last_album = $track->album; } - else if ( $qry->rownum == 0 ) { + else if ( $rownum == 0 ) { echo "
"; @@ -78,11 +79,12 @@ EOHTML; echo "album) . "&a=" . urlencode($track->artist) . "\" title=\"Edit Album Info\">E
\n"; } - echo track_link($track, ($track->tracknum > 0 ? "$track->tracknum: " : "") . "$track->title", $qry->rownum % 2 ); + echo track_link($track, ($track->tracknum > 0 ? "$track->tracknum: " : "") . "$track->title", $rownum % 2 ); + $rownum++; } echo "
"; echo "

Unkown Album

 
"; } @@ -92,15 +94,17 @@ EOHTML; $qa .= "extract( EPOCH FROM duration)::int AS secs, quality "; $qa .= "FROM tracks WHERE album = '" . addslashes($l) . "' "; $qa .= "ORDER BY album, setpart, tracknum; "; - $qry = new PgQuery($qa); - if ( $qry->Exec() && $qry->rows > 0 ) { + $qry = new AwlQuery($qa); + if ( $qry->Exec() && $qry->rows() > 0 ) { echo "

$l

\n"; $last_album = ""; + $rownum = 0; while ( $track = $qry->Fetch() ) { - if ( $qry->rownum == 0 ) { + if ( $rownum == 0 ) { echo "
"; } - echo track_link($track, ($track->tracknum > 0 ? "$track->tracknum: " : "") . "$track->title / $track->artist", $qry->rownum % 2 ); + echo track_link($track, ($track->tracknum > 0 ? "$track->tracknum: " : "") . "$track->title / $track->artist", $rownum % 2 ); + $rownum++; } echo "
"; } @@ -118,12 +122,12 @@ EOHTML; $sql = "SELECT distinct ON ( lower(album)) album FROM tracks "; $sql .= "WHERE artist ~* ? OR album ~* ? OR title ~* ? OR path_name ~* ? "; $sql .= "ORDER BY lower(album);"; - $qry = new PgQuery( $sql, $search, $search, $search, $search ); + $qry = new AwlQuery( $sql, $search, $search, $search, $search ); } else { - $qry = new PgQuery( "SELECT distinct ON ( lower(album)) album FROM tracks WHERE album ~* ? ORDER BY lower(album);", "^$altr"); + $qry = new AwlQuery( "SELECT distinct ON ( lower(album)) album FROM tracks WHERE album ~* ? ORDER BY lower(album);", "^$altr"); } - if ( $qry->Exec('album') && $qry->rows > 0 ) { + if ( $qry->Exec('album') && $qry->rows() > 0 ) { while ( $album = $qry->Fetch() ) { $display = htmlspecialchars($album->album); if ( trim($display) == "" ) $display = "«unknown»"; diff --git a/www/artist.php b/www/artist.php index 2061d8e..29d1fa8 100644 --- a/www/artist.php +++ b/www/artist.php @@ -1,14 +1,13 @@ system_name; require_once("header.php"); @@ -56,13 +55,14 @@ EOHTML; $qa .= "extract( EPOCH FROM duration)::int AS secs, quality, get_last_played(hash_key) AS last_played "; $qa .= "FROM tracks WHERE lower(artist) = lower(?) "; $qa .= "ORDER BY lower(album), setpart, tracknum; "; - $qry = new PgQuery($qa, $a); - if ( $qry->Exec() && $qry->rows > 0 ) { + $qry = new AwlQuery($qa, $a); + if ( $qry->Exec() && $qry->rows() > 0 ) { echo "

".htmlspecialchars($a)."

\n"; $last_album = ""; + $rownum = 0; while ( $track = $qry->Fetch() ) { if ( $track->album != "" && $track->album != $last_album ) { - if ( $qry->rownum > 1 ) echo ""; + if ( $rownum > 1 ) echo ""; echo "
\n"; echo ""; @@ -70,11 +70,12 @@ EOHTML; echo ""; $last_album = $track->album; } - else if ( $qry->rownum == 0 ) { + else if ( $rownum == 0 ) { echo "
"; echo "artist) . "&l=" . urlencode($track->album) . "$letter_get\">".htmlspecialchars($track->album)." album) . "&a=" . urlencode($track->artist) . "\" title=\"Edit Album Info\">E
"; echo "\n"; } - echo track_link($track, ($track->tracknum > 0 ? "$track->tracknum: " : "") . "$track->title", $qry->rownum % 2 ); + echo track_link($track, ($track->tracknum > 0 ? "$track->tracknum: " : "") . "$track->title", $rownum % 2 ); + $rownum++; } echo "
Unkown Album 
"; } @@ -84,8 +85,8 @@ EOHTML; $qa .= "extract( EPOCH FROM duration)::int AS secs, quality, get_last_played(hash_key) AS last_played "; $qa .= "FROM tracks WHERE album = '" . addslashes($l) . "' "; $qa .= "ORDER BY album, setpart, tracknum; "; - $qry = new PgQuery($qa); - if ( $qry->Exec() && $qry->rows > 0 ) { + $qry = new AwlQuery($qa); + if ( $qry->Exec() && $qry->rows() > 0 ) { echo "

$l

\n"; $last_artist = ""; while ( $track = $qry->Fetch() ) { @@ -97,11 +98,12 @@ EOHTML; echo "album) . "&a=" . urlencode($track->artist) . "\" title=\"Edit Album Info\">E"; $last_artist = $track->artist; } - else if ( $qry->rownum == 0 ) { + else if ( $rownum == 0 ) { echo "
"; echo "\n"; } - echo track_link($track, ($track->tracknum > 0 ? "$track->tracknum: " : "") . "$track->title", $qry->rownum % 2 ); + echo track_link($track, ($track->tracknum > 0 ? "$track->tracknum: " : "") . "$track->title", $rownum % 2 ); + $rownum++; } echo "
Unkown Album 
"; } @@ -119,12 +121,12 @@ EOHTML; $sql = "SELECT distinct ON ( lower(artist)) artist FROM tracks "; $sql .= "WHERE artist ~* ? OR album ~* ? OR title ~* ? OR path_name ~* ? "; $sql .= "ORDER BY lower(artist);"; - $qry = new PgQuery( $sql, $search, $search, $search, $search ); + $qry = new AwlQuery( $sql, $search, $search, $search, $search ); } else { - $qry = new PgQuery( "SELECT distinct ON ( lower(artist)) artist FROM tracks WHERE artist ~* ? ORDER BY lower(artist);", "^$altr"); + $qry = new AwlQuery( "SELECT distinct ON ( lower(artist)) artist FROM tracks WHERE artist ~* ? ORDER BY lower(artist)", "^$altr"); } - if ( $qry->Exec('artist') && $qry->rows > 0 ) { + if ( $qry->Exec('artist') && $qry->rows() > 0 ) { while ( $artist = $qry->Fetch() ) { $display = htmlspecialchars($artist->artist); if ( trim($display) == "" ) $display = "«unknown»"; diff --git a/www/dir.php b/www/dir.php index 986845b..aa70db7 100644 --- a/www/dir.php +++ b/www/dir.php @@ -20,7 +20,7 @@ Up one level
\n"; sort ($dirlist); @@ -90,9 +90,9 @@ else { $track = trim($track); echo "$track added into database
\n"; - $safe_track = eregi_replace( '^.*/([^/]+)$', "\\1", str_replace( "'", "''", $track )); + $safe_track = preg_replace( '{^.*/([^/]+)$}', "\\1", str_replace( "'", "''", $track )); $safe_path = str_replace( "'", "''", $track ); - if ( eregi( '\.mp3$', $track ) ) { + if ( preg_match( '{\.mp3$}i', $track ) ) { $command = "mp3info -p '%n\t%t\t%l\t%a' '$track'"; // track number >> track title >> album name >> artist name // error_log( "mdaemon: $command", 0); $mp3info = `$command`; // track number >> track title >> album name >> artist name @@ -105,7 +105,7 @@ $query = "INSERT INTO tracks ( hash_key, path_name, title, artist, album, tracknum ) "; $query .= "VALUES( '$hashkey', '$safe_path', '$ttitle', '$tartist', '$talbum', '$tnum') ;"; } - else if ( eregi( '\.ogg$', $track ) ) { + else if ( preg_match( '{\.ogg$}i', $track ) ) { $ogginfo = `ogginfo $track`; // serial=1994287629 diff --git a/www/edit_track.php b/www/edit_track.php index 56b4c40..c7111be 100644 --- a/www/edit_track.php +++ b/www/edit_track.php @@ -15,7 +15,7 @@ // $actions .= "

Editing: $track->title"; if ( ! isset( $artist[$i] ) ) $artist[$i] = $artist[0]; if ( ! isset( $album[$i] ) ) $album[$i] = $album[0]; - if ( ereg( "\.ogg$", $track->path_name ) ) { + if ( preg_match( '{\.ogg$}i', $track->path_name ) ) { // Update the details on an ogg file $command = "/usr/bin/vorbiscomment -w " . escapeshellarg($track->path_name); $command .= " -t " . escapeshellarg( "ARTIST=$artist[$i]" ); @@ -30,7 +30,7 @@ } // $actions .= "

Command: $command"; $result = `$command`; - if ( eregi( "error.*opening", $result ) ) { + if ( preg_match( '{error.*opening}i', $result ) ) { $actions .= "

Error opening file - are your files / directories mode 666 / 777?"; } $command = "/usr/bin/md5sum " . escapeshellarg($track->path_name); diff --git a/www/index.php b/www/index.php index 1b71aa0..d3f76ce 100644 --- a/www/index.php +++ b/www/index.php @@ -1,5 +1,5 @@