/** * updateNowPlaying - sets the currently playing song in the database, affecting * `logbook` immediately (time-played is offset +20s to account for delay, * `now_playing` (after 20 seconds) * and sends to the RDS (immediately; we don't worry about 20s delay here.) * @param int $logbookID the logbookID of the song to be set as now playing */ function setNowPlaying($logbookID) { // set time to 20 seconds in advance (because of delay) $time = date('Y-m-d H:i:s', strtotime('+20 seconds')); $q = sprintf("UPDATE `logbook` SET played=1, time_played='%s' WHERE logbookID = %d", $time, $logbookID); mysql_query($q) or die("MySQL error [" . __FILE__ . "] near line " . __LINE__ . ": " . mysql_error()); // get the name/artist of the current list $query = sprintf("SELECT lb_track_name, lb_artist FROM `logbook` WHERE logbookID = %d LIMIT 1", $logbookID); $result = mysql_query($query) or die("MySQL error [" . __FILE__ . "] near line " . __LINE__ . ": " . mysql_error()); $row = mysql_fetch_array($result, MYSQL_ASSOC); // sanitize $artist = mysql_real_escape_string($row['lb_artist']); $song = mysql_real_escape_string($row['lb_track_name']); // send RDS info here; the delay is already set with that. sendRDS($row['lb_artist'], $row['lb_track_name']); // wait 20 seconds to change now playing on for the stream, because it's // post-delay //s sleep(20); $query = sprintf("UPDATE `now_playing` SET logbookID = '%d', lb_artist_name = '%s', lb_track_name = '%s'", $logbookID, $artist, $song); $result = mysql_query($query) or die("MySQL error [" . __FILE__ . "] near line " . __LINE__ . ": " . mysql_error()); }
$qu = sprintf("SELECT * FROM `libalbum`, `libtrack`, `liblabel`, `libartist`, `def_rotations` WHERE libalbum.artistID = libartist.artistID AND libalbum.labelID = liblabel.labelID AND libalbum.albumID = libtrack.albumID AND libtrack.track_num = '%s' AND libalbum.album_code = '%s' AND def_rotations.rotationID = libalbum.rotationID LIMIT 1", $trackNo, $albumNo); $rs = mysql_query($qu) or die("MySQL error near line " . __LINE__ . ": " . mysql_error()); if (mysql_num_rows($rs) != 1) { echo "\n\n\n" . "ERROR: Not 1 row returned!\n"; die; } $row = mysql_fetch_array($rs, MYSQL_ASSOC); /** the sanitize function is in ../utils_ccl.php **/ sanitize($row); $genre = $row['genre']; $rotation = substr($row['rotation_bin'], 0, 1); $artist = $row['artist_name']; $track = $row['track_name']; $album = $row['album_name']; $label = $row['label']; $query = sprintf("INSERT INTO `%s` \n\t\t(showID, lb_album_code, lb_track_num, lb_rotation, lb_artist, lb_track_name, lb_album, lb_label, time_played, played) VALUES \n\t\t('%d', '%s', '%d', '%s', '%s', '%s', '%s', '%s', '%s', 1)", $tablename, $showid, $albumNo, $trackNo, $rotation, $artist, $track, $album, $label, $time); $update_now_playing = sprintf("UPDATE now_playing SET logbookID = LAST_INSERT_ID(), lb_track_name = '%s', lb_artist_name = '%s'", $track, $artist); sendRDS($artist, $track); } //echo "Hello! You are logging number $cartid\n"; //echo "Show ID is $showid\n"; if (mysql_query($query)) { if (!empty($update_now_playing)) { mysql_query($update_now_playing) or die("MySQL error near line " . __LINE__ . ": " . mysql_error()); } echo "Logged " . $_GET['cartid'] . " successfully."; } else { echo "MySQL error near line " . __LINE__ . ": " . mysql_error(); } //lbplaylist: p_sID, pNumInShow, pAlbumNo, pTrackNo, pGenre, pRotation, //pArtistName, pSongTitle, pAlbumTitle, pRecordLabel, pCurrentlyPlaying