package de.yannicpunktdee.yoshibot.command.commands;

import com.sun.org.apache.xalan.internal.xsltc.compiler.util.Type;
import de.yannicpunktdee.yoshibot.command.YoshiCommand;
import de.yannicpunktdee.yoshibot.command.YoshiCommandContext;
import de.yannicpunktdee.yoshibot.utils.Logger;
import de.yannicpunktdee.yoshibot.utils.RestHelper;
import org.json.JSONObject;

public class WikipediaCommand extends YoshiCommand {
	/**
	 * Erzeugt ein neues Kommando, führt es aber noch nicht aus. Es wird ermittelt, ob die Argumentenkombination valide
	 * ist und das isOk-Flag gesetzt. Im Fehlerfall wird eine Fehleremeldung spezifiziert.
	 *
	 * @param context Der Kontext mit dem das Kommando aufgerufen wurde.
	 */
	public WikipediaCommand(YoshiCommandContext context) {
		super(context);
	}
	
	@Override
	public boolean execute() {
		if (!super.execute()) return false;
		
		String url = "https://de.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&exintro&explaintext" +
					 "&redirects&titles=" + context.getArgument("name");
		
		JSONObject articleBase = new JSONObject(RestHelper.getFromURL(url));
		JSONObject pages = articleBase.getJSONObject("query").getJSONObject("pages");
		if (pages.has("-1")){
			sendMessage("Kein Artikel namens " + context.getArgument("name") + " gefunden!");
			Logger.log("Konnte Artikel " + context.getArgument("name") + " nicht finden!", Type.WARNING);
		}
		return true;
	}
}
