'.htmlspecialchars($p_printValue)."\n"; echo $str; return $selected; } // fn camp_html_select_option $serverPath = "http://{$CC_CONFIG['storageUrlHost']}:{$CC_CONFIG['storageUrlPort']}". "{$CC_CONFIG['storageUrlPath']}/{$CC_CONFIG['storageXMLRPC']}"; $serverPath = camp_session_get("storageserver_xmlrpc_path", $serverPath); $f_selectedMethod = camp_session_get("f_selectedMethod", "listMethods"); $url = parse_url($serverPath); $client = new XML_RPC_Client($url['path'], $url['host']); $methodDefs = array( "listMethods" => array('m'=>"system.listMethods", 'p'=>NULL), "methodHelp" => array('m'=>"system.methodHelp", 'p'=>0), "methodSignature" => array('m'=>"system.methodSignature", 'p'=>0), "test" => array('m'=>"locstor.test", 'p'=>array('sessid', 'teststring')), "getVersion" => array('m'=>"locstor.getVersion", 'p'=>array(), 'r'=>'version'), "authenticate" => array('m'=>"locstor.authenticate", 'p'=>array('login', 'pass'), 'r'=>'authenticate'), "login" => array('m'=>"locstor.login", 'p'=>array('login', 'pass'), 'r'=>'sessid'), "logout" => array('m'=>"locstor.logout", 'p'=>array('sessid'), 'r'=>'status'), "storeAudioClipOpen" => array('m'=>"locstor.storeAudioClipOpen", 'p'=>array('sessid', 'gunid', 'metadata', 'fname', 'chsum'), 'r'=>array('url', 'token') ), "storeAudioClipClose" => array('m'=>"locstor.storeAudioClipClose", 'p'=>array('sessid', 'token'), 'r'=>'gunid'), "accessRawAudioData" => array('m'=>"locstor.accessRawAudioData", 'p'=>array('sessid', 'gunid'), 'r'=>array('url', 'token')), "releaseRawAudioData" => array('m'=>"locstor.releaseRawAudioData", 'p'=>array('token'), 'r'=>'status'), "downloadRawAudioDataOpen" => array('m'=>"locstor.downloadRawAudioDataOpen", 'p'=>array('sessid', 'gunid'), 'r'=>array('url', 'token')), "downloadRawAudioDataClose" => array('m'=>"locstor.downloadRawAudioDataClose", 'p'=>array('sessid', 'token'), 'r'=>'gunid'), "downloadMetadataOpen" => array('m'=>"locstor.downloadMetadataOpen", 'p'=>array('sessid', 'gunid'), 'r'=>array('url', 'token')), "downloadMetadataClose" => array('m'=>"locstor.downloadMetadataClose", 'p'=>array('sessid', 'token'), 'r'=>'gunid'), "deleteAudioClip" => array('m'=>"locstor.deleteAudioClip", 'p'=>array('sessid', 'gunid', 'forced'), 'r'=>'status'), "existsAudioClip" => array('m'=>"locstor.existsAudioClip", 'p'=>array('sessid', 'gunid'), 'r'=>'exists'), "getAudioClip" => array('m'=>"locstor.getAudioClip", 'p'=>array('sessid', 'gunid'), 'r'=>'metadata'), "updateAudioClipMetadata" => array('m'=>"locstor.updateAudioClipMetadata", 'p'=>array('sessid', 'gunid', 'metadata'), 'r'=>'status'), "searchMetadata" => array('m'=>"locstor.searchMetadata", 'p'=>NULL), "browseCategory" => array('m'=>"locstor.browseCategory", 'p'=>NULL), // "resetStorage" => array('m'=>"locstor.resetStorage", // 'p'=>array()), "storeWebstream" => array('m'=>"locstor.storeWebstream", 'p'=>array('sessid', 'gunid', 'metadata', 'fname', 'url'), 'r'=>array('gunid') ), "createPlaylist" => array('m'=>"locstor.createPlaylist", 'p'=>array('sessid', 'plid', 'fname'), 'r'=>'plid'), "editPlaylist" => array('m'=>"locstor.editPlaylist", 'p'=>array('sessid', 'plid'), 'r'=>array('url', 'token')), "savePlaylist" => array('m'=>"locstor.savePlaylist", 'p'=>array('sessid', 'token', 'newPlaylist'), 'r'=>'plid'), "revertEditedPlaylist" => array('m'=>"locstor.revertEditedPlaylist", 'p'=>array('sessid', 'token'), 'r'=>'plid'), "deletePlaylist" => array('m'=>"locstor.deletePlaylist", 'p'=>array('sessid', 'plid', 'forced'), 'r'=>'status'), "accessPlaylist" => array('m'=>"locstor.accessPlaylist", 'p'=>array('sessid', 'plid'), 'r'=>array('url', 'token')), "releasePlaylist" => array('m'=>"locstor.releasePlaylist", 'p'=>array('token'), 'r'=>'plid'), "existsPlaylist" => array('m'=>"locstor.existsPlaylist", 'p'=>array('sessid', 'plid'), 'r'=>'exists'), "playlistIsAvailable" => array('m'=>"locstor.playlistIsAvailable", 'p'=>array('sessid', 'plid'), 'r'=>array('available', 'ownerid', 'ownerlogin')), "exportPlaylistOpen" => array('m'=>"locstor.exportPlaylistOpen", 'p'=>array('sessid', 'plids', 'type', 'standalone'), 'r'=>array('url', 'token')), "exportPlaylistClose" => array('m'=>"locstor.exportPlaylistClose", 'p'=>array('token'), 'r'=>array('status')), "importPlaylistOpen" => array('m'=>"locstor.importPlaylistOpen", 'p'=>array('sessid', 'chsum'), 'r'=>array('url', 'token')), "importPlaylistClose" => array('m'=>"locstor.importPlaylistClose", 'p'=>array('token'), 'r'=>array('gunid')), "renderPlaylistToFileOpen" => array('m'=>"locstor.renderPlaylistToFileOpen", 'p'=>array('sessid', 'plid'), 'r'=>array('token')), "renderPlaylistToFileCheck" => array('m'=>"locstor.renderPlaylistToFileCheck", 'p'=>array('token'), 'r'=>array('status', 'url')), "renderPlaylistToFileClose" => array('m'=>"locstor.renderPlaylistToFileClose", 'p'=>array('token'), 'r'=>array('status')), "renderPlaylistToStorageOpen" => array('m'=>"locstor.renderPlaylistToStorageOpen", 'p'=>array('sessid', 'plid'), 'r'=>array('token')), "renderPlaylistToStorageCheck" => array('m'=>"locstor.renderPlaylistToStorageCheck", 'p'=>array('token'), 'r'=>array('status', 'gunid')), "renderPlaylistToRSSOpen" => array('m'=>"locstor.renderPlaylistToRSSOpen", 'p'=>array('sessid', 'plid'), 'r'=>array('token')), "renderPlaylistToRSSCheck" => array('m'=>"locstor.renderPlaylistToRSSCheck", 'p'=>array('token'), 'r'=>array('status', 'url')), "renderPlaylistToRSSClose" => array('m'=>"locstor.renderPlaylistToRSSClose", 'p'=>array('token'), 'r'=>array('status')), "loadPref" => array('m'=>"locstor.loadPref", 'p'=>array('sessid', 'key'), 'r'=>'value'), "savePref" => array('m'=>"locstor.savePref", 'p'=>array('sessid', 'key', 'value'), 'r'=>'status'), "delPref" => array('m'=>"locstor.delPref", 'p'=>array('sessid', 'key'), 'r'=>'status'), "loadGroupPref" => array('m'=>"locstor.loadGroupPref", 'p'=>array('sessid', 'group', 'key'), 'r'=>'value'), "saveGroupPref" => array('m'=>"locstor.saveGroupPref", 'p'=>array('sessid', 'group', 'key', 'value'), 'r'=>'status'), "getTransportInfo" => array('m'=>"locstor.getTransportInfo", 'p'=>array('trtok'), 'r'=>array('state', 'realsize', 'expectedsize', 'realsum', 'expectedsum')), "turnOnOffTransports" => array('m'=>"locstor.turnOnOffTransports", 'p'=>array('sessid', 'onOff'), 'r'=>array('state')), "doTransportAction" => array('m'=>"locstor.doTransportAction", 'p'=>array('sessid', 'trtok', 'action'), 'r'=>array('state')), "uploadFile2Hub" => array('m'=>"locstor.uploadFile2Hub", 'p'=>array('sessid', 'filePath'), 'r'=>array('trtok')), "getHubInitiatedTransfers" => array('m'=>"locstor.getHubInitiatedTransfers", 'p'=>array('sessid'), 'r'=>array()), "startHubInitiatedTransfer" => array('m'=>"locstor.startHubInitiatedTransfer", 'p'=>array('trtok'), 'r'=>array()), "upload2Hub" => array('m'=>"locstor.upload2Hub", 'p'=>array('sessid', 'gunid'), 'r'=>array('trtok')), "downloadFromHub" => array('m'=>"locstor.downloadFromHub", 'p'=>array('sessid', 'gunid'), 'r'=>array('trtok')), // "globalSearch" => array('m'=>"locstor.globalSearch", // 'p'=>array('sessid', 'criteria'), 'r'=>array('trtok')), // "getSearchResults" => array('m'=>"locstor.getSearchResults", // 'p'=>array('trtok')), "createBackupOpen" => array('m'=>"locstor.createBackupOpen", 'p'=>array('sessid', 'criteria'), 'r'=>array('token')), "createBackupCheck" => array('m'=>"locstor.createBackupCheck", # 'p'=>array('token'), 'r'=>array('status', 'url', 'metafile', 'faultString')), 'p'=>array('token'), 'r'=>array('status', 'url', 'tmpfile')), "createBackupClose" => array('m'=>"locstor.createBackupClose", 'p'=>array('token'), 'r'=>array('status')), "restoreBackupOpen" => array('m'=>"locstor.restoreBackupOpen", 'p'=>array('sessid', 'chsum'), 'r'=>array('url', 'token')), "restoreBackupClosePut" => array('m'=>"locstor.restoreBackupClosePut", 'p'=>array('sessid', 'token'), 'r'=>array('token')), "restoreBackupCheck" => array('m'=>"locstor.restoreBackupCheck", 'p'=>array('token'), 'r'=>array('status', 'faultString')), "restoreBackupClose" => array('m'=>"locstor.restoreBackupClose", 'p'=>array('token'), 'r'=>array('status')), "openPut" => array('m'=>"locstor.openPut", 'p'=>array()), "closePut" => array('m'=>"locstor.closePut", 'p'=>array()), ); if (isset($_REQUEST['go_button'])) { // Get the parameters $methodParams = $methodDefs[$f_selectedMethod]['p']; foreach ($methodParams as $methodParamName) { $inputParamName = "param_".$methodParamName; $xmlParameters[$methodParamName] = $_REQUEST[$inputParamName]; $_SESSION[$inputParamName] = $_REQUEST[$inputParamName]; } // Create the XML-RPC message $actualMethod = $methodDefs[$f_selectedMethod]['m']; $msg = new XML_RPC_Message($actualMethod, array(XML_RPC_encode($xmlParameters))); $sentMessage = $msg->serialize(); // Send it $sendResult = $client->send($msg); if ($sendResult->faultCode() > 0) { $errorMsg = "xr_cli_test.php: ".$sendResult->faultString()." ".$sendResult->faultCode()."\n"; } else { // If successful $xmlResponse = XML_RPC_decode($sendResult->value()); // Special case state handling switch ($f_selectedMethod) { case "login": // Remember the login session ID so we can use it to call // other methods. $loggedIn = true; $_SESSION['xmlrpc_session_id'] = $xmlResponse['sessid']; break; case "logout": unset($_SESSION['xmlrpc_session_id']); break; case "storeAudioClipOpen": $_SESSION['xmlrpc_token'] = $xmlResponse['token']; $_SESSION['xmlrpc_put_url'] = $xmlResponse['url']; break; } if (isset($methodDefs[$method]['r'])) { $expectedResult = $methodDefs[$method]['r']; if (is_array($expectedResult)) { foreach ($expectedResult as $resultName) { $actualResults[$resultName] = $xmlResponse[$resultName]; } echo join(' ', $actualResults)."\n"; } else { switch ($expectedResult) { case "status": case "exists": echo ($xmlResponse[$expectedResult]=='1' ? "TRUE" : "FALSE" )."\n"; break; default: echo "{$xmlResponse[$expectedResult]}\n"; } } } else { switch ($method) { case "searchMetadata": // case "getSearchResults": $acCnt = 0; $acGunids = array(); $plCnt = 0; $plGunids = array(); $fld = (isset($options['category']) ? $options['category'] : 'gunid' ); foreach ($xmlResponse['results'] as $k => $v) { if ($v['type']=='audioclip') { $acCnt++; $acGunids[] = $v[$fld]; } if ($v['type']=='playlist') { $plCnt++; $plGunids[] = $v[$fld]; } } echo "AC({$acCnt}): ". join(", ", $acGunids). " | PL({$plCnt}): ". join(", ", $plGunids). "\n"; break; case "browseCategory": echo "RES({$xmlResponse['cnt']}): ". join(", ", $xmlResponse['results']). "\n"; break; default: //print_r($xmlResponse); } } } } ?>