public function isBotTriggered(TchatMessage $request, $currentAnswer = true) { $content = $request->getMessage(); $triggered = NULL != $content; $identity = $this->knowledges->identity; // Triggered by specific rules if (isset($identity->trigger) && !empty($identity->trigger)) { // Called by his name if (!empty($identity->trigger->called)) { $triggered &= preg_match('!(?:^|\\s|[_-])(' . implode('|', $identity->trigger->called) . ')(?:$|\\s|[\'_-])!i', $content); } // Specific sentance if (!empty($identity->trigger->sentance)) { $triggered &= preg_match('!(' . implode('|', $identity->trigger->sentance) . ')!i', $content); } } return $triggered; }
public function analyseRequest(TchatMessage $request, AnalysedRequest $currentAnalysedRequest = null) { if (empty($this->selectedPositrons)) { return new AnalysedRequest($request->getMessage(), $request->getName(), $request->getDate(), $request); } foreach ($this->selectedPositrons as $positron) { $currentAnalysedRequest = $positron->analyseRequest($request, $currentAnalysedRequest); } if (null == $currentAnalysedRequest) { $currentAnalysedRequest = new AnalysedRequest($request->getMessage(), $request->getName(), $request->getDate(), $request); } return $currentAnalysedRequest; }