From d0f502c92f97b531dbb08ae9e75bc770aac15940 Mon Sep 17 00:00:00 2001 From: Eneko Nieto Date: Sun, 13 Mar 2022 16:33:24 +0100 Subject: [PATCH] Upgraded to Trixniti 1.2.0-RC1 --- build.gradle.kts | 4 +-- gradle.properties | 2 +- src/main/kotlin/eu/fosil/okupamicoche/Main.kt | 11 +++--- .../fosil/okupamicoche/cli/CommandParser.kt | 8 +++++ .../eu/fosil/okupamicoche/createAppService.kt | 35 +++++++++---------- .../matrix/event/NewTravelEventContent.kt | 13 +++++++ .../eu/fosil/okupamicoche/model/Travel.kt | 8 ----- .../okupamicoche/services/EventTnxService.kt | 2 +- .../okupamicoche/services/RoomService.kt | 10 +++--- .../okupamicoche/services/UserService.kt | 8 ++--- 10 files changed, 57 insertions(+), 44 deletions(-) create mode 100644 src/main/kotlin/eu/fosil/okupamicoche/matrix/event/NewTravelEventContent.kt diff --git a/build.gradle.kts b/build.gradle.kts index 3e595ff..c72126b 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -18,7 +18,7 @@ dependencies { implementation("io.ktor:ktor-client-cio:$ktorVersion") // Trixnity - implementation("net.folivo:trixnity-appservice:1.1.8") + implementation("net.folivo:trixnity-appservice:1.2.0-RC1") // Exposed val exposedVersion: String by project @@ -38,7 +38,7 @@ dependencies { // Logger implementation("io.github.microutils:kotlin-logging-jvm:2.1.21") - implementation("ch.qos.logback:logback-classic:1.2.10") + implementation("ch.qos.logback:logback-classic:1.2.11") // JUnit testImplementation("org.jetbrains.kotlin:kotlin-test-junit:1.6.10") diff --git a/gradle.properties b/gradle.properties index acf4df6..61a0b52 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ kotlin.code.style=official exposedVersion=0.37.3 -ktorVersion=1.6.7 +ktorVersion=2.0.0-beta-1 jacksonVersion=2.13.1 \ No newline at end of file diff --git a/src/main/kotlin/eu/fosil/okupamicoche/Main.kt b/src/main/kotlin/eu/fosil/okupamicoche/Main.kt index 435c29c..7cebc3d 100644 --- a/src/main/kotlin/eu/fosil/okupamicoche/Main.kt +++ b/src/main/kotlin/eu/fosil/okupamicoche/Main.kt @@ -9,10 +9,10 @@ import kotlinx.coroutines.flow.filter import kotlinx.coroutines.flow.firstOrNull import kotlinx.coroutines.launch import mu.KotlinLogging -import net.folivo.trixnity.appservice.rest.MatrixAppserviceProperties +import net.folivo.trixnity.appservice.MatrixAppserviceProperties import net.folivo.trixnity.appservice.rest.matrixAppserviceModule -import net.folivo.trixnity.client.api.MatrixApiClient -import net.folivo.trixnity.client.api.model.rooms.Visibility +import net.folivo.trixnity.clientserverapi.client.MatrixClientServerApiClient +import net.folivo.trixnity.clientserverapi.model.rooms.Visibility import net.folivo.trixnity.core.model.RoomAliasId private val logger = KotlinLogging.logger {} @@ -26,7 +26,7 @@ suspend fun main() { return } - val matrixApiClient = MatrixApiClient( + val matrixApiClient = MatrixClientServerApiClient( baseUrl = Url( (if (config.homeserver.secure) "https" else "http") + "://${config.homeserver.host}:${config.homeserver.port}" @@ -61,7 +61,8 @@ suspend fun main() { embeddedServer(Netty, port = 8080, host = "0.0.0.0") { matrixAppserviceModule( properties = MatrixAppserviceProperties(config.tokens.homeserver), - appserviceService = createAppService(matrixApiClient) + appserviceService = createAppService(matrixApiClient), + customMappings = null ) }.start(wait = true) } diff --git a/src/main/kotlin/eu/fosil/okupamicoche/cli/CommandParser.kt b/src/main/kotlin/eu/fosil/okupamicoche/cli/CommandParser.kt index 51f8bc3..ba1d085 100644 --- a/src/main/kotlin/eu/fosil/okupamicoche/cli/CommandParser.kt +++ b/src/main/kotlin/eu/fosil/okupamicoche/cli/CommandParser.kt @@ -16,6 +16,7 @@ import java.time.LocalDateTime import java.time.ZoneOffset import java.time.format.DateTimeFormatter + private val logger = KotlinLogging.logger {} val matrixApiClient = MatrixApiClient( @@ -96,6 +97,13 @@ object CommandParser { ) // Send new travel event +// matrixApiClient.rooms.sendMessageEvent( +// roomId, +// +// ) + + + } } \ No newline at end of file diff --git a/src/main/kotlin/eu/fosil/okupamicoche/createAppService.kt b/src/main/kotlin/eu/fosil/okupamicoche/createAppService.kt index 5112f85..b427359 100644 --- a/src/main/kotlin/eu/fosil/okupamicoche/createAppService.kt +++ b/src/main/kotlin/eu/fosil/okupamicoche/createAppService.kt @@ -6,9 +6,9 @@ import eu.fosil.okupamicoche.services.EventTnxService import eu.fosil.okupamicoche.services.RoomService import eu.fosil.okupamicoche.services.UserService import mu.KotlinLogging -import net.folivo.trixnity.appservice.rest.AppserviceService -import net.folivo.trixnity.appservice.rest.DefaultAppserviceService -import net.folivo.trixnity.client.api.MatrixApiClient +import net.folivo.trixnity.appservice.AppserviceService +import net.folivo.trixnity.appservice.DefaultAppserviceService +import net.folivo.trixnity.clientserverapi.client.MatrixClientServerApiClient import net.folivo.trixnity.core.model.events.Event import net.folivo.trixnity.core.model.events.m.room.CreateEventContent import net.folivo.trixnity.core.model.events.m.room.RoomMessageEventContent @@ -20,7 +20,7 @@ val db = Database.connect("jdbc:h2:./okupamicoche", driver = "org.h2.Driver") private val logger = KotlinLogging.logger {} -fun createAppService(matrixApiClient: MatrixApiClient): AppserviceService { +fun createAppService(matrixClientServerApiClient: MatrixClientServerApiClient): AppserviceService { transaction(db) { SchemaUtils.create(Travels) @@ -28,7 +28,7 @@ fun createAppService(matrixApiClient: MatrixApiClient): AppserviceService { } return DefaultAppserviceService( - EventTnxService(), UserService(matrixApiClient), RoomService(matrixApiClient) + EventTnxService(), UserService(matrixClientServerApiClient), RoomService(matrixClientServerApiClient) ).apply { subscribeAllEvents { logger.debug("All events: $it") @@ -38,20 +38,19 @@ fun createAppService(matrixApiClient: MatrixApiClient): AppserviceService { logger.info("${it.content.creator} created room ${it.roomId}") } } - subscribe { - if (it is Event.MessageEvent) { - val roomId = it.roomId - val body = it.content.body - logger.info("${it.sender} sent \"${it.content.body}\" on $roomId") - logger.info("$it") + subscribe { event -> + require(event is Event.MessageEvent) + val roomId = event.roomId + val body = event.content.body + logger.info("${event.sender} sent \"${event.content.body}\" on $roomId") + logger.info("$event") - if (CommandParser.isCommand(body)) { - CommandParser.parse( - user = it.sender, - roomId, - body - ) - } + if (CommandParser.isCommand(body)) { + CommandParser.parse( + user = event.sender, + roomId, + body + ) } } } diff --git a/src/main/kotlin/eu/fosil/okupamicoche/matrix/event/NewTravelEventContent.kt b/src/main/kotlin/eu/fosil/okupamicoche/matrix/event/NewTravelEventContent.kt new file mode 100644 index 0000000..6513a8a --- /dev/null +++ b/src/main/kotlin/eu/fosil/okupamicoche/matrix/event/NewTravelEventContent.kt @@ -0,0 +1,13 @@ +package eu.fosil.okupamicoche.matrix.event + +import kotlinx.serialization.SerialName +import net.folivo.trixnity.core.model.UserId +import net.folivo.trixnity.core.model.events.MessageEventContent +import net.folivo.trixnity.core.model.events.RelatesTo + +data class NewTravelEventContent( + @SerialName("to") val to: UserId, +// @SerialName("body") override val body: String = "Attempting verification request. (m.key.verification.request) Apparently your client doesn't support this.", + @SerialName("m.relates_to") override val relatesTo: RelatesTo? = null, +) : MessageEventContent { +} \ No newline at end of file diff --git a/src/main/kotlin/eu/fosil/okupamicoche/model/Travel.kt b/src/main/kotlin/eu/fosil/okupamicoche/model/Travel.kt index 715c928..5f70954 100644 --- a/src/main/kotlin/eu/fosil/okupamicoche/model/Travel.kt +++ b/src/main/kotlin/eu/fosil/okupamicoche/model/Travel.kt @@ -25,11 +25,3 @@ class Travel(id: EntityID) : IntEntity(id) { var places by Travels.places var description by Travels.description } - -//object StarWarsFilms : Table() { -// val id: Column = integer("id").autoIncrement() -// val sequelId: Column = integer("sequel_id").uniqueIndex() -// val name: Column = varchar("name", 50) -// val director: Column = varchar("director", 50) -// override val primaryKey = PrimaryKey(id, name = "PK_StarWarsFilms_Id") // PK_StarWarsFilms_Id is optional here -//} \ No newline at end of file diff --git a/src/main/kotlin/eu/fosil/okupamicoche/services/EventTnxService.kt b/src/main/kotlin/eu/fosil/okupamicoche/services/EventTnxService.kt index 6969dc9..aeb7f70 100644 --- a/src/main/kotlin/eu/fosil/okupamicoche/services/EventTnxService.kt +++ b/src/main/kotlin/eu/fosil/okupamicoche/services/EventTnxService.kt @@ -1,7 +1,7 @@ package eu.fosil.okupamicoche.services import mu.KotlinLogging -import net.folivo.trixnity.appservice.rest.event.AppserviceEventTnxService +import net.folivo.trixnity.appservice.event.AppserviceEventTnxService private val logger = KotlinLogging.logger {} diff --git a/src/main/kotlin/eu/fosil/okupamicoche/services/RoomService.kt b/src/main/kotlin/eu/fosil/okupamicoche/services/RoomService.kt index 6488480..0ebbefb 100644 --- a/src/main/kotlin/eu/fosil/okupamicoche/services/RoomService.kt +++ b/src/main/kotlin/eu/fosil/okupamicoche/services/RoomService.kt @@ -1,16 +1,16 @@ package eu.fosil.okupamicoche.services import mu.KotlinLogging -import net.folivo.trixnity.appservice.rest.room.AppserviceRoomService -import net.folivo.trixnity.appservice.rest.room.CreateRoomParameter -import net.folivo.trixnity.client.api.MatrixApiClient -import net.folivo.trixnity.client.api.model.rooms.Visibility +import net.folivo.trixnity.appservice.room.AppserviceRoomService +import net.folivo.trixnity.appservice.room.CreateRoomParameter +import net.folivo.trixnity.clientserverapi.client.MatrixClientServerApiClient +import net.folivo.trixnity.clientserverapi.model.rooms.Visibility import net.folivo.trixnity.core.model.RoomAliasId import net.folivo.trixnity.core.model.RoomId private val logger = KotlinLogging.logger {} -class RoomService(override val matrixApiClient: MatrixApiClient) : AppserviceRoomService { +class RoomService(override val matrixClientServerApiClient: MatrixClientServerApiClient) : AppserviceRoomService { override suspend fun getCreateRoomParameter(roomAlias: RoomAliasId): CreateRoomParameter { logger.info("getCreateRoomParameter") diff --git a/src/main/kotlin/eu/fosil/okupamicoche/services/UserService.kt b/src/main/kotlin/eu/fosil/okupamicoche/services/UserService.kt index 6b5a266..99acc22 100644 --- a/src/main/kotlin/eu/fosil/okupamicoche/services/UserService.kt +++ b/src/main/kotlin/eu/fosil/okupamicoche/services/UserService.kt @@ -1,11 +1,11 @@ package eu.fosil.okupamicoche.services -import net.folivo.trixnity.appservice.rest.user.AppserviceUserService -import net.folivo.trixnity.appservice.rest.user.RegisterUserParameter -import net.folivo.trixnity.client.api.MatrixApiClient +import net.folivo.trixnity.appservice.user.AppserviceUserService +import net.folivo.trixnity.appservice.user.RegisterUserParameter +import net.folivo.trixnity.clientserverapi.client.MatrixClientServerApiClient import net.folivo.trixnity.core.model.UserId -class UserService(override val matrixApiClient: MatrixApiClient) : AppserviceUserService { +class UserService(override val matrixClientServerApiClient: MatrixClientServerApiClient) : AppserviceUserService { override suspend fun getRegisterUserParameter(userId: UserId): RegisterUserParameter { println("getRegisterUserParameter")