Skip to content

Commit

Permalink
Handle deletion of events
Browse files Browse the repository at this point in the history
  • Loading branch information
dfuchss committed Jul 27, 2024
1 parent 62bff0c commit b8899f0
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 1 deletion.
1 change: 1 addition & 0 deletions src/main/kotlin/org/fuchss/matrix/yarb/Main.kt
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ fun main() {
reminderCommand.handleUserEditMessage(matrixBot, eventId, userId, roomId, text)
}
}
matrixBot.subscribeContent { event -> reminderCommand.handleUserDeleteMessage(matrixBot, event) }

val loggedOut = matrixBot.startBlocking()
timer.cancel()
Expand Down
3 changes: 2 additions & 1 deletion src/main/kotlin/org/fuchss/matrix/yarb/TimerManager.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package org.fuchss.matrix.yarb

import com.fasterxml.jackson.annotation.JsonProperty
import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.databind.SerializationFeature
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule
import com.fasterxml.jackson.module.kotlin.readValue
import com.fasterxml.jackson.module.kotlin.registerKotlinModule
Expand Down Expand Up @@ -30,7 +31,7 @@ class TimerManager(private val matrixBot: MatrixBot, javaTimer: Timer, config: C
private val logger = LoggerFactory.getLogger(TimerManager::class.java)
}

private val objectMapper = ObjectMapper().registerKotlinModule().registerModule(JavaTimeModule())
private val objectMapper = ObjectMapper().registerKotlinModule().registerModule(JavaTimeModule()).enable(SerializationFeature.INDENT_OUTPUT)
private val timerFileLocation = config.dataDirectory + "/timers.json"
private val timers = mutableListOf<TimerData>()

Expand Down
17 changes: 17 additions & 0 deletions src/main/kotlin/org/fuchss/matrix/yarb/commands/ReminderCommand.kt
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,13 @@ import net.folivo.trixnity.client.room.message.text
import net.folivo.trixnity.core.model.EventId
import net.folivo.trixnity.core.model.RoomId
import net.folivo.trixnity.core.model.UserId
import net.folivo.trixnity.core.model.events.ClientEvent
import net.folivo.trixnity.core.model.events.m.RelatesTo
import net.folivo.trixnity.core.model.events.m.RelationType
import net.folivo.trixnity.core.model.events.m.room.RedactionEventContent
import net.folivo.trixnity.core.model.events.m.room.RoomMessageEventContent
import net.folivo.trixnity.core.model.events.roomIdOrNull
import net.folivo.trixnity.core.model.events.senderOrNull
import org.fuchss.matrix.bots.MatrixBot
import org.fuchss.matrix.bots.command.Command
import org.fuchss.matrix.yarb.Config
Expand Down Expand Up @@ -92,6 +96,19 @@ class ReminderCommand(private val config: Config, private val timerManager: Time
}
}

suspend fun handleUserDeleteMessage(
matrixBot: MatrixBot,
event: ClientEvent<RedactionEventContent>
) {
if (event.senderOrNull == matrixBot.self()) {
return
}

val botMessage = timerManager.removeByRequestMessage(event.content.redacts) ?: return
val roomId = event.roomIdOrNull ?: return
matrixBot.roomApi().redactEvent(roomId, botMessage).getOrThrow()
}

suspend fun handleUserEditMessage(
matrixBot: MatrixBot,
eventId: EventId,
Expand Down

0 comments on commit b8899f0

Please sign in to comment.