TEMPLATE TO KCEG RADIO
Thank you
To play the requested songs in RadioBOSS, schedule an event with "playrequestedsong" command: http://manual.djsoft.net/radioboss/en/scheduler_commands.htm#songrequest Please make sure the RadioBOSS API is enabled and a password is set: http://manual.djsoft.net/radioboss/en/remote_controlapi.htm If RadioBOSS is installed on a server, please make sure the API port (9000 by default) is allowed in firewall. Home or studio PC: If RadioBOSS is installed on a home or studio PC, please make sure it has a static IP address. If a static IP address is not available, a Dynamic DNS address has to be used instead The IP address (or dynamic DNS address) is entered into the $rb_server variable (please do not include http://) If a computer is behing a NAT (this is usually the case when a router is used), then API port (9000 by default) has to be forwarded in router settings - see port forwarding documentation for your router. */ //---------------// // CONFIGURATION // //---------------// //RadioBOSS API connection details $rb_server = '144.217.76.188'; //RadioBOSS hostname or IP $rb_port = '8232'; //RadioBOSS port $rb_password = 'recon1'; //API password //music library name, omitting the .xml extension, the library is loaded from "Music library folder" as set in RadioBOSS settings $rb_library = 'music'; //show detailed error messages (1 - show error details, 0 - show only general error messages) //IMPORTANT! Make sure this is set to 0 once everything is configured and working to avoid revealing too many details to users! //Error messages may contain passwords and other sensitive information //Set this to 1 only if something's not working to get more details $show_errors = 0; //-------------------// // SONG REQUEST FORM // //-------------- ----// //API URL base $rb_api = "http://$rb_server:$rb_port?pass=$rb_password"; function result($msg) { $back_link = 'Back'; exit("$msg $back_link"); } ?> RadioBOSS Song Request demo '; } elseif ($type === 'request') { //requested artist $artist = mb_strtolower(trim($_POST['artist'])); if ($artist === '') $artist = false; //requested title $title = mb_strtolower(trim($_POST['title'])); if ($title === '') $title = false; if (($artist === false) && ($title === false)) result('No artist or title entered.'); //load library $library_raw = @file_get_contents("$rb_api&action=library&filename=" . urlencode($rb_library)); if ($library_raw === false) { $err = 'Song request failed: unable to load music library.'; if ($show_errors) $err .= ' Error: ' . error_get_last()['message']; result($err); } //parse XML data $xml = simplexml_load_string($library_raw); if ($xml === false) result('Song request failed: unable to parse music library XML data.'); $fn = false; //search requested song in a music library foreach ($xml as $x) { if ($x->getName() !== 'Track') continue; $found = (($artist === false) || (mb_strtolower((string)$x['artist']) === $artist)) && (($title === false) || (mb_strtolower((string)$x['title']) === $title)); if ($found) { $fn = (string)$x['filename']; break; } } //song found, add to requested songs list in RadioBOSS if ($fn !== false) { $msg = isset($_POST['message']) ? $_POST['message'] : ''; $res = @file_get_contents("$rb_api&action=songrequest&filename=" . urlencode($fn) . "&message=" . urlencode($msg)); if ($res === "OK") result('Song requested successfully!'); else { $err = 'An error occurred while adding song request.'; if ($show_errors) $err .= ' Error: ' . error_get_last()['message']; result($err); } } else result('Requested song not found in the music library.'); } ?>