function makeMulticall($cmds, $hash, $add, $prefix) { $cmd = new rXMLRPCCommand($prefix . ".multicall", array($hash, "")); $cmd->addParameters(array_map("getCmd", $cmds)); foreach ($add as $prm) { $cmd->addParameter($prm); } $cnt = count($cmds) + count($add); $req = new rXMLRPCRequest($cmd); if ($req->success()) { $result = array(); for ($i = 0; $i < count($req->val); $i += $cnt) { $result[] = array_slice($req->val, $i, $cnt); } return $result; } return false; }
public function getEventCommand($cmd1, $cmd2, $args) { if ($this->iVersion < 0x804) { $cmd = new rXMLRPCCommand($cmd1); } else { // if($this->mostOfMethodsRenamed) // $cmd = new rXMLRPCCommand('method.set_key','event.download.'.$cmd2); // else $cmd = new rXMLRPCCommand('system.method.set_key', 'event.download.' . $cmd2); } $cmd->addParameters($args); return $cmd; }
public function correct() { $cmd = new rXMLRPCCommand("d.multicall", array("default", getCmd("d.get_hash="))); for ($i = 0; $i < MAX_RATIO; $i++) { $cmd->addParameters(array(getCmd("d.views.has") . "=rat_" . $i, getCmd("view.set_not_visible") . "=rat_" . $i)); } $req = new rXMLRPCRequest($cmd); $req->setParseByTypes(); if ($req->success()) { $req1 = new rXMLRPCRequest(); foreach ($req->strings as $no => $hash) { for ($i = 0; $i < MAX_RATIO; $i++) { if ($req->i8s[$no * MAX_RATIO * 2 + $i * 2] == 1) { $req1->addCommand(new rXMLRPCCommand("view.set_visible", array($hash, "rat_" . $i))); } } } return $req1->getCommandsCount() == 0 || $req1->success(); } return false; }