package modules;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.Scanner;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import bot.Message;
import bot.Server;
public class Google implements bot.Module {
@Override
public void parse(Message m) {
String target = m.param();
if(!m.param().startsWith("#")) target = m.sender();
if(m.botCommand().equals("g") || m.botCommand().equals("google")){
if(m.botParamsArray().length == 0)return;
String query = m.botParams().replaceAll("\\s+", "%20");
try {
URL url = new URL("http://ajax.googleapis.com/ajax/services/search/web?v=1.0&safe=off&q=" + query);
InputStream in = url.openStream();
Scanner scan = new Scanner(in);
String jsonstring = "";
while(scan.hasNext()){
jsonstring += scan.next() + " ";
}
scan.close();
Gson gson = new GsonBuilder().create();
JsonObject json = gson.fromJson(jsonstring, JsonElement.class).getAsJsonObject();
JsonObject responseData = json.get("responseData").getAsJsonObject();
JsonObject results = responseData.get("results").getAsJsonArray().get(0).getAsJsonObject();
String urltitle = results.get("titleNoFormatting").getAsString();
if(urltitle.length() > 100) urltitle = urltitle.substring(0, 99).trim() + "...";
//String description = "";
String title = String.format("Results for %s: (%s) %s", m.botParams(), results.get("unescapedUrl").getAsString(), urltitle);
Server.say(target, title);
} catch (IOException e) {
e.printStackTrace();
}
catch (IndexOutOfBoundsException e){
String title = "No results found for " + m.botParams();
Server.say(target, title);
}
}
}
}