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 extras.urlparsers.YoutubeParser;
import bot.Config;
import bot.Message;
import bot.Server;
public class Youtube implements bot.Module {
@Override
public void parse(Message m) {
String target = m.param();
if(!m.param().startsWith("#")) target = m.sender();
if(m.botCommand().equals("yt") || m.botCommand().equals("youtube")){
if(m.botParamsArray().length == 0)return;
String query = m.botParams().replaceAll("\\s+", "%20");
try {
URL url = new URL("https://www.googleapis.com/youtube/v3/search?part=snippet&key=" + Config.getGoogleApiKey() + "&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 items = json.get("items").getAsJsonArray().get(0).getAsJsonObject();
JsonObject id = items.get("id").getAsJsonObject();
String videoId = id.get("videoId").getAsString();
String title = "https://youtu.be/" + videoId + " | " + YoutubeParser.findById(videoId);
Server.say(target, title);
} catch (IOException e) {
e.printStackTrace();
}
catch(IndexOutOfBoundsException e){
Server.say(target,"No results found for " + m.botParams());
}
}
}
}