Html Caching to Bungee WebAPI

This commit is contained in:
Rsl1122 2017-09-16 18:29:37 +03:00
parent f5c6b1c994
commit b14ed6fac2
5 changed files with 28 additions and 39 deletions

View File

@ -21,8 +21,10 @@ import main.java.com.djrapitops.plan.systems.webserver.PageCache;
import main.java.com.djrapitops.plan.systems.webserver.response.AnalysisPageResponse;
import main.java.com.djrapitops.plan.systems.webserver.response.InspectPageResponse;
import main.java.com.djrapitops.plan.systems.webserver.response.Response;
import main.java.com.djrapitops.plan.systems.webserver.theme.Theme;
import main.java.com.djrapitops.plan.systems.webserver.webapi.WebAPIManager;
import main.java.com.djrapitops.plan.systems.webserver.webapi.bungee.IsCachedWebAPI;
import main.java.com.djrapitops.plan.systems.webserver.webapi.bungee.PostHtmlWebAPI;
import main.java.com.djrapitops.plan.systems.webserver.webapi.universal.PingWebAPI;
import main.java.com.djrapitops.plan.utilities.MiscUtils;
import main.java.com.djrapitops.plan.utilities.analysis.Analysis;
@ -72,7 +74,15 @@ public class BukkitInformationManager extends InformationManager {
@Override
public void cachePlayer(UUID uuid) {
PageCache.loadPage("inspectPage: " + uuid, () -> new InspectPageResponse(this, uuid));
if (usingBungeeWebServer) {
try {
getWebAPI().getAPI(PostHtmlWebAPI.class).sendInspectHtml(webServerAddress, uuid, getPlayerHtml(uuid));
} catch (WebAPIException e) {
Log.toLog(this.getClass().getName(), e);
}
} else {
PageCache.loadPage("inspectPage: " + uuid, () -> new InspectPageResponse(this, uuid));
}
plugin.addToProcessQueue(new Processor<UUID>(uuid) {
@Override
public void process() {
@ -138,9 +148,8 @@ public class BukkitInformationManager extends InformationManager {
@Override
public String getAnalysisHtml() {
// TODO Bungee part.
try {
return new AnalysisPageParser(analysisData, plugin).parse();
return Theme.replaceColors(new AnalysisPageParser(analysisData, plugin).parse());
} catch (ParseException e) {
Log.toLog(this.getClass().getName(), e);
}
@ -153,7 +162,7 @@ public class BukkitInformationManager extends InformationManager {
// TODO Bungee request
}
try {
return new InspectPageParser(uuid, plugin).parse();
return Theme.replaceColors(new InspectPageParser(uuid, plugin).parse());
} catch (ParseException e) {
Log.toLog(this.getClass().getName(), e);
}
@ -168,11 +177,23 @@ public class BukkitInformationManager extends InformationManager {
public void cacheAnalysisdata(AnalysisData analysisData) {
this.analysisData = analysisData;
refreshDate = MiscUtils.getTime();
PageCache.cachePage("analysisPage", () -> new AnalysisPageResponse(this));
cacheAnalysisHtml();
AnalyzeCommand.sendAnalysisMessage(analysisNotification);
analysisNotification.clear();
}
private void cacheAnalysisHtml() {
if (usingBungeeWebServer) {
try {
getWebAPI().getAPI(PostHtmlWebAPI.class).sendAnalysisHtml(webServerAddress, getAnalysisHtml());
} catch (WebAPIException e) {
Log.toLog(this.getClass().getName(), e);
}
} else {
PageCache.cachePage("analysisPage", () -> new AnalysisPageResponse(this));
}
}
public AnalysisData getAnalysisData() {
return analysisData;
}

View File

@ -61,7 +61,6 @@ public class WebServer {
}
private void registerWebAPIs() {
webAPI.registerNewAPI(new GetAnalysisWebAPI());
webAPI.registerNewAPI(new AnalyzeWebAPI());
webAPI.registerNewAPI(new ConfigurationWebAPI());
webAPI.registerNewAPI(new InspectWebAPI());

View File

@ -11,7 +11,7 @@ public class AnalysisPageResponse extends Response {
public AnalysisPageResponse(InformationManager informationManager) {
super.setHeader("HTTP/1.1 200 OK");
super.setContent(Theme.replaceColors(informationManager.getAnalysisHtml()));
super.setContent(informationManager.getAnalysisHtml());
}
public AnalysisPageResponse(String html) {

View File

@ -15,7 +15,7 @@ public class InspectPageResponse extends Response {
public InspectPageResponse(InformationManager infoManager, UUID uuid) {
super.setHeader("HTTP/1.1 200 OK");
super.setContent(Theme.replaceColors(infoManager.getPlayerHtml(uuid)));
super.setContent(infoManager.getPlayerHtml(uuid));
setInspectPagePluginsTab(infoManager.getPluginsTabContent(uuid));
}

View File

@ -1,31 +0,0 @@
/*
* Licence is provided in the jar as license.yml also here:
* https://github.com/Rsl1122/Plan-PlayerAnalytics/blob/master/Plan/src/main/resources/license.yml
*/
package main.java.com.djrapitops.plan.systems.webserver.webapi.bukkit;
import main.java.com.djrapitops.plan.api.IPlan;
import main.java.com.djrapitops.plan.systems.info.InformationManager;
import main.java.com.djrapitops.plan.systems.webserver.PageCache;
import main.java.com.djrapitops.plan.systems.webserver.response.Response;
import main.java.com.djrapitops.plan.systems.webserver.response.api.BadRequestResponse;
import main.java.com.djrapitops.plan.systems.webserver.response.api.JsonResponse;
import main.java.com.djrapitops.plan.systems.webserver.webapi.WebAPI;
import java.util.Map;
/**
* @author Fuzzlemann
*/
public class GetAnalysisWebAPI extends WebAPI {
@Override
public Response onResponse(IPlan plugin, Map<String, String> variables) {
InformationManager infoManager = plugin.getInfoManager();
if (!infoManager.isAnalysisCached()) {
return PageCache.loadPage("No Analysis Data", () -> new BadRequestResponse("No analysis data available"));
}
return new JsonResponse(infoManager.getAnalysisHtml());
}
}