<?php class Application_Common_TuneIn { /** * @param $title url encoded string * @param $artist url encoded string */ public static function sendMetadataToTunein($title, $artist) { $credQryStr = self::getCredentialsQueryString(); $metadataQryStr = '&title=' . $title . '&artist=' . $artist . '&commercial=false'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, TUNEIN_API_URL . $credQryStr . $metadataQryStr); curl_setopt($ch, CURLOPT_FAILONERROR, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_TIMEOUT, 30); $xmlResponse = curl_exec($ch); if (curl_error($ch)) { Logging::error('Failed to reach TuneIn: ' . curl_errno($ch) . ' - ' . curl_error($ch) . ' - ' . curl_getinfo($ch, CURLINFO_EFFECTIVE_URL)); } curl_close($ch); $xmlObj = new SimpleXMLElement($xmlResponse); if (!$xmlObj || $xmlObj->head->status != '200') { Logging::info('Error occurred pushing metadata to TuneIn:'); Logging::info($xmlResponse); } elseif ($xmlObj->head->status == '200') { Application_Model_Preference::setLastTuneinMetadataUpdate(time()); } } private static function getCredentialsQueryString() { $tuneInStationID = Application_Model_Preference::getTuneinStationId(); $tuneInPartnerID = Application_Model_Preference::getTuneinPartnerId(); $tuneInPartnerKey = Application_Model_Preference::getTuneinPartnerKey(); return '?partnerId=' . $tuneInPartnerID . '&partnerKey=' . $tuneInPartnerKey . '&id=' . $tuneInStationID; } }