Эх сурвалжийг харах

Updated kotlin and libraries

Vadik Sirekanyan 3 жил өмнө
parent
commit
9651abdf08

+ 16 - 18
build.gradle.kts

@@ -1,5 +1,5 @@
 plugins {
-    val kotlinVersion = "1.4.10"
+    val kotlinVersion = "1.7.20"
     kotlin("jvm") version kotlinVersion
     kotlin("plugin.serialization") version kotlinVersion
     application
@@ -10,28 +10,23 @@ version = "0.1"
 
 repositories {
     mavenCentral()
-    jcenter {
-        content {
-            includeGroup("org.jetbrains.exposed")
-        }
-    }
 }
 
 dependencies {
-    implementation("org.telegram:telegrambots:5.3.0")
-    implementation("io.ktor:ktor-client-cio:1.4.0")
-    implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.0.0")
-    implementation("org.jetbrains.exposed:exposed-jdbc:0.28.1")
-    implementation("org.jetbrains.lets-plot:lets-plot-common:2.1.0")
-    implementation("org.jetbrains.lets-plot:lets-plot-image-export:2.1.0")
-    implementation("org.jetbrains.lets-plot:lets-plot-kotlin-jvm:3.0.2")
-    implementation("org.postgresql:postgresql:42.2.18")
-    implementation("org.slf4j:slf4j-simple:1.7.30")
-    testImplementation("junit:junit:4.13")
+    implementation("org.telegram:telegrambots:6.1.0")
+    implementation("io.ktor:ktor-client-cio:2.1.2")
+    implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.4.1")
+    implementation("org.jetbrains.exposed:exposed-jdbc:0.40.1")
+    implementation("org.jetbrains.lets-plot:lets-plot-common:2.5.0")
+    implementation("org.jetbrains.lets-plot:lets-plot-image-export:2.5.0")
+    implementation("org.jetbrains.lets-plot:lets-plot-kotlin-jvm:4.1.0")
+    implementation("org.postgresql:postgresql:42.5.0")
+    implementation("org.slf4j:slf4j-simple:2.0.3")
+    testImplementation("junit:junit:4.13.2")
 }
 
 application {
-    mainClassName = "com.sirekanyan.andersrobot.Main"
+    mainClass.set("com.sirekanyan.andersrobot.Main")
     if (hasProperty("debug")) {
         applicationDefaultJvmArgs = listOf("-Ddebug")
     }
@@ -39,7 +34,10 @@ application {
 
 tasks {
     compileKotlin {
-        kotlinOptions.jvmTarget = "1.8"
+        kotlinOptions {
+            jvmTarget = "1.8"
+            allWarningsAsErrors = true
+        }
     }
     jar {
         manifest.attributes["Main-Class"] = "com.sirekanyan.andersrobot.Main"

+ 1 - 1
src/main/kotlin/com/sirekanyan/andersrobot/Controller.kt

@@ -12,7 +12,7 @@ import com.sirekanyan.andersrobot.image.generateImage
 import com.sirekanyan.andersrobot.image.plotForecast
 import com.sirekanyan.andersrobot.repository.CityRepository
 import com.sirekanyan.andersrobot.repository.supportedLanguages
-import jetbrains.letsPlot.export.ggsave
+import org.jetbrains.letsPlot.export.ggsave
 import org.telegram.telegrambots.meta.api.objects.Location
 import org.telegram.telegrambots.meta.api.objects.Update
 import org.telegram.telegrambots.meta.bots.AbsSender

+ 3 - 2
src/main/kotlin/com/sirekanyan/andersrobot/api/WeatherApi.kt

@@ -4,6 +4,7 @@ import com.sirekanyan.andersrobot.config.Config
 import com.sirekanyan.andersrobot.config.ConfigKey.WEATHER_API_KEY
 import io.ktor.client.*
 import io.ktor.client.request.*
+import io.ktor.client.statement.*
 import kotlinx.coroutines.async
 import kotlinx.coroutines.runBlocking
 import kotlinx.serialization.decodeFromString
@@ -18,7 +19,7 @@ class WeatherApi {
 
     private val httpClient = HttpClient()
     private val apiKey = Config[WEATHER_API_KEY]
-    private val comparator = compareBy<Weather> { it.sys.country.toLowerCase().replace("ru", "aa") }.thenBy { it.name }
+    private val comparator = compareBy<Weather> { it.sys.country.lowercase().replace("ru", "aa") }.thenBy { it.name }
 
     fun getWeather(city: String, language: String?): Weather? = runBlocking {
         println("getting $city")
@@ -58,7 +59,7 @@ class WeatherApi {
                 }
                 parameter("units", "metric")
                 parameter("appid", apiKey)
-            }
+            }.bodyAsText()
             val json = Json { ignoreUnknownKeys = true }
             json.decodeFromString(response)
         } catch (ex: Exception) {

+ 9 - 9
src/main/kotlin/com/sirekanyan/andersrobot/image/ForecastPlotter.kt

@@ -2,15 +2,15 @@ package com.sirekanyan.andersrobot.image
 
 import com.sirekanyan.andersrobot.api.Forecast
 import jetbrains.datalore.base.values.Color
-import jetbrains.letsPlot.geom.geomHLine
-import jetbrains.letsPlot.geom.geomSmooth
-import jetbrains.letsPlot.geom.geomVLine
-import jetbrains.letsPlot.ggsize
-import jetbrains.letsPlot.intern.Plot
-import jetbrains.letsPlot.label.ggtitle
-import jetbrains.letsPlot.letsPlot
-import jetbrains.letsPlot.scale.scaleXContinuous
-import jetbrains.letsPlot.scale.scaleYContinuous
+import org.jetbrains.letsPlot.geom.geomHLine
+import org.jetbrains.letsPlot.geom.geomSmooth
+import org.jetbrains.letsPlot.geom.geomVLine
+import org.jetbrains.letsPlot.ggsize
+import org.jetbrains.letsPlot.intern.Plot
+import org.jetbrains.letsPlot.label.ggtitle
+import org.jetbrains.letsPlot.letsPlot
+import org.jetbrains.letsPlot.scale.scaleXContinuous
+import org.jetbrains.letsPlot.scale.scaleYContinuous
 import java.lang.System.currentTimeMillis
 import java.time.LocalDateTime
 import java.time.LocalTime

+ 1 - 0
src/main/kotlin/com/sirekanyan/andersrobot/repository/CityRepository.kt

@@ -2,6 +2,7 @@ package com.sirekanyan.andersrobot.repository
 
 import com.sirekanyan.andersrobot.repository.table.Cities
 import org.jetbrains.exposed.sql.*
+import org.jetbrains.exposed.sql.SqlExpressionBuilder.eq
 import org.jetbrains.exposed.sql.transactions.transaction
 
 interface CityRepository {