public static function pull() { foreach (sms::byType('sms') as $eqLogic) { try { if ($eqLogic->getIsEnable() == 1) { $cmds = $eqLogic->getCmd(); foreach ($eqLogic->readInbox() as $message) { $eqLogic->deleteSms($message['id']); $autorized = false; foreach ($cmds as $cmd) { $formatedPhoneNumber = '+33' . substr($cmd->getConfiguration('phonenumber'), 1); if ($cmd->getConfiguration('phonenumber') == $message['phonenumber'] || $formatedPhoneNumber == $message['phonenumber']) { $autorized = true; break; } } $reply = ''; if ($autorized) { $reply = interactQuery::tryToReply(trim($message['message']), array()); if (trim($reply) != '') { $eqLogic->sendSMS($message['phonenumber'], self::cleanSMS($reply)); } } log::add('sms', 'info', 'Message venant de ' . $formatedPhoneNumber . ' : ' . trim($message['message']) . "\nRéponse : " . $reply); } } } catch (Exception $e) { $eqLogic->setIsEnable(0); $eqLogic->save(); throw $e; } } }
$jsonrpc->makeSuccess(log::clear($params['log'])); } if ($jsonrpc->getMethod() == 'log::remove') { $jsonrpc->makeSuccess(log::remove($params['log'])); } /* * ************************Messages*************************** */ if ($jsonrpc->getMethod() == 'message::removeAll') { message::removeAll(); $jsonrpc->makeSuccess('ok'); } if ($jsonrpc->getMethod() == 'message::all') { $jsonrpc->makeSuccess(utils::o2a(message::all())); } /* * ************************Interact*************************** */ if ($jsonrpc->getMethod() == 'interact::tryToReply') { $jsonrpc->makeSuccess(interactQuery::tryToReply($params['query'])); } /* * ************************USB mapping*************************** */ if ($jsonrpc->getMethod() == 'jeedom::getUsbMapping') { $name = isset($params['name']) ? $params['name'] : ''; $gpio = isset($params['gpio']) ? $params['gpio'] : false; $jsonrpc->makeSuccess(jeedom::getUsbMapping($name, $gpio)); } /* * ************************Plugin*************************** */ if ($jsonrpc->getMethod() == 'plugin::install') { try { $market = market::byId($params['plugin_id']); } catch (Exception $e) { $market = market::byLogicalId($params['plugin_id']); } if (!is_object($market)) {
$interactQuery->setEnable(init('enable')); $interactQuery->save(); ajax::success(); } if (init('action') == 'changeAllState') { $interactQueries = interactQuery::byInteractDefId(init('id')); if (is_array($interactQueries)) { foreach ($interactQueries as $interactQuery) { $interactQuery->setEnable(init('enable')); $interactQuery->save(); } } ajax::success(); } if (init('action') == 'execute') { ajax::success(interactQuery::tryToReply(init('query'))); } if (init('action') == 'test') { $return = array(); $interactQuery = interactQuery::recognize(init('query')); if ($interactQuery == null) { ajax::success(array('interactQuery' => null)); } $interactDef = interactDef::byId($interactQuery->getInteractDef_id()); $return['interactQuery'] = utils::o2a($interactQuery); if ($interactQuery->getLink_type() == 'cmd') { $return['cmd'] = ''; foreach (explode('&&', $interactQuery->getLink_id()) as $cmd_id) { $cmd = cmd::byId($cmd_id); if (is_object($cmd)) { $return['cmd'] .= '#' . $cmd->getHumanName() . '# && ';
* * You should have received a copy of the GNU General Public License * along with Jeedom. If not, see <http://www.gnu.org/licenses/>. */ header('Content-type: application/json'); require_once dirname(__FILE__) . "/../../../../core/php/core.inc.php"; if (init('apikey') != config::byKey('api') || config::byKey('api') == '') { connection::failed(); echo 'Clef API non valide, vous n\'etes pas autorisé à effectuer cette action (jeeApi)'; die; } if (init('user_name') == 'slackbot' || init('user_id') == 'USLACKBOT') { echo json_encode(array('text' => '')); die; } $eqLogic = slack::byLogicalId(init('team_domain'), 'slack'); if (!is_object($eqLogic)) { echo json_encode(array('text' => __('Domaine inconnue : ', __FILE__) . init('team_domain'))); die; } $parameters = array(); $user = user::byLogin(init('user_name')); if (is_object($user)) { $parameters['profile'] = init('user_name'); } $cmd_text = $eqLogic->getCmd('info', 'text'); $cmd_text->event(trim(init('text'))); $cmd_sender = $eqLogic->getCmd('info', 'sender'); $cmd_sender->event(init('user_name')); $reply = interactQuery::tryToReply(trim(init('text')), $parameters); echo json_encode(array('text' => $reply));