mirror of
https://github.com/plan-player-analytics/Plan.git
synced 2025-03-12 06:41:50 +01:00
Html Caching to Bungee WebAPI
This commit is contained in:
parent
f5c6b1c994
commit
b14ed6fac2
@ -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;
|
||||
}
|
||||
|
@ -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());
|
||||
|
@ -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) {
|
||||
|
@ -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));
|
||||
}
|
||||
|
||||
|
@ -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());
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user