improvements in docs and null pointer fix
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package eu.fosil.okupamicoche
|
||||
|
||||
import eu.fosil.okupamicoche.config.ConfigReader
|
||||
import eu.fosil.okupamicoche.matrix.MatrixApiClient
|
||||
import eu.fosil.okupamicoche.matrix.createAppService
|
||||
import eu.fosil.okupamicoche.matrix.event.TravelEventContentSerializerMappings
|
||||
import eu.fosil.okupamicoche.matrix.matrixApiClient
|
||||
@@ -24,10 +25,10 @@ suspend fun main() {
|
||||
|
||||
requireNotNull(config)
|
||||
requireNotNull(matrixApiClient)
|
||||
MatrixApiClient.init()
|
||||
|
||||
coroutineScope {
|
||||
launch {
|
||||
|
||||
val roomMainAlias = "#${config.mainRoom}:${config.homeserver.host}"
|
||||
val roomAliasRes = matrixApiClient.rooms.getRoomAlias(RoomAliasId(roomMainAlias)).getOrNull()
|
||||
if (roomAliasRes == null) {
|
||||
@@ -38,10 +39,14 @@ suspend fun main() {
|
||||
)
|
||||
} else {
|
||||
val mainRoomId = roomAliasRes.roomId
|
||||
val alreadyJoinedToMainRoom = (matrixApiClient.rooms.getJoinedRooms().getOrNull()?.filter { roomId ->
|
||||
val joinedToMainRoom = (matrixApiClient.rooms.getJoinedRooms().getOrNull()?.filter { roomId ->
|
||||
roomId == mainRoomId
|
||||
}?.firstOrNull()) !== null
|
||||
logger.info("alreadyJoinedToMainRoom=$alreadyJoinedToMainRoom")
|
||||
logger.info("alreadyJoinedToMainRoom=$joinedToMainRoom")
|
||||
|
||||
if (!joinedToMainRoom) {
|
||||
matrixApiClient.rooms.joinRoom(mainRoomId)
|
||||
}
|
||||
|
||||
val roomStateRes = matrixApiClient.rooms.getState(mainRoomId).getOrNull()
|
||||
roomStateRes?.collect { stateEvent ->
|
||||
|
||||
@@ -22,7 +22,7 @@ val matrixApiClient = if (config == null) null else MatrixClientServerApiClient(
|
||||
object MatrixApiClient {
|
||||
var appServiceUserId: UserId? = null
|
||||
|
||||
init {
|
||||
fun init() {
|
||||
requireNotNull(matrixApiClient)
|
||||
|
||||
val ioScope = CoroutineScope(Dispatchers.IO)
|
||||
|
||||
@@ -53,6 +53,7 @@ suspend fun createTravel(
|
||||
private suspend fun createRoom(travelOptions: TravelOptions, driver: UserId): RoomId {
|
||||
requireNotNull(matrixApiClient)
|
||||
requireNotNull(config)
|
||||
val appServiceUserId = requireNotNull(MatrixApiClient.appServiceUserId)
|
||||
|
||||
val newRoomAliasAndName = getRoomAliasAndName(travelOptions)
|
||||
val initialState = Event.InitialStateEvent(
|
||||
@@ -62,7 +63,7 @@ private suspend fun createRoom(travelOptions: TravelOptions, driver: UserId): Ro
|
||||
val powerLevels = PowerLevelsEventContent(
|
||||
events = mapOf(Pair(TRAVEL_CREATED_STATE_EVENT_ID, 100)),
|
||||
users = mapOf(
|
||||
Pair(MatrixApiClient.appServiceUserId!!, 100),
|
||||
Pair(appServiceUserId, 100),
|
||||
Pair(driver, 50)
|
||||
)
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user