/** * @param \Phergie\Irc\Event\UserEvent $event * @param \Phergie\Irc\Bot\React\EventQueueInterface $queue */ public function handleIrcReceived(UserEvent $event, Queue $queue) { $params = $event->getParams(); $message = $params['text']; $termPattern = '\\S+?|\\([^<>]+?\\)+'; $actionPattern = '(?P<action>\\+\\+|--)'; $modifyPattern = <<<REGEX {^ (?J) # allow overwriting capture names \\s* # ignore leading whitespace (?: # start with ++ or -- before the term {$actionPattern} (?P<term>{$termPattern}) | # follow the term with ++ or -- (?P<term>{$termPattern}) {$actionPattern} # allow no whitespace between the term and the action ) \$}ix REGEX; $versusPattern = <<<REGEX {^ (?P<term0>{$termPattern}) \\s+(?P<method><|>)\\s+ (?P<term1>{$termPattern})\$# \$}ix REGEX; $match = null; if (preg_match($modifyPattern, $message, $match)) { $this->modifyKarma($match['term'], $match['action'], $event, $queue); } elseif (preg_match($versusPattern, $message, $match)) { $term0 = trim($match['term0']); $term1 = trim($match['term1']); $method = $match['method']; $this->compareKarma($term0, $term1, $method, $event, $queue); } }
public function handleIrcReceived(UserEvent $event, EventQueue $queue) { $params = $event->getParams(); $extractor = new \Twitter_Extractor($params['text']); $urls = $extractor->extractURLs(); foreach ($urls as $url) { $this->handleUrl($url, $event, $queue); } }
public function handleIrcReceived(UserEvent $event, EventQueue $queue) { $params = $event->getParams(); $extractor = new \Twitter_Extractor($params['text']); $urls = $extractor->extractURLs(); foreach ($urls as $url) { if ($this->filter !== null && $this->filter->filter(new UrlEvent($url, $event)) !== false) { continue; } $this->handleUrl($url, $event, $queue); } }