From f5862b8edb1fe025eaf1c529764f1d9aab838cbe Mon Sep 17 00:00:00 2001 From: Linnea Gräf Date: Thu, 14 Mar 2024 13:12:46 +0100 Subject: Add json util --- .../at/hannibal2/skyhanni/changelog/GsonUtils.kt | 14 ++++++++++++++ .../kotlin/at/hannibal2/skyhanni/changelog/Main.kt | 21 +++++---------------- 2 files changed, 19 insertions(+), 16 deletions(-) create mode 100644 src/main/kotlin/at/hannibal2/skyhanni/changelog/GsonUtils.kt diff --git a/src/main/kotlin/at/hannibal2/skyhanni/changelog/GsonUtils.kt b/src/main/kotlin/at/hannibal2/skyhanni/changelog/GsonUtils.kt new file mode 100644 index 0000000..0520c21 --- /dev/null +++ b/src/main/kotlin/at/hannibal2/skyhanni/changelog/GsonUtils.kt @@ -0,0 +1,14 @@ +package at.hannibal2.skyhanni.changelog + +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken + +object GsonUtils { + + val gson = Gson() + + inline fun readObject(json: String): T { + return gson.fromJson(json, object : TypeToken() {}) + } + +} \ No newline at end of file diff --git a/src/main/kotlin/at/hannibal2/skyhanni/changelog/Main.kt b/src/main/kotlin/at/hannibal2/skyhanni/changelog/Main.kt index 8f62f34..40f7b72 100644 --- a/src/main/kotlin/at/hannibal2/skyhanni/changelog/Main.kt +++ b/src/main/kotlin/at/hannibal2/skyhanni/changelog/Main.kt @@ -1,5 +1,6 @@ package org.example +import at.hannibal2.skyhanni.changelog.GsonUtils import com.google.gson.GsonBuilder import com.google.gson.JsonArray @@ -25,19 +26,9 @@ val changePattern = "\\+ (?.*) - (?.*)".toPattern() val extraInfoPattern = " {4}\\* (?.*)".toPattern() val illegalStartPattern = "^[-=*+ ].*".toPattern() -fun getTextFromUrl(urlString: String): List { +fun getTextFromUrl(urlString: String): String { val url = URL(urlString) - val connection = url.openConnection() - val inputStream = connection.getInputStream() - val text = mutableListOf() - - inputStream.bufferedReader().useLines { lines -> - lines.forEach { - text.add(it) - } - } - - return text + return url.openStream().use { it.bufferedReader().readText() } } enum class WhatToDo { @@ -59,10 +50,8 @@ fun main() { WhatToDo.OPEN_PRS -> "https://api.github.com/repos/hannibal002/SkyHanni/pulls?state=open&sort=updated&direction=desc&per_page=30" } - val data = getTextFromUrl(url).joinToString("") - val gson = GsonBuilder().create() - val fromJson = gson.fromJson(data, JsonArray::class.java) - val prs = fromJson.map { gson.fromJson(it, PullRequest::class.java) } + val data = getTextFromUrl(url) + val prs = GsonUtils.readObject>(data) readPrs(prs, firstPr, hideWhenError, whatToDo, fullVersion, beta) } -- cgit