From af0e853c215709583734be90b2c3751757b74901 Mon Sep 17 00:00:00 2001 From: damontecres <154766448+damontecres@users.noreply.github.com> Date: Mon, 27 Oct 2025 21:22:44 -0400 Subject: [PATCH] Don't send crash reports as json (#84) This is a workaround for jellyfin/jellyfin-web#7267 to ensure the client logs are not valid JSON and can be rendered on the `10.11.x` web UI. Related to #82 --- .../wholphin/util/CrashReportSenderFactory.kt | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/github/damontecres/wholphin/util/CrashReportSenderFactory.kt b/app/src/main/java/com/github/damontecres/wholphin/util/CrashReportSenderFactory.kt index 420d718e..3c411724 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/util/CrashReportSenderFactory.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/util/CrashReportSenderFactory.kt @@ -15,7 +15,9 @@ import org.jellyfin.sdk.Jellyfin import org.jellyfin.sdk.api.client.extensions.clientLogApi import org.jellyfin.sdk.api.okhttp.OkHttpFactory import org.jellyfin.sdk.createJellyfin +import org.json.JSONObject import timber.log.Timber +import java.util.Date @AutoService(ReportSenderFactory::class) class CrashReportSenderFactory : ReportSenderFactory { @@ -53,11 +55,22 @@ class CrashReportSender : ReportSender { minimumServerVersion = Jellyfin.minimumVersion }.createApi(baseUrl = serverUrl, accessToken = accessToken) + val obj = JSONObject() + for ((key, value) in errorContent.toMap()) { + obj.put(key, value) + } + val jsonStr = obj.toString(2) runBlocking { val filename = api.clientLogApi - .logFile(errorContent.toJSON()) - .content.fileName + .logFile( + """ + --- + Date: ${Date()} + --- + + """.trimIndent() + jsonStr, + ).content.fileName Timber.i("Sent report to $serverUrl, filename=$filename") } } catch (ex: Exception) {