From 4510ec4a6e8f0731105f33d26738f04cb058e373 Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Thu, 7 Jul 2022 22:28:47 +0200 Subject: [PATCH] only save png tiles 256px and up --- modules/events-server/build.gradle.kts | 3 --- .../kafkatorio/server/processor/eventProcessor.kt | 6 ------ .../server/processor/topology/saveMapTiles.kt | 15 +++++++++++---- 3 files changed, 11 insertions(+), 13 deletions(-) diff --git a/modules/events-server/build.gradle.kts b/modules/events-server/build.gradle.kts index b2b9382..01a01fe 100644 --- a/modules/events-server/build.gradle.kts +++ b/modules/events-server/build.gradle.kts @@ -27,7 +27,6 @@ dependencies { implementation(libs.kotlinx.serialization.core) implementation(libs.kotlinx.serialization.json) -// implementation("org.jetbrains.kotlinx:kotlinx-serialization-protobuf") implementation(libs.kotlinx.coroutines.core) @@ -46,7 +45,6 @@ dependencies { implementation(callLogging) implementation(contentNegotiaion) implementation(cio) -// implementation(netty) implementation(autoHeadResponse) implementation(partialContent) implementation(resources) @@ -59,7 +57,6 @@ dependencies { implementation(core) implementation(tls) } - // diff --git a/modules/events-server/src/main/kotlin/dev/adamko/kafkatorio/server/processor/eventProcessor.kt b/modules/events-server/src/main/kotlin/dev/adamko/kafkatorio/server/processor/eventProcessor.kt index 95b2be4..b10982a 100644 --- a/modules/events-server/src/main/kotlin/dev/adamko/kafkatorio/server/processor/eventProcessor.kt +++ b/modules/events-server/src/main/kotlin/dev/adamko/kafkatorio/server/processor/eventProcessor.kt @@ -16,17 +16,11 @@ suspend fun eventsProcessor( wsServer: WebmapWebsocketServer, ): Unit = coroutineScope { - val admin = KafkatorioKafkaAdmin(appProps) admin.createKafkatorioTopics() - -// val syslogServer = SyslogSocketServer(appProps) -// val wsServer = WebsocketServer() -// val tileServer = WebMapTileServer(appProps) val topology = KafkatorioTopology(appProps, wsServer, syslogServer) - launch { topology.start() diff --git a/modules/events-server/src/main/kotlin/dev/adamko/kafkatorio/server/processor/topology/saveMapTiles.kt b/modules/events-server/src/main/kotlin/dev/adamko/kafkatorio/server/processor/topology/saveMapTiles.kt index 3592c58..cbeef9b 100644 --- a/modules/events-server/src/main/kotlin/dev/adamko/kafkatorio/server/processor/topology/saveMapTiles.kt +++ b/modules/events-server/src/main/kotlin/dev/adamko/kafkatorio/server/processor/topology/saveMapTiles.kt @@ -4,6 +4,7 @@ import com.sksamuel.scrimage.ImmutableImage import com.sksamuel.scrimage.ScaleMethod import com.sksamuel.scrimage.nio.PngWriter import dev.adamko.kafkatorio.library.kxsBinary +import dev.adamko.kafkatorio.schema.common.ChunkSize import dev.adamko.kafkatorio.schema.common.ColourHex import dev.adamko.kafkatorio.schema.common.FactorioServerId import dev.adamko.kafkatorio.schema.common.ServerMapChunkId @@ -14,11 +15,15 @@ import dev.adamko.kafkatorio.server.processor.TOPIC_BROADCAST_TO_WEBSOCKET import dev.adamko.kafkatorio.server.processor.TOPIC_MAP_CHUNK_COLOURED_STATE import dev.adamko.kotka.extensions.consumedAs import dev.adamko.kotka.extensions.producedAs +import dev.adamko.kotka.extensions.stream +import dev.adamko.kotka.extensions.streams.filter import dev.adamko.kotka.extensions.streams.map import dev.adamko.kotka.extensions.streams.mapValues import dev.adamko.kotka.kxs.serde import java.awt.image.BufferedImage import java.nio.file.Path +import kotlin.collections.component1 +import kotlin.collections.component2 import kotlin.io.path.fileSize import kotlin.math.abs import org.apache.kafka.streams.StreamsBuilder @@ -41,13 +46,15 @@ fun saveMapTiles( val subdividedMapChunkTilesDebounced: KStream> = builder.stream( - TOPIC_MAP_CHUNK_COLOURED_STATE, consumedAs( "$pid.consume.grouped-map-chunks", - kxsBinary.serde(), - kxsBinary.serde(), + kxsBinary.serde(ServerMapChunkId.serializer()), + kxsBinary.serde(ServerMapChunkTiles.serializer(ColourHex.serializer())), ), - ) + TOPIC_MAP_CHUNK_COLOURED_STATE, + ).filter("$pid.consume.grouped-map-chunks.filter-size") { _, y -> + y.chunkId.chunkSize.zoomLevel >= ChunkSize.CHUNK_256.zoomLevel + } val savedChunkFilenames: KStream = subdividedMapChunkTilesDebounced.saveChunkAsImage(serverDataDir)