From 86975303ec833f23a45ae74380e1b9633f4fc054 Mon Sep 17 00:00:00 2001 From: Michael Hillcox Date: Sat, 23 Mar 2024 16:35:26 +0000 Subject: [PATCH] feat: add shared version to the log uploader fix: log uploader uploading the wrong data from the settings file --- subprocess/build.gradle | 14 ++++++++++++-- .../creeperhost/creeperlauncher/Constants.java | 2 ++ .../creeperlauncher/util/LogsUploader.java | 16 +++++++++++----- 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/subprocess/build.gradle b/subprocess/build.gradle index 024c6925..d7c07e23 100644 --- a/subprocess/build.gradle +++ b/subprocess/build.gradle @@ -86,10 +86,20 @@ dependencies { // useJUnitPlatform() //} +// Lazy wrapper for the package.json data. +def packageJsonData = null +def packageJsonHolder = () -> { + if (packageJsonData == null) { + packageJsonData = new JsonSlurper().parse(file("../package.json")) + } + + return packageJsonData +} + task processSource(type: Sync) { from sourceSets.main.java inputs.property 'version', version - filter(ReplaceTokens, tokens: [APPVERSION: version, WEBVERSION: version, BRANCH: branch, SENTRY: sentryDsn]) + filter(ReplaceTokens, tokens: [APPVERSION: version, WEBVERSION: version, SHAREDVERSION: packageJsonHolder().version, BRANCH: branch, SENTRY: sentryDsn]) into "$buildDir/src" } @@ -161,7 +171,7 @@ tasks.register('writeLicenses', Copy) { tasks.register('writeVersion') { it.dependsOn 'downloadLicenses' doLast { - def packageJson = new JsonSlurper().parse(file("../package.json")) + def packageJson = packageJsonHolder() file("$projectDir/build/libs/meta.json").newWriter().withWriter { w -> w << JsonOutput.toJson( diff --git a/subprocess/src/main/java/net/creeperhost/creeperlauncher/Constants.java b/subprocess/src/main/java/net/creeperhost/creeperlauncher/Constants.java index a3dc30d9..10f3e862 100644 --- a/subprocess/src/main/java/net/creeperhost/creeperlauncher/Constants.java +++ b/subprocess/src/main/java/net/creeperhost/creeperlauncher/Constants.java @@ -83,8 +83,10 @@ public class Constants { public static final int WEBSOCKET_PORT = 13377; public static final String APPVERSION = "@APPVERSION@"; public static final String BRANCH = "@BRANCH@"; + public static final String SHARED_VERSION = "@SHAREDVERSION@"; public static final String SENTRY_DSN = "@SENTRY@"; public static final String PLATFORM = WORKING_DIR.toAbsolutePath().toString().contains("Overwolf") ? "Overwolf" : "Electron"; + public static final String USER_AGENT = "modpacklauncher/" + APPVERSION + " Mozilla/5.0 (" + OS.CURRENT.name() + ") AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.138 Safari/537.36 Vivaldi/1.8.770.56"; private static final Throttler GLOBAL_THROTTLER = new Throttler(); diff --git a/subprocess/src/main/java/net/creeperhost/creeperlauncher/util/LogsUploader.java b/subprocess/src/main/java/net/creeperhost/creeperlauncher/util/LogsUploader.java index 361f2942..2d2fbd23 100644 --- a/subprocess/src/main/java/net/creeperhost/creeperlauncher/util/LogsUploader.java +++ b/subprocess/src/main/java/net/creeperhost/creeperlauncher/util/LogsUploader.java @@ -51,7 +51,7 @@ public class LogsUploader { public static String uploadUILogs() { var obj = new JsonObject(); - obj.addProperty("version", "2.0.0"); + obj.addProperty("version", "2.0.1"); var metaDetails = new JsonObject(); metaDetails.addProperty("instanceCount", Instances.allInstances().size()); @@ -65,6 +65,7 @@ public static String uploadUILogs() { var appDetails = new JsonObject(); appDetails.addProperty("app", Constants.APPVERSION); appDetails.addProperty("platform", Constants.PLATFORM); + appDetails.addProperty("sharedVersion", Constants.SHARED_VERSION); obj.add("appDetails", appDetails); var systemDetails = new JsonObject(); @@ -95,7 +96,12 @@ public static String uploadUILogs() { } private static String getFilteredSettings() { - return uploadIfNotEmpty(GSON.toJson(Settings.getSettings())); + try { + return GSON.toJson(Settings.getSettings()); + } catch (Throwable e) { + LOGGER.warn("Failed to get settings", e); + return "settings failed to load"; + } } private static JsonObject collectLogs() { @@ -115,7 +121,7 @@ private static JsonObject collectLogs() { .entrySet() .forEach(e -> logs.addProperty(e.getKey(), e.getValue().getAsString())); - getLastTwoDebugLogsFromHistory() + getLastFourDebugLogsFromHistory() .forEach((key, value) -> logs.addProperty(key, uploadIfNotEmpty(value))); return logs; @@ -256,8 +262,8 @@ public static String getDebugLog() { return null; } - public static Map getLastTwoDebugLogsFromHistory() { - var files = List.of("debug-1.log.gz", "debug-2.log.gz"); + public static Map getLastFourDebugLogsFromHistory() { + var files = List.of("debug-1.log.gz", "debug-2.log.gz", "debug-3.log.gz", "debug-4.log.gz"); var existingFiles = files.stream() .map(Constants.getDataDir().resolve("logs")::resolve) .filter(Files::exists)