/** * Checks that user event data has been converted. * * @param array $data * @param \Phergie\Irc\Event\UserEvent $event */ protected function checkUserEventData(array $data, UserEvent $event) { $this->assertSame($data['prefix'], $event->getPrefix()); $this->assertSame($data['nick'], $event->getNick()); $this->assertSame($data['user'], $event->getUsername()); $this->assertSame($data['host'], $event->getHost()); $this->assertSame($data['message'], $event->getMessage()); $this->assertSame($data['command'], $event->getCommand()); $this->assertSame($data['targets'], $event->getTargets()); }
/** * Tests getSource(). * * @param string $target * @param string $source * @dataProvider dataProviderGetSource */ public function testGetSource($target, $source) { $connection = Phake::mock('\\Phergie\\Irc\\ConnectionInterface'); Phake::when($connection)->getNickname()->thenReturn('bot'); $this->event->setNick('user'); $this->event->setConnection($connection); $this->event->setTargets(array($target)); $this->assertSame($source, $this->event->getSource()); }
public function handleMessage(UserEvent $event, Queue $queue) { // make sure we don't react twice when the nfo command gets triggered if (strpos($event->getMessage(), 'nfo ') === false) { if (preg_match_all("/[a-z0-9._]{4,}-[a-z0-9]{3,}/i", $event->getMessage(), $matches)) { $matches = array_slice($matches[0], 0, $this->limit); foreach ($matches as $dirname) { $commandEvent = new CommandEvent(); $commandEvent->fromEvent($event); $commandEvent->setCustomParams(array($dirname)); $this->handleNfoCommand($commandEvent, $queue, false); } } } }
/** * @param Url $url * @param UserEvent $event * @param EventQueue $queue */ protected function sendMessage(Url $url, UserEvent $event, EventQueue $queue) { $message = $this->getHandler()->handle($url); $queue->ircPrivmsg($event->getSource(), $message); }
/** * Modifies a term's karma. * * @param string $term Term to modify * @param string $action Karma action (either ++ or --) * @param \Phergie\Irc\Event\UserEvent $event * @param \Phergie\Irc\Bot\React\EventQueueInterface $queue * @return bool|\React\Promise\Promise */ protected function modifyKarma($term, $action, UserEvent $event, Queue $queue) { $nick = $event->getNick(); $canonicalTerm = $this->getCanonicalTerm($term, $nick); if ($canonicalTerm == strtolower($nick)) { $message = 'You can\'t give yourself karma.'; $queue->ircPrivmsg($event->getSource(), $message); return false; } $karma = 0; return $this->messenger->rpc(MessageFactory::rpc('fetchKarma', ['term' => $canonicalTerm]))->then(function ($payload) use($event, $queue, $action, $term, $canonicalTerm, &$karma) { $this->logDebug('payload: ' . var_export($payload, true)); $karma = $payload['karma'] + ($action == '++' ? 1 : -1); return MessageFactory::rpc('modifyKarma', ['term' => $canonicalTerm, 'karma' => $karma]); })->then([$this->messenger, 'rpc'])->then(function ($payload) use($event, $queue, $action, $term) { $this->logDebug('payload: ' . var_export($payload, true)); $queue->ircPrivmsg($event->getSource(), $this->getUserMessage('karma' . $action, $term)); return $payload['karma']; }); }