package addon.title;
import bashoid.Addon;
import bashoid.Message;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.jsoup.Jsoup;
import utils.*;
public class Title extends Addon {
private static final Pattern PATTERN = Pattern.compile("^t +(http\\S+)");
private String loadTitle(String url) throws Exception {
WebPage page = WebPage.loadWebPage(url, "UTF-8");
return getTitleFromRawHTML(page);
}
private String getTitleFromRawHTML(WebPage entry) {
String title = Jsoup.parse( entry.getContent() ).title();
return Formatter.removeHTML(title);
}
@Override
public boolean shouldReact(Message message) {
return PATTERN.matcher(message.text).find();
}
@Override
protected void setReaction(Message message) {
try {
Matcher matcher = PATTERN.matcher(message.text);
matcher.find();
reaction.add( loadTitle( matcher.group(1) ) );
} catch (Exception e) {
setError("Cannot load given URL.", e);
}
}
}