
com.github.insanusmokrassar.AutoPostTelegramBot.plugins.forwarders.SimpleForwarder.kt Maven / Gradle / Ivy
package com.github.insanusmokrassar.AutoPostTelegramBot.plugins.forwarders
import com.github.insanusmokrassar.AutoPostTelegramBot.base.models.PostMessage
import com.github.insanusmokrassar.AutoPostTelegramBot.utils.extensions.executeBlocking
import com.pengrad.telegrambot.TelegramBot
import com.pengrad.telegrambot.model.Message
import com.pengrad.telegrambot.request.ForwardMessage
import java.io.IOException
class SimpleForwarder : Forwarder {
override val importance: Int = LOW_PRIORITY
override fun canForward(message: PostMessage): Boolean {
return true
}
override suspend fun forward(bot: TelegramBot, targetChatId: Long, vararg messages: PostMessage): Map {
return messages.mapNotNull {
postMessage ->
val message = postMessage.message ?: return@mapNotNull null
postMessage to ForwardMessage(
targetChatId,
message.chat().id(),
message.messageId()
)
}.map {
(original, request) ->
bot.executeBlocking(request).let {
response ->
response.message() ?.let {
original to it
} ?:let {
throw IOException("${response.errorCode()}: ${response.description()}")
}
}
}.toMap()
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy