package addon.currency; import bashoid.Message; import bashoid.Addon; import java.net.URLEncoder; import java.text.ParseException; import java.util.regex.Pattern; import utils.*; public class Currency extends Addon { private static final String SERVICE_URL = "http://www.google.com/ig/calculator?hl=en&q="; private static final Pattern PATTERN = Pattern.compile("^\\d+((\\.|,)\\d+)? +[a-zA-Z]+ +to +[a-zA-Z]+$"); protected String loadResponse(String query) throws Exception { String url = SERVICE_URL + URLEncoder.encode(query, "UTF-8"); WebPage page = WebPage.loadWebPage(url, "UTF-8"); return getResponseFromJSON(page); } protected String getResponseFromJSON(WebPage entry) throws ParseException { String[] p = entry.getContent().split("\","); return ( p[2].split("\"").length > 1 ) ? "Asi incorrect syntax nebo co." : p[0].split("\"")[1] + " = " + p[1].split("\"")[1]; } @Override public boolean shouldReact(Message message) { return PATTERN.matcher(message.text).find(); } @Override protected void setReaction(Message message) { try { reaction.add( loadResponse(message.text) ); } catch (ParseException pe) { setError("Cannot parse output.", pe); } catch (Exception e) { setError("Cannot load given URL.", e); } } }