
com.github.insanusmokrassar.AutoPostTelegramBot.plugins.forwarders.VideoForwarder.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.model.request.ParseMode
import com.pengrad.telegrambot.request.SendVideo
import java.io.IOException
class VideoForwarder : Forwarder {
override val importance: Int = MIDDLE_PRIORITY
override fun canForward(message: PostMessage): Boolean {
return message.message ?. video() != null && message.mediaGroupId == null
}
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 SendVideo(
targetChatId,
message.video().fileId()
).apply {
message.caption() ?.let {
caption(it)
}
parseMode(ParseMode.Markdown)
}
}.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