function php2xmlrpc($d) { if (XML_RPC_PLN::is_assoc($d)) { $struct = array(); while (list($k, $v) = each($d)) { $struct[$k] = XML_RPC_PLN::php2xmlrpc($v); } return new XML_RPC_Value($struct, "struct"); } elseif (is_array($d)) { $arr = array(); for ($i = 0; $i < count($d); $i++) { $arr[$i] = XML_RPC_PLN::php2xmlrpc($d[$i]); } return new XML_RPC_Value($arr, "array"); } elseif (is_string($d)) { return new XML_RPC_Value($d, "string"); } elseif (is_bool($d)) { return new XML_RPC_Value($d, "boolean"); } elseif (is_float($d)) { return new XML_RPC_Value($d, "double"); } elseif (is_int($d)) { return new XML_RPC_Value($d, "int"); } //error ? return new XML_RPC_Value(""); }
function getTrackXMLRPC($params) { $params = $this->findTrackID($params); $a = $this->getTrackArray($params["id"]); return XML_RPC_PLN::php2xmlrpc($a); }
$msg = new XML_RPC_Message("irate.getRatings"); $rep = $XMLRPC->send($msg); $rated_tracks = XML_RPC_PLN::xmlrpc2php($rep->value()); echo "<!-- XMLRPC CALL : \n" . $msg->serialize() . "\n -->"; //debug //for each rated track, get metadata for ($i = 0; $i < count($rated_tracks); $i++) { $tracks_ids[$i] = array("id" => $rated_tracks[$i]["id"]); } $msg = new XML_RPC_Message("irate.getInfo", array(XML_RPC_PLN::php2xmlrpc($tracks_ids))); $rep = $XMLRPC->send($msg); $tracks_metadata = XML_RPC_PLN::xmlrpc2php($rep->value()); echo "<!-- XMLRPC CALL : \n" . $msg->serialize() . "\n -->"; //debug //ask for one new track $msg = new XML_RPC_Message("irate.getNew", array(XML_RPC_PLN::php2xmlrpc(array("n" => 1)))); $rep = $XMLRPC->send($msg); $new_track = XML_RPC_PLN::xmlrpc2php($rep->value()); echo "<!-- XMLRPC CALL : \n" . $msg->serialize() . "\n -->"; //debug //that's it ! now we only need to display the tracks. ?> <table border=1> <tr> <th>Track name</th> <th>Artist name</th> <th>Crediturl</th> <th>Duration</th> <th>Rated</th> <th>Rate again ?</th>