Updated trixnity to 2.0.0-RC2, runtime errors present

This commit is contained in:
2022-04-17 01:55:46 +02:00
parent 2e084a1fdb
commit 86629b97dc
9 changed files with 47 additions and 52 deletions

View File

@@ -1,7 +1,7 @@
plugins {
application
kotlin("jvm") version "1.6.10"
kotlin("plugin.serialization") version "1.6.10"
kotlin("jvm") version "1.6.20"
kotlin("plugin.serialization") version "1.6.20"
}
group = "eu.fosil"
@@ -19,7 +19,7 @@ dependencies {
implementation("io.ktor:ktor-client-cio:$ktorVersion")
// Trixnity
implementation("net.folivo:trixnity-appservice:1.2.0-RC1")
implementation("net.folivo:trixnity-applicationservice:2.0.0-RC2")
// Exposed
val exposedVersion: String by project

View File

@@ -1,5 +1,4 @@
kotlin.code.style=official
exposedVersion=0.37.3
ktorVersion=2.0.0-beta-1
jacksonVersion=2.13.1
ktorVersion=2.0.0
jacksonVersion=2.13.2

View File

@@ -7,11 +7,7 @@ import eu.fosil.okupamicoche.matrix.event.TravelEventContentSerializerMappings
import eu.fosil.okupamicoche.matrix.matrixApiClient
import io.ktor.server.engine.*
import io.ktor.server.netty.*
import mu.KotlinLogging
import net.folivo.trixnity.appservice.MatrixAppserviceProperties
import net.folivo.trixnity.appservice.rest.matrixAppserviceModule
private val logger = KotlinLogging.logger {}
import net.folivo.trixnity.applicationserviceapi.server.matrixApplicationServiceApiServer
suspend fun main() {
@@ -25,9 +21,9 @@ suspend fun main() {
// Start Ktor server
embeddedServer(Netty, port = 8080, host = "0.0.0.0") {
matrixAppserviceModule(
properties = MatrixAppserviceProperties(config.tokens.homeserver),
appserviceService = createAppService(matrixApiClient),
matrixApplicationServiceApiServer(
hsToken = config.tokens.homeserver,
applicationServiceApiServerHandler = createAppService(matrixApiClient),
customMappings = TravelEventContentSerializerMappings
)
}.start(wait = true)

View File

@@ -7,8 +7,8 @@ import eu.fosil.okupamicoche.matrix.services.EventTnxService
import eu.fosil.okupamicoche.matrix.services.RoomService
import eu.fosil.okupamicoche.matrix.services.UserService
import mu.KotlinLogging
import net.folivo.trixnity.appservice.AppserviceService
import net.folivo.trixnity.appservice.DefaultAppserviceService
import net.folivo.trixnity.applicationserviceapi.server.ApplicationServiceApiServerHandler
import net.folivo.trixnity.appservice.DefaultApplicationServiceApiServerHandler
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
@@ -21,14 +21,14 @@ val db = Database.connect("jdbc:h2:./okupamicoche", driver = "org.h2.Driver")
private val logger = KotlinLogging.logger {}
fun createAppService(matrixClientServerApiClient: MatrixClientServerApiClient): AppserviceService {
fun createAppService(matrixClientServerApiClient: MatrixClientServerApiClient): ApplicationServiceApiServerHandler {
transaction(db) {
SchemaUtils.create(TravelsTable)
logger.info { "Travels table created" }
}
return DefaultAppserviceService(
return DefaultApplicationServiceApiServerHandler(
EventTnxService(),
UserService(matrixClientServerApiClient),
RoomService(matrixClientServerApiClient)
@@ -36,16 +36,16 @@ fun createAppService(matrixClientServerApiClient: MatrixClientServerApiClient):
subscribeAllEvents {
logger.debug("All events: $it")
}
subscribe<CreateEventContent> {
subscribe(CreateEventContent::class) {
if (it is Event.RoomEvent) {
logger.info("${it.content.creator} created room ${it.roomId}")
}
}
subscribe<TravelCreatedMessageEventContent> { event ->
subscribe(TravelCreatedMessageEventContent::class) { event ->
logger.info("NEW TRAVEL CREATED EVENT!!")
logger.info("$event")
}
subscribe<RoomMessageEventContent.TextMessageEventContent> { event ->
subscribe(RoomMessageEventContent.TextMessageEventContent::class) { event ->
require(event is Event.MessageEvent)
val roomId = event.roomId
val body = event.content.body

View File

@@ -3,11 +3,9 @@ package eu.fosil.okupamicoche.matrix
import eu.fosil.okupamicoche.config.ConfigReader
import eu.fosil.okupamicoche.matrix.event.TravelEventContentSerializerMappings
import io.ktor.http.*
import kotlinx.coroutines.flow.filter
import kotlinx.coroutines.flow.firstOrNull
import mu.KotlinLogging
import net.folivo.trixnity.clientserverapi.client.MatrixClientServerApiClient
import net.folivo.trixnity.clientserverapi.model.rooms.Visibility
import net.folivo.trixnity.clientserverapi.model.rooms.DirectoryVisibility
import net.folivo.trixnity.core.model.RoomAliasId
import net.folivo.trixnity.core.model.RoomId
import net.folivo.trixnity.core.model.UserId
@@ -31,7 +29,7 @@ object MatrixApiClient {
suspend fun init() {
requireNotNull(matrixApiClient)
appServiceUserId = matrixApiClient.users.whoAmI().getOrThrow().userId
appServiceUserId = matrixApiClient.authentication.whoAmI().getOrThrow().userId
mainRoomId = createMainRoomIfNeeded()
}
@@ -46,7 +44,7 @@ object MatrixApiClient {
if (roomAliasRes == null) {
logger.info("Creating $roomMainAlias public room")
mainRoomId = matrixApiClient.rooms.createRoom(
visibility = Visibility.PUBLIC,
visibility = DirectoryVisibility.PUBLIC,
roomAliasId = RoomAliasId(roomMainAlias)
).getOrNull()
} else {
@@ -60,8 +58,8 @@ object MatrixApiClient {
matrixApiClient.rooms.joinRoom(mainRoomId)
}
val roomStateRes = matrixApiClient.rooms.getState(mainRoomId).getOrNull()
roomStateRes?.collect { stateEvent ->
val roomStateEvents = matrixApiClient.rooms.getState(mainRoomId).getOrNull()
roomStateEvents?.forEach { stateEvent ->
logger.debug("stateEvent=$stateEvent")
}
}

View File

@@ -1,18 +1,18 @@
package eu.fosil.okupamicoche.matrix.services
import mu.KotlinLogging
import net.folivo.trixnity.appservice.event.AppserviceEventTnxService
import net.folivo.trixnity.appservice.ApplicationServiceEventTxnService
private val logger = KotlinLogging.logger {}
class EventTnxService : AppserviceEventTnxService {
override suspend fun eventTnxProcessingState(tnxId: String): AppserviceEventTnxService.EventTnxProcessingState {
logger.debug("eventTnxProcessingState tnxId=$tnxId")
return AppserviceEventTnxService.EventTnxProcessingState.NOT_PROCESSED
class EventTnxService : ApplicationServiceEventTxnService {
override suspend fun eventTnxProcessingState(txnId: String): ApplicationServiceEventTxnService.EventTnxProcessingState {
logger.debug("eventTnxProcessingState tnxId=$txnId")
return ApplicationServiceEventTxnService.EventTnxProcessingState.NOT_PROCESSED
// return AppserviceEventTnxService.EventTnxProcessingState.PROCESSED
}
override suspend fun onEventTnxProcessed(tnxId: String) {
logger.debug("onEventTnxProcessed tnxId=$tnxId")
override suspend fun onEventTnxProcessed(txnId: String) {
logger.debug("onEventTnxProcessed tnxId=$txnId")
}
}
}

View File

@@ -1,29 +1,30 @@
package eu.fosil.okupamicoche.matrix.services
import mu.KotlinLogging
import net.folivo.trixnity.appservice.room.AppserviceRoomService
import net.folivo.trixnity.appservice.room.CreateRoomParameter
import net.folivo.trixnity.appservice.ApplicationServiceRoomService
import net.folivo.trixnity.appservice.CreateRoomParameter
import net.folivo.trixnity.clientserverapi.client.MatrixClientServerApiClient
import net.folivo.trixnity.clientserverapi.model.rooms.Visibility
import net.folivo.trixnity.clientserverapi.model.rooms.DirectoryVisibility
import net.folivo.trixnity.core.model.RoomAliasId
import net.folivo.trixnity.core.model.RoomId
private val logger = KotlinLogging.logger {}
class RoomService(override val matrixClientServerApiClient: MatrixClientServerApiClient) : AppserviceRoomService {
class RoomService(override val matrixClientServerApiClient: MatrixClientServerApiClient) :
ApplicationServiceRoomService {
override suspend fun getCreateRoomParameter(roomAlias: RoomAliasId): CreateRoomParameter {
logger.info("getCreateRoomParameter")
return CreateRoomParameter(Visibility.PUBLIC)
return CreateRoomParameter(DirectoryVisibility.PUBLIC)
}
override suspend fun onCreatedRoom(roomAlias: RoomAliasId, roomId: RoomId) {
logger.info("onCreatedRoom")
}
override suspend fun roomExistingState(roomAlias: RoomAliasId): AppserviceRoomService.RoomExistingState {
override suspend fun roomExistingState(roomAlias: RoomAliasId): ApplicationServiceRoomService.RoomExistingState {
logger.info("roomExistingState")
return AppserviceRoomService.RoomExistingState.DOES_NOT_EXISTS
return ApplicationServiceRoomService.RoomExistingState.DOES_NOT_EXISTS
}
}
}

View File

@@ -1,11 +1,12 @@
package eu.fosil.okupamicoche.matrix.services
import net.folivo.trixnity.appservice.user.AppserviceUserService
import net.folivo.trixnity.appservice.user.RegisterUserParameter
import net.folivo.trixnity.appservice.ApplicationServiceUserService
import net.folivo.trixnity.appservice.RegisterUserParameter
import net.folivo.trixnity.clientserverapi.client.MatrixClientServerApiClient
import net.folivo.trixnity.core.model.UserId
class UserService(override val matrixClientServerApiClient: MatrixClientServerApiClient) : AppserviceUserService {
class UserService(override val matrixClientServerApiClient: MatrixClientServerApiClient) :
ApplicationServiceUserService {
override suspend fun getRegisterUserParameter(userId: UserId): RegisterUserParameter {
println("getRegisterUserParameter")
@@ -16,9 +17,9 @@ class UserService(override val matrixClientServerApiClient: MatrixClientServerAp
println("onRegisteredUser")
}
override suspend fun userExistingState(userId: UserId): AppserviceUserService.UserExistingState {
override suspend fun userExistingState(userId: UserId): ApplicationServiceUserService.UserExistingState {
println("userExistingState")
return AppserviceUserService.UserExistingState.CAN_BE_CREATED
return ApplicationServiceUserService.UserExistingState.CAN_BE_CREATED
}
}
}

View File

@@ -12,7 +12,7 @@ import eu.fosil.okupamicoche.matrix.matrixApiClient
import eu.fosil.okupamicoche.model.Travel
import eu.fosil.okupamicoche.model.TravelOptions
import mu.KotlinLogging
import net.folivo.trixnity.clientserverapi.model.rooms.Visibility
import net.folivo.trixnity.clientserverapi.model.rooms.DirectoryVisibility
import net.folivo.trixnity.core.model.RoomAliasId
import net.folivo.trixnity.core.model.RoomId
import net.folivo.trixnity.core.model.UserId
@@ -69,7 +69,7 @@ private suspend fun createRoom(travelOptions: TravelOptions, driver: UserId): Ro
)
return matrixApiClient.rooms.createRoom(
visibility = Visibility.PUBLIC,
visibility = DirectoryVisibility.PUBLIC,
roomAliasId = newRoomAliasAndName.aliasId,
name = newRoomAliasAndName.name,
topic = travelOptions.description,