diff --git a/src/main/java/org/parabot/core/Configuration.java b/src/main/java/org/parabot/core/Configuration.java index a8185a6..27e1a6b 100644 --- a/src/main/java/org/parabot/core/Configuration.java +++ b/src/main/java/org/parabot/core/Configuration.java @@ -11,8 +11,10 @@ public class Configuration extends org.parabot.api.Configuration { public static final String LOGIN_SERVER = "http://bdn.parabot.org/api/v2/users/login"; public static final String GET_SCRIPTS = "http://bdn.parabot.org/api/get.php?action=scripts_scripts&server="; public static final String GET_SCRIPT = "http://bdn.parabot.org/api/get.php?action=scripts_script&id="; + public static final String GET_SERVER_PROVIDER_TYPE = "http://v3.bdn.parabot.org/api/bot/server/type?server="; public static final String GET_SERVER_PROVIDERS = "http://bdn.parabot.org/api/get.php?action=server_providers"; public static final String GET_SERVER_PROVIDER = "http://v3.bdn.parabot.org/api/bot/download/provider?nightly=%s&server=%s"; + public static final String SERVER_PROVIDER_INFO = "http://v3.bdn.parabot.org/api/bot/list/%s?latest=true"; public static final String GET_SERVER_PROVIDER_INFO = "http://bdn.parabot.org/api/get.php?action=server_information&name="; public static final String GET_SERVER_SETTINGS = "http://bdn.parabot.org/api/get.php?action=get_settings"; public static final String GET_BOT_VERSION = "http://bdn.parabot.org/api/v2/bot/version"; diff --git a/src/main/java/org/parabot/core/desc/ServerProviderInfo.java b/src/main/java/org/parabot/core/desc/ServerProviderInfo.java index 9e2682f..81d3bcd 100644 --- a/src/main/java/org/parabot/core/desc/ServerProviderInfo.java +++ b/src/main/java/org/parabot/core/desc/ServerProviderInfo.java @@ -183,29 +183,16 @@ public class ServerProviderInfo { return null; } - /** - * This is a temporary method until the bdn gets updated - * @param serverName + * Gets the current provider version + * * @return */ - public static String getProviderVersion(String serverName) { - try { - serverName = serverName.toLowerCase(); - String providerInfo = String.format("http://v3.bdn.parabot.org/api/bot/list/%s-provider?latest=true", serverName); - String response = WebUtil.getContents(providerInfo); - - if (response.length() > 0) { - JSONObject jsonObject = (JSONObject) WebUtil.getJsonParser().parse(response); - - if (jsonObject.get("version") != null) { - return jsonObject.get("version").toString(); - } - } else if (response.equals("")) { - return getProviderVersion("default"); - } - } catch(Exception ex) { - ex.printStackTrace(); + public String getProviderVersion() { + String providerType = WebUtil.getJsonValue(Configuration.GET_SERVER_PROVIDER_TYPE + properties.getProperty("name"), "type"); + if(providerType != null) { + String providerInfo = String.format(Configuration.SERVER_PROVIDER_INFO, providerType); + return WebUtil.getJsonValue(providerInfo, "version"); } return null; diff --git a/src/main/java/org/parabot/environment/api/utils/WebUtil.java b/src/main/java/org/parabot/environment/api/utils/WebUtil.java index 14c175b..de52651 100644 --- a/src/main/java/org/parabot/environment/api/utils/WebUtil.java +++ b/src/main/java/org/parabot/environment/api/utils/WebUtil.java @@ -1,5 +1,7 @@ package org.parabot.environment.api.utils; +import org.json.simple.JSONObject; + /** * A WebUtil class fetches data from an URL * @@ -7,4 +9,27 @@ package org.parabot.environment.api.utils; */ public class WebUtil extends org.parabot.api.io.WebUtil { + /** + * Fetches a single value from a JSON string at the given url + * + * @param url + * @param key + * @return value that belongs to given key + */ + public static String getJsonValue(String url, String key) { + try { + String response = WebUtil.getContents(url); + + if(response.length() > 0) { + JSONObject jsonObject = (JSONObject) WebUtil.getJsonParser().parse(response); + if (jsonObject.get(key) != null) { + return jsonObject.get(key).toString(); + } + } + } catch (Exception ex) { + ex.printStackTrace(); + } + + return null; + } } diff --git a/src/main/java/org/parabot/environment/servers/executers/PublicServerExecuter.java b/src/main/java/org/parabot/environment/servers/executers/PublicServerExecuter.java index 3e76f16..3089548 100644 --- a/src/main/java/org/parabot/environment/servers/executers/PublicServerExecuter.java +++ b/src/main/java/org/parabot/environment/servers/executers/PublicServerExecuter.java @@ -57,7 +57,7 @@ public class PublicServerExecuter extends ServerExecuter { Core.verbose("Downloading: " + jarUrl + " ..."); - String providerVersion = ServerProviderInfo.getProviderVersion(serverName); + String providerVersion = serverProviderInfo.getProviderVersion(); if(providerVersion == null) { providerVersion = "error"; }