/**
  * Responds with a magic eight ball phrase when asked questions
  *
  * @param \Phergie\Irc\Event\EventInterface $event
  * @param \Phergie\Irc\Bot\React\EventQueueInterface $queue
  */
 public function handleEvent(Event $event, Queue $queue)
 {
     if ($event instanceof UserEvent) {
         $nick = $event->getNick();
         $channel = $event->getSource();
         $params = $event->getParams();
         $text = $params['text'];
         $matched = stripos($text, '8 ball') !== false;
         if ($matched) {
             $msg = $nick . ', the magic 8 ball says "' . $this->getMagicEightBallAnswer() . '"';
             $queue->ircPrivmsg($channel, $msg);
         }
     }
 }
 /**
  * Handles a successful request for video data.
  *
  * @param string $url URL of the request
  * @param \GuzzleHttp\Message\Response $data Response body
  * @param \Phergie\Irc\EventInterface $event
  * @param \Phergie\Irc\Bot\React\EventQueueInterface $queue
  */
 public function resolve($url, \GuzzleHttp\Message\Response $data, Event $event, Queue $queue)
 {
     $logger = $this->getLogger();
     $json = json_decode($data->getBody());
     $logger->info('resolve', array('url' => $url, 'json' => $json));
     if (isset($json->error)) {
         return $logger->warning('Query response contained an error', array('url' => $url, 'error' => $json->error));
     }
     $entries = $json->items;
     if (!is_array($entries) || !$entries) {
         return $logger->warning('Query returned no results', array('url' => $url));
     }
     $entry = reset($entries);
     $replacements = $this->getReplacements($entry);
     $message = str_replace(array_keys($replacements), array_values($replacements), $this->responseFormat);
     $queue->ircPrivmsg($event->getSource(), $message);
 }
Пример #3
0
 /**
  * Handles a successful request for video data.
  *
  * @param string $url URL of the request
  * @param \GuzzleHttp\Message\Response $data Response body
  * @param \Phergie\Irc\EventInterface $event
  * @param \Phergie\Irc\Bot\React\EventQueueInterface $queue
  */
 public function resolve($url, \GuzzleHttp\Message\Response $data, Event $event, Queue $queue)
 {
     $logger = $this->getLogger();
     $json = json_decode($data->getBody());
     $logger->info('resolve', ['url' => $url, 'json', $json]);
     if (isset($json->error)) {
         return $logger->warning('Twitch response error', ['url' => $url, 'error' => $json->error, 'message' => $json->message]);
     }
     if (null === $json->stream) {
         return $queue->ircPrivmsg($event->getSource(), "Stream is offline");
     }
     $replacements = $this->getReplacements($json);
     $message = str_replace(array_keys($replacements), array_values($replacements), $this->responseFormat);
     $queue->ircPrivmsg($event->getSource(), $message);
 }