import net.pterodactylus.sone.data.Sone.*
import net.pterodactylus.sone.database.*
import net.pterodactylus.sone.utils.*
-import net.pterodactylus.util.logging.*
+import java.util.logging.Logger
import javax.inject.Inject
/**
abstract class BasicUpdateSoneProcessor(private val database: Database, private val eventBus: EventBus) :
UpdatedSoneProcessor {
- private val logger = Logging.getLogger(UpdatedSoneProcessor::javaClass.name)!!
+ private val logger = Logger.getLogger(UpdatedSoneProcessor::javaClass.name)!!
override fun updateSone(sone: Sone) {
val storedSone = database.getSone(sone.id) ?: return
.map { PostRemovedEvent(it) }
.forEach(eventBus::post)
newPostReplies
- .onEach { postReply -> if (postReply.time <= sone.followingTime) postReply.isKnown = true }
+ .onEach { postReply -> if (postReply.time <= sone.followingTime) database.setPostReplyKnown(postReply) }
.mapNotNull { postReply -> postReply.isKnown.ifFalse { NewPostReplyFoundEvent(postReply) } }
.forEach(eventBus::post)
removedPostReplies
.map { PostReplyRemovedEvent(it) }
.forEach(eventBus::post)
}
+ database.storeSone(sone)
sone.options = storedSone.options
sone.isKnown = storedSone.isKnown
sone.status = if (sone.time != 0L) SoneStatus.idle else SoneStatus.unknown