Example #1
0
function vocalinfo_give_me_all($text, $confidence, $parameters)
{
    $cli = new Client();
    $cli->connect();
    $cli->talk("Je peux parler, evidemment, et t\\'écouter plus précisément qu\\'avant");
    $cli->talk("Je peux eprouver et montrer des sentiments");
    $cli->talk("Comme la colère");
    $cli->emotion("angry");
    $cli->talk("Ou la timidité");
    $cli->emotion("shy");
    $cli->talk("Et tout un tas d\\'autres lubies humaines");
    $cli->talk("Je peux aussi exécuter un programme");
    $cli->execute("D:\\Programme_installes\\Qt\\Tools\\QtCreator\\bin\\qtcreator.exe");
    $cli->talk("ou un son");
    $cli->sound("C:/poule.wav");
    $cli->talk("ou te montrer des images");
    $cli->image("yana.jpg");
    $cli->talk("ou executer une commande domotique");
    //system('gpio write 1 1');
    //$cli->talk("ou executer un humain");
    //$cli->talk("non je déconne.");
    $cli->disconnect();
}
 /**
  * TODO: This function needs simplifying.
  * @param $name
  * @param $arguments
  * @param $expected_class - optional, the expected class name
  * @return Request|expected_class
  * @throws Exception
  */
 public function call($name, $arguments, $expected_class = null)
 {
     if (!isset($this->methods[$name])) {
         $this->client->getLogger()->error('Service method unknown', array('service' => $this->serviceName, 'resource' => $this->resourceName, 'method' => $name));
         throw new Exception("Unknown function: " . "{$this->serviceName}->{$this->resourceName}->{$name}()");
     }
     $method = $this->methods[$name];
     $parameters = $arguments[0];
     // postBody is a special case since it's not defined in the discovery
     // document as parameter, but we abuse the param entry for storing it.
     $postBody = null;
     if (isset($parameters['postBody'])) {
         if ($parameters['postBody'] instanceof Model) {
             // In the cases the post body is an existing object, we want
             // to use the smart method to create a simple object for
             // for JSONification.
             $parameters['postBody'] = $parameters['postBody']->toSimpleObject();
         } else {
             if (is_object($parameters['postBody'])) {
                 // If the post body is another kind of object, we will try and
                 // wrangle it into a sensible format.
                 $parameters['postBody'] = $this->convertToArrayAndStripNulls($parameters['postBody']);
             }
         }
         $postBody = json_encode($parameters['postBody']);
         if ($postBody === false && $parameters['postBody'] !== false) {
             throw new Exception("JSON encoding failed. Ensure all strings in the request are UTF-8 encoded.");
         }
         unset($parameters['postBody']);
     }
     // TODO: optParams here probably should have been
     // handled already - this may well be redundant code.
     if (isset($parameters['optParams'])) {
         $optParams = $parameters['optParams'];
         unset($parameters['optParams']);
         $parameters = array_merge($parameters, $optParams);
     }
     if (!isset($method['parameters'])) {
         $method['parameters'] = array();
     }
     $method['parameters'] = array_merge($this->stackParameters, $method['parameters']);
     foreach ($parameters as $key => $val) {
         if ($key != 'postBody' && !isset($method['parameters'][$key])) {
             $this->client->getLogger()->error('Service parameter unknown', array('service' => $this->serviceName, 'resource' => $this->resourceName, 'method' => $name, 'parameter' => $key));
             throw new Exception("({$name}) unknown parameter: '{$key}'");
         }
     }
     foreach ($method['parameters'] as $paramName => $paramSpec) {
         if (isset($paramSpec['required']) && $paramSpec['required'] && !isset($parameters[$paramName])) {
             $this->client->getLogger()->error('Service parameter missing', array('service' => $this->serviceName, 'resource' => $this->resourceName, 'method' => $name, 'parameter' => $paramName));
             throw new Exception("({$name}) missing required param: '{$paramName}'");
         }
         if (isset($parameters[$paramName])) {
             $value = $parameters[$paramName];
             $parameters[$paramName] = $paramSpec;
             $parameters[$paramName]['value'] = $value;
             unset($parameters[$paramName]['required']);
         } else {
             // Ensure we don't pass nulls.
             unset($parameters[$paramName]);
         }
     }
     $this->client->getLogger()->info('Service Call', array('service' => $this->serviceName, 'resource' => $this->resourceName, 'method' => $name, 'arguments' => $parameters));
     $url = REST::createRequestUri($this->servicePath, $method['path'], $parameters);
     $httpRequest = new Request($url, $method['httpMethod'], null, $postBody);
     if ($this->rootUrl) {
         $httpRequest->setBaseComponent($this->rootUrl);
     } else {
         $httpRequest->setBaseComponent($this->client->getBasePath());
     }
     if ($postBody) {
         $contentTypeHeader = array();
         $contentTypeHeader['content-type'] = 'application/json; charset=UTF-8';
         $httpRequest->setRequestHeaders($contentTypeHeader);
         $httpRequest->setPostBody($postBody);
     }
     $httpRequest = $this->client->getAuth()->sign($httpRequest);
     $httpRequest->setExpectedClass($expected_class);
     if (isset($parameters['data']) && ($parameters['uploadType']['value'] == 'media' || $parameters['uploadType']['value'] == 'multipart')) {
         // If we are doing a simple media upload, trigger that as a convenience.
         $mfu = new MediaFileUpload($this->client, $httpRequest, isset($parameters['mimeType']) ? $parameters['mimeType']['value'] : 'application/octet-stream', $parameters['data']['value']);
     }
     if (isset($parameters['alt']) && $parameters['alt']['value'] == 'media') {
         $httpRequest->enableExpectedRaw();
     }
     if ($this->client->shouldDefer()) {
         // If we are in batch or upload mode, return the raw request.
         return $httpRequest;
     }
     return $this->client->execute($httpRequest);
 }
Example #3
0
        if ($this->username && $this->password) {
            curl_setopt($ch, CURLOPT_USERPWD, $this->username . ':' . $this->password);
        }
        $result = curl_exec($ch);
        $response = json_decode($result, true);
        curl_close($ch);
        return is_array($response) ? $response : array();
    }
}
$client = new Client("http://127.0.0.1:54121/chancecoin");
$client->authentication("chancecoin", "password");
// $result = $client->execute('reparse', array());
/*
$result = $client->execute('importPrivateKey', array('KybpV7G13H8Yc9G5dRVPqt3KsTaYQQnozX9xvdqy744F1jNUygh1'));
print_r($result);
print "\n";

$result = $client->execute('getBalance', array('1FAnfga47hhfNkxHJ7Qnh1HxxyVHgP2Hes'));
print_r($result);
print "\n";

$result = $client->execute('send', array('1GbWCwjHorFdFTuGzGk8tEtLctq4xxxqY9', '1FAnfga47hhfNkxHJ7Qnh1HxxyVHgP2Hes', 1000.0));
print_r($result);
print "\n";
*/
$result = $client->execute('getSends', array('1FAnfga47hhfNkxHJ7Qnh1HxxyVHgP2Hes'));
print_r($result);
print "\n";
$result = $client->execute('getReceives', array('1FAnfga47hhfNkxHJ7Qnh1HxxyVHgP2Hes'));
print_r($result);
print "\n";
Example #4
0
function common_listen($command, $text, $confidence, $user)
{
    echo "\n" . 'diction de la commande : ' . $command;
    $response = array();
    Plugin::callHook("vocal_command", array(&$response, YANA_URL . '/action.php'));
    $commands = array();
    echo "\n" . 'Test de comparaison avec ' . count($response['commands']) . ' commandes';
    foreach ($response['commands'] as $cmd) {
        if ($command != $cmd['command']) {
            continue;
        }
        if (!isset($cmd['parameters'])) {
            $cmd['parameters'] = array();
        }
        if (isset($cmd['callback'])) {
            //Catch des commandes pour les plugins en format client v2
            echo "\n" . 'Commande trouvée, execution de la fonction plugin ' . $cmd['callback'];
            call_user_func($cmd['callback'], $text, $confidence, $cmd['parameters'], $user);
        } else {
            //Catch des commandes pour les plugins en format  client v1
            echo "\n" . 'Commande ancien format trouvée, execution de l\'url ' . $cmd['url'] . '&token=' . $user->getToken();
            $result = file_get_contents($cmd['url'] . '&token=' . $user->getToken());
            $result = json_decode($result, true);
            if (is_array($result)) {
                $client = new Client();
                $client->connect();
                foreach ($result['responses'] as $resp) {
                    switch ($resp['type']) {
                        case 'talk':
                            $client->talk($resp['sentence']);
                            break;
                        case 'sound':
                            $client->sound($resp['file']);
                            break;
                        case 'command':
                            $client->execute($resp['program']);
                            break;
                    }
                }
                $client->disconnect();
            }
        }
    }
}