/** * 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); }
/** * 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); }