package polly.linkexpander.core.grabbers; import java.util.LinkedList; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; import de.skuzzle.polly.sdk.eventlistener.MessageEvent; import de.skuzzle.polly.sdk.eventlistener.MessageType; public class URLLinkGrabber implements LinkGrabber { private final static Pattern URL_PATTERN = Pattern.compile( "(https?|ftp|file)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]"); //$NON-NLS-1$ private List<MessageEvent> urls; public URLLinkGrabber() { this.urls = new LinkedList<MessageEvent>(); } public List<MessageEvent> getUrls() { return this.urls; } @Override public Pattern getLinkPattern() { return URL_PATTERN; } @Override public String processMatch(MessageEvent matched, Matcher matcher) { MessageEvent e = new MessageEvent( matched.getSource(), matched.getUser(), MessageType.PUBLIC, matched.getChannel(), this.getLink(matched.getMessage(), matcher)); this.urls.add(e); return null; } @Override public String getLink(String input, Matcher matcher) { return new String(matcher.group()); } }