public function preSave()
 {
     $this->setDatetime(date('Y-m-d H:i:s'));
     if ($this->getId() == '') {
         $connection = connection::byIp($this->getIp());
         if (is_object($connection)) {
             $this->setId($connection->getId());
         }
     }
     if ($this->getLocalisation() == '' && !netMatch('192.*.*.*', $this->getIp()) && !netMatch('127.0.0.1', $this->getIp()) && !netMatch('10.*.*.*', $this->getIp())) {
         try {
             $http = new com_http('http://ipinfo.io/' . $this->getIp());
             $http->setLogError(false);
             $details = json_decode($http->exec(1, 2), true);
             $localisation = '';
             if (is_array($details)) {
                 if (isset($details['country'])) {
                     $localisation .= $details['country'] . ' - ';
                 }
                 if (isset($details['region'])) {
                     $localisation .= $details['region'] . ' - ';
                 }
                 if (isset($details['postal'])) {
                     $localisation .= ' (' . $details['postal'] . ') ';
                 }
                 if (isset($details['city'])) {
                     $localisation .= $details['city'] . ' - ';
                 }
                 $this->setLocalisation($localisation);
                 if (isset($details['loc'])) {
                     $this->setInformations('coordonate', $details['loc']);
                 }
                 if (isset($details['org'])) {
                     $this->setInformations('org', $details['org']);
                 }
                 if (isset($details['hostname'])) {
                     $this->setInformations('hostname', $details['hostname']);
                 }
             }
         } catch (Exception $e) {
             $this->setLocalisation('Unknow');
         }
     }
 }
Exemple #2
0
 public function pushUrl($_value)
 {
     $url = $this->getConfiguration('jeedomPushUrl');
     if ($url == '') {
         $url = config::byKey('cmdPushUrl');
     }
     if ($url == '') {
         return;
     }
     $replace = array('#value#' => $_value, '#cmd_name#' => $this->getName(), '#cmd_id#' => $this->getId(), '#humanname#' => $this->getHumanName());
     $url = str_replace(array_keys($replace), $replace, $url);
     log::add('event', 'event', __('Appels de l\'URL de push pour la commande ', __FILE__) . $this->getHumanName() . ' : ' . $url);
     $http = new com_http($url);
     $http->setLogError(false);
     try {
         $http->exec();
     } catch (Exception $e) {
         log::add('cmd', 'error', __('Erreur push sur : ', __FILE__) . $url . ' => ' . $e->getMessage());
     }
 }