This commit is contained in:
InsanusMokrassar committed 2026-09-08 18:04:06 +06:00
1 parent c2f0bcd98b
commit 1d8b4255a6
14 files changed
+241 -161

No files matched your search

@@ -20,14 +20,14 @@ import kotlinx.coroutines.flow.firstOrNull
import kotlinx.coroutines.flow.map
/**
* @param directMessageThreadId Direct messages topic identifier. Defaults from [chatId].
* @param threadId Message thread identifier. Defaults from [chatId].
*/
public suspend fun TelegramBot.sendMessageDraft(
chatId: IdChatIdentifier,
draftId: DraftId,
text: String,
parseMode: ParseMode? = null,
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
threadId: MessageThreadId? = chatId.threadIdOrDirectMessageThreadIdAsThreadId,
canStop: Boolean? = null,
keepOnStop: Boolean? = null
): Unit = execute(
@@ -36,7 +36,7 @@ public suspend fun TelegramBot.sendMessageDraft(
draftId = draftId,
text = text,
parseMode = parseMode,
directMessageThreadId = directMessageThreadId,
threadId = threadId,
canStop = canStop,
keepOnStop = keepOnStop
)
@@ -63,12 +63,12 @@ private suspend fun TelegramBot.sendMessageDraftFlow(
public val GlobalDraftIdAllocator: DraftIdAllocator by lazy { DraftIdAllocator() }
/**
* @param directMessageThreadId Direct messages topic identifier. Defaults from [chatId].
* @param threadId Message thread identifier. Defaults from [chatId].
*/
public suspend fun TelegramBot.sendMessageDraftFlow(
chatId: IdChatIdentifier,
messagesFlow: Flow<TextSourcesList>,
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
threadId: MessageThreadId? = chatId.threadIdOrDirectMessageThreadIdAsThreadId,
draftId: DraftId? = null,
canStop: Boolean? = null,
keepOnStop: Boolean? = null
@@ -76,18 +76,18 @@ public suspend fun TelegramBot.sendMessageDraftFlow(
val draftId = draftId ?: GlobalDraftIdAllocator.allocate()
return sendMessageDraftFlow(
messagesFlow.map {
SendMessageDraft(chatId = chatId, draftId = draftId, entities = it, directMessageThreadId = directMessageThreadId, canStop = canStop, keepOnStop = keepOnStop)
SendMessageDraft(chatId = chatId, draftId = draftId, entities = it, threadId = threadId, canStop = canStop, keepOnStop = keepOnStop)
}
)
}
/**
* @param directMessageThreadId Direct messages topic identifier. Defaults from [chatId].
* @param threadId Message thread identifier. Defaults from [chatId].
*/
public suspend fun TelegramBot.sendMessageDraftFlowWithTextsAndParseMode(
chatId: IdChatIdentifier,
messagesFlow: Flow<Pair<String, ParseMode?>>,
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
threadId: MessageThreadId? = chatId.threadIdOrDirectMessageThreadIdAsThreadId,
draftId: DraftId? = null,
canStop: Boolean? = null,
keepOnStop: Boolean? = null
@@ -95,18 +95,18 @@ public suspend fun TelegramBot.sendMessageDraftFlowWithTextsAndParseMode(
val draftId = draftId ?: GlobalDraftIdAllocator.allocate()
return sendMessageDraftFlow(
messagesFlow.map {
SendMessageDraft(chatId = chatId, draftId = draftId, text = it.first, parseMode = it.second, directMessageThreadId = directMessageThreadId, canStop = canStop, keepOnStop = keepOnStop)
SendMessageDraft(chatId = chatId, draftId = draftId, text = it.first, parseMode = it.second, threadId = threadId, canStop = canStop, keepOnStop = keepOnStop)
}
)
}
/**
* @param directMessageThreadId Direct messages topic identifier. Defaults from [chatId].
* @param threadId Message thread identifier. Defaults from [chatId].
*/
public suspend fun TelegramBot.sendMessageDraftFlowWithTexts(
chatId: IdChatIdentifier,
messagesFlow: Flow<String>,
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
threadId: MessageThreadId? = chatId.threadIdOrDirectMessageThreadIdAsThreadId,
draftId: DraftId? = null,
canStop: Boolean? = null,
keepOnStop: Boolean? = null
@@ -117,7 +117,7 @@ public suspend fun TelegramBot.sendMessageDraftFlowWithTexts(
messagesFlow = messagesFlow.map {
it.escapeMarkdownV2Common() to MarkdownV2
},
directMessageThreadId = directMessageThreadId,
threadId = threadId,
draftId = draftId,
canStop = canStop,
keepOnStop = keepOnStop
@@ -125,14 +125,14 @@ public suspend fun TelegramBot.sendMessageDraftFlowWithTexts(
}
/**
* @param directMessageThreadId Direct messages topic identifier. Defaults from [chat].
* @param threadId Message thread identifier. Defaults from [chat].
*/
public suspend fun TelegramBot.sendMessageDraft(
chat: Chat,
draftId: DraftId,
text: String,
parseMode: ParseMode? = null,
directMessageThreadId: DirectMessageThreadId? = chat.id.directMessageThreadId,
threadId: MessageThreadId? = chat.id.threadIdOrDirectMessageThreadIdAsThreadId,
canStop: Boolean? = null,
keepOnStop: Boolean? = null
): Unit = sendMessageDraft(
@@ -140,19 +140,19 @@ public suspend fun TelegramBot.sendMessageDraft(
draftId = draftId,
text = text,
parseMode = parseMode,
directMessageThreadId = directMessageThreadId,
threadId = threadId,
canStop = canStop,
keepOnStop = keepOnStop
)
/**
* @param directMessageThreadId Direct messages topic identifier. Defaults from [chatId].
* @param threadId Message thread identifier. Defaults from [chatId].
*/
public suspend fun TelegramBot.sendMessageDraft(
chatId: IdChatIdentifier,
draftId: DraftId,
entities: TextSourcesList,
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
threadId: MessageThreadId? = chatId.threadIdOrDirectMessageThreadIdAsThreadId,
canStop: Boolean? = null,
keepOnStop: Boolean? = null
): Unit = execute(
@@ -160,39 +160,39 @@ public suspend fun TelegramBot.sendMessageDraft(
chatId = chatId,
draftId = draftId,
entities = entities,
directMessageThreadId = directMessageThreadId,
threadId = threadId,
canStop = canStop,
keepOnStop = keepOnStop
)
)
/**
* @param directMessageThreadId Direct messages topic identifier. Defaults from [chat].
* @param threadId Message thread identifier. Defaults from [chat].
*/
public suspend fun TelegramBot.sendMessageDraft(
chat: Chat,
draftId: DraftId,
entities: TextSourcesList,
directMessageThreadId: DirectMessageThreadId? = chat.id.directMessageThreadId,
threadId: MessageThreadId? = chat.id.threadIdOrDirectMessageThreadIdAsThreadId,
canStop: Boolean? = null,
keepOnStop: Boolean? = null
): Unit = sendMessageDraft(
chatId = chat.id,
draftId = draftId,
entities = entities,
directMessageThreadId = directMessageThreadId,
threadId = threadId,
canStop = canStop,
keepOnStop = keepOnStop
)
/**
* @param directMessageThreadId Direct messages topic identifier. Defaults from [chatId].
* @param threadId Message thread identifier. Defaults from [chatId].
*/
public suspend fun TelegramBot.sendMessageDraft(
chatId: IdChatIdentifier,
draftId: DraftId,
separator: TextSource? = null,
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
threadId: MessageThreadId? = chatId.threadIdOrDirectMessageThreadIdAsThreadId,
canStop: Boolean? = null,
keepOnStop: Boolean? = null,
builderBody: EntitiesBuilderBody
@@ -200,19 +200,19 @@ public suspend fun TelegramBot.sendMessageDraft(
chatId = chatId,
draftId = draftId,
entities = buildEntities(separator, builderBody),
directMessageThreadId = directMessageThreadId,
threadId = threadId,
canStop = canStop,
keepOnStop = keepOnStop
)
/**
* @param directMessageThreadId Direct messages topic identifier. Defaults from [chatId].
* @param threadId Message thread identifier. Defaults from [chatId].
*/
public suspend fun TelegramBot.sendMessageDraft(
chatId: IdChatIdentifier,
draftId: DraftId,
separator: String,
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
threadId: MessageThreadId? = chatId.threadIdOrDirectMessageThreadIdAsThreadId,
canStop: Boolean? = null,
keepOnStop: Boolean? = null,
builderBody: EntitiesBuilderBody
@@ -220,19 +220,19 @@ public suspend fun TelegramBot.sendMessageDraft(
chatId = chatId,
draftId = draftId,
entities = buildEntities(separator, builderBody),
directMessageThreadId = directMessageThreadId,
threadId = threadId,
canStop = canStop,
keepOnStop = keepOnStop
)
/**
* @param directMessageThreadId Direct messages topic identifier. Defaults from [chat].
* @param threadId Message thread identifier. Defaults from [chat].
*/
public suspend fun TelegramBot.sendMessageDraft(
chat: Chat,
draftId: DraftId,
separator: TextSource? = null,
directMessageThreadId: DirectMessageThreadId? = chat.id.directMessageThreadId,
threadId: MessageThreadId? = chat.id.threadIdOrDirectMessageThreadIdAsThreadId,
canStop: Boolean? = null,
keepOnStop: Boolean? = null,
builderBody: EntitiesBuilderBody
@@ -240,20 +240,20 @@ public suspend fun TelegramBot.sendMessageDraft(
chatId = chat.id,
draftId = draftId,
separator = separator,
directMessageThreadId = directMessageThreadId,
threadId = threadId,
canStop = canStop,
keepOnStop = keepOnStop,
builderBody = builderBody
)
/**
* @param directMessageThreadId Direct messages topic identifier. Defaults from [chat].
* @param threadId Message thread identifier. Defaults from [chat].
*/
public suspend fun TelegramBot.sendMessageDraft(
chat: Chat,
draftId: DraftId,
separator: String,
directMessageThreadId: DirectMessageThreadId? = chat.id.directMessageThreadId,
threadId: MessageThreadId? = chat.id.threadIdOrDirectMessageThreadIdAsThreadId,
canStop: Boolean? = null,
keepOnStop: Boolean? = null,
builderBody: EntitiesBuilderBody
@@ -261,7 +261,7 @@ public suspend fun TelegramBot.sendMessageDraft(
chatId = chat.id,
draftId = draftId,
separator = separator,
directMessageThreadId = directMessageThreadId,
threadId = threadId,
canStop = canStop,
keepOnStop = keepOnStop,
builderBody = builderBody
@@ -2,19 +2,20 @@ package dev.inmo.tgbotapi.extensions.api.send
import dev.inmo.tgbotapi.bot.TelegramBot
import dev.inmo.tgbotapi.requests.send.SendRichMessageDraft
import dev.inmo.tgbotapi.types.DirectMessageThreadId
import dev.inmo.tgbotapi.types.IdChatIdentifier
import dev.inmo.tgbotapi.types.MessageThreadId
import dev.inmo.tgbotapi.types.threadIdOrDirectMessageThreadIdAsThreadId
import dev.inmo.tgbotapi.types.rich.InputRichMessage
/**
* @param chatId Numeric target chat identifier.
* @param directMessageThreadId Direct messages topic identifier. Defaults from [chatId].
* @param threadId Message thread identifier. Defaults from [chatId].
*/
public suspend fun TelegramBot.sendRichMessageDraft(
chatId: IdChatIdentifier,
draftId: Long,
richMessage: InputRichMessage,
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
threadId: MessageThreadId? = chatId.threadIdOrDirectMessageThreadIdAsThreadId,
canStop: Boolean? = null,
keepOnStop: Boolean? = null
): Unit = execute(
@@ -22,7 +23,7 @@ public suspend fun TelegramBot.sendRichMessageDraft(
chatId = chatId,
draftId = draftId,
richMessage = richMessage,
directMessageThreadId = directMessageThreadId,
threadId = threadId,
canStop = canStop,
keepOnStop = keepOnStop
)
@@ -2438,14 +2438,14 @@ public suspend fun TelegramBot.send(
/**
* Will execute [sendMessageDraft] request
* @param directMessageThreadId Direct messages topic identifier. Defaults from [chatId].
* @param threadId Message thread identifier. Defaults from [chatId].
*/
public suspend fun TelegramBot.send(
chatId: IdChatIdentifier,
draftId: DraftId,
text: String,
parseMode: ParseMode? = null,
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
threadId: MessageThreadId? = chatId.threadIdOrDirectMessageThreadIdAsThreadId,
canStop: Boolean? = null,
keepOnStop: Boolean? = null
): Unit = sendMessageDraft(
@@ -2453,21 +2453,21 @@ public suspend fun TelegramBot.send(
draftId = draftId,
text = text,
parseMode = parseMode,
directMessageThreadId = directMessageThreadId,
threadId = threadId,
canStop = canStop,
keepOnStop = keepOnStop
)
/**
* Will execute [sendMessageDraft] request
* @param directMessageThreadId Direct messages topic identifier. Defaults from [chat].
* @param threadId Message thread identifier. Defaults from [chat].
*/
public suspend fun TelegramBot.send(
chat: Chat,
draftId: DraftId,
text: String,
parseMode: ParseMode? = null,
directMessageThreadId: DirectMessageThreadId? = chat.id.directMessageThreadId,
threadId: MessageThreadId? = chat.id.threadIdOrDirectMessageThreadIdAsThreadId,
canStop: Boolean? = null,
keepOnStop: Boolean? = null
): Unit = sendMessageDraft(
@@ -2475,60 +2475,60 @@ public suspend fun TelegramBot.send(
draftId = draftId,
text = text,
parseMode = parseMode,
directMessageThreadId = directMessageThreadId,
threadId = threadId,
canStop = canStop,
keepOnStop = keepOnStop
)
/**
* Will execute [sendMessageDraft] request
* @param directMessageThreadId Direct messages topic identifier. Defaults from [chatId].
* @param threadId Message thread identifier. Defaults from [chatId].
*/
public suspend fun TelegramBot.send(
chatId: IdChatIdentifier,
draftId: DraftId,
entities: TextSourcesList,
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
threadId: MessageThreadId? = chatId.threadIdOrDirectMessageThreadIdAsThreadId,
canStop: Boolean? = null,
keepOnStop: Boolean? = null
): Unit = sendMessageDraft(
chatId = chatId,
draftId = draftId,
entities = entities,
directMessageThreadId = directMessageThreadId,
threadId = threadId,
canStop = canStop,
keepOnStop = keepOnStop
)
/**
* Will execute [sendMessageDraft] request
* @param directMessageThreadId Direct messages topic identifier. Defaults from [chat].
* @param threadId Message thread identifier. Defaults from [chat].
*/
public suspend fun TelegramBot.send(
chat: Chat,
draftId: DraftId,
entities: TextSourcesList,
directMessageThreadId: DirectMessageThreadId? = chat.id.directMessageThreadId,
threadId: MessageThreadId? = chat.id.threadIdOrDirectMessageThreadIdAsThreadId,
canStop: Boolean? = null,
keepOnStop: Boolean? = null
): Unit = sendMessageDraft(
chat = chat,
draftId = draftId,
entities = entities,
directMessageThreadId = directMessageThreadId,
threadId = threadId,
canStop = canStop,
keepOnStop = keepOnStop
)
/**
* Will execute [sendMessageDraft] request
* @param directMessageThreadId Direct messages topic identifier. Defaults from [chatId].
* @param threadId Message thread identifier. Defaults from [chatId].
*/
public suspend fun TelegramBot.send(
chatId: IdChatIdentifier,
draftId: DraftId,
separator: TextSource? = null,
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
threadId: MessageThreadId? = chatId.threadIdOrDirectMessageThreadIdAsThreadId,
canStop: Boolean? = null,
keepOnStop: Boolean? = null,
builderBody: EntitiesBuilderBody
@@ -2536,7 +2536,7 @@ public suspend fun TelegramBot.send(
chatId = chatId,
draftId = draftId,
separator = separator,
directMessageThreadId = directMessageThreadId,
threadId = threadId,
canStop = canStop,
keepOnStop = keepOnStop,
builderBody = builderBody
@@ -2544,13 +2544,13 @@ public suspend fun TelegramBot.send(
/**
* Will execute [sendMessageDraft] request
* @param directMessageThreadId Direct messages topic identifier. Defaults from [chatId].
* @param threadId Message thread identifier. Defaults from [chatId].
*/
public suspend fun TelegramBot.send(
chatId: IdChatIdentifier,
draftId: DraftId,
separator: String,
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
threadId: MessageThreadId? = chatId.threadIdOrDirectMessageThreadIdAsThreadId,
canStop: Boolean? = null,
keepOnStop: Boolean? = null,
builderBody: EntitiesBuilderBody
@@ -2558,7 +2558,7 @@ public suspend fun TelegramBot.send(
chatId = chatId,
draftId = draftId,
separator = separator,
directMessageThreadId = directMessageThreadId,
threadId = threadId,
canStop = canStop,
keepOnStop = keepOnStop,
builderBody = builderBody
@@ -2566,13 +2566,13 @@ public suspend fun TelegramBot.send(
/**
* Will execute [sendMessageDraft] request
* @param directMessageThreadId Direct messages topic identifier. Defaults from [chat].
* @param threadId Message thread identifier. Defaults from [chat].
*/
public suspend fun TelegramBot.send(
chat: Chat,
draftId: DraftId,
separator: TextSource? = null,
directMessageThreadId: DirectMessageThreadId? = chat.id.directMessageThreadId,
threadId: MessageThreadId? = chat.id.threadIdOrDirectMessageThreadIdAsThreadId,
canStop: Boolean? = null,
keepOnStop: Boolean? = null,
builderBody: EntitiesBuilderBody
@@ -2580,7 +2580,7 @@ public suspend fun TelegramBot.send(
chat = chat,
draftId = draftId,
separator = separator,
directMessageThreadId = directMessageThreadId,
threadId = threadId,
canStop = canStop,
keepOnStop = keepOnStop,
builderBody = builderBody
@@ -2588,13 +2588,13 @@ public suspend fun TelegramBot.send(
/**
* Will execute [sendMessageDraft] request
* @param directMessageThreadId Direct messages topic identifier. Defaults from [chat].
* @param threadId Message thread identifier. Defaults from [chat].
*/
public suspend fun TelegramBot.send(
chat: Chat,
draftId: DraftId,
separator: String,
directMessageThreadId: DirectMessageThreadId? = chat.id.directMessageThreadId,
threadId: MessageThreadId? = chat.id.threadIdOrDirectMessageThreadIdAsThreadId,
canStop: Boolean? = null,
keepOnStop: Boolean? = null,
builderBody: EntitiesBuilderBody
@@ -2602,7 +2602,7 @@ public suspend fun TelegramBot.send(
chat = chat,
draftId = draftId,
separator = separator,
directMessageThreadId = directMessageThreadId,
threadId = threadId,
canStop = canStop,
keepOnStop = keepOnStop,
builderBody = builderBody
@@ -2611,20 +2611,20 @@ public suspend fun TelegramBot.send(
/**
* Will execute [sendRichMessageDraft] request
* @param chatId Numeric target chat identifier.
* @param directMessageThreadId Direct messages topic identifier. Defaults from [chatId].
* @param threadId Message thread identifier. Defaults from [chatId].
*/
public suspend fun TelegramBot.send(
chatId: IdChatIdentifier,
draftId: Long,
richMessage: InputRichMessage,
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
threadId: MessageThreadId? = chatId.threadIdOrDirectMessageThreadIdAsThreadId,
canStop: Boolean? = null,
keepOnStop: Boolean? = null
): Unit = sendRichMessageDraft(
chatId = chatId,
draftId = draftId,
richMessage = richMessage,
directMessageThreadId = directMessageThreadId,
threadId = threadId,
canStop = canStop,
keepOnStop = keepOnStop
)
@@ -155,8 +155,8 @@ public suspend fun TelegramBot.sendRegularPoll(
media: InputPollMedia? = null,
membersOnly: Boolean = false,
countryCodes: List<String>? = null,
threadId: MessageThreadId? = chatId.threadId,
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
threadId: MessageThreadId? = chatId.threadIdOrDirectMessageThreadIdAsThreadId,
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadIdOrMessageThreadIdAsDirectMessageThreadId,
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
disableNotification: Boolean = false,
protectContent: Boolean = false,
@@ -7,6 +7,7 @@ import dev.inmo.tgbotapi.types.ChatIdWithChannelDirectMessageThreadId
import dev.inmo.tgbotapi.types.DirectMessageThreadId
import dev.inmo.tgbotapi.types.DraftId
import dev.inmo.tgbotapi.types.IdChatIdentifier
import dev.inmo.tgbotapi.types.MessageThreadId
import dev.inmo.tgbotapi.types.RawChatId
import kotlin.coroutines.Continuation
import kotlin.coroutines.EmptyCoroutineContext
@@ -49,7 +50,7 @@ class SendMessageDraftTest {
}
@Test
fun directExtensionForwardsDirectMessageThreadId() {
fun directExtensionForwardsThreadId() {
val chatId: IdChatIdentifier = ChatIdWithChannelDirectMessageThreadId(
RawChatId(1L),
DirectMessageThreadId(2L)
@@ -60,17 +61,17 @@ class SendMessageDraftTest {
chatId,
DraftId(3L),
"direct",
directMessageThreadId = DirectMessageThreadId(7L)
threadId = MessageThreadId(7L)
)
}
)
assertEquals(chatId, request.chatId)
assertEquals(DirectMessageThreadId(7L), request.directMessageThreadId)
assertEquals(MessageThreadId(7L), request.threadId)
}
@Test
fun genericExtensionForwardsDirectMessageThreadId() {
fun genericExtensionConvertsDirectMessageThreadIdToThreadId() {
val chatId: IdChatIdentifier = ChatIdWithChannelDirectMessageThreadId(
RawChatId(4L),
DirectMessageThreadId(5L)
@@ -82,6 +83,6 @@ class SendMessageDraftTest {
)
assertEquals(chatId, request.chatId)
assertEquals(DirectMessageThreadId(5L), request.directMessageThreadId)
assertEquals(MessageThreadId(5L), request.threadId)
}
}
@@ -6,6 +6,7 @@ import dev.inmo.tgbotapi.requests.send.SendRichMessageDraft
import dev.inmo.tgbotapi.types.ChatIdWithChannelDirectMessageThreadId
import dev.inmo.tgbotapi.types.DirectMessageThreadId
import dev.inmo.tgbotapi.types.IdChatIdentifier
import dev.inmo.tgbotapi.types.MessageThreadId
import dev.inmo.tgbotapi.types.RawChatId
import dev.inmo.tgbotapi.types.rich.InputRichMessageHTML
import kotlin.coroutines.Continuation
@@ -57,13 +58,13 @@ class SendRichMessageDraftTest {
chatId,
3L,
InputRichMessageHTML("direct"),
directMessageThreadId = DirectMessageThreadId(7L)
threadId = MessageThreadId(7L)
)
}
)
assertEquals(chatId, request.chatId)
assertEquals(DirectMessageThreadId(7L), request.directMessageThreadId)
assertEquals(MessageThreadId(7L), request.threadId)
}
@Test
@@ -76,6 +77,6 @@ class SendRichMessageDraftTest {
)
assertEquals(chatId, request.chatId)
assertEquals(DirectMessageThreadId(5L), request.directMessageThreadId)
assertEquals(MessageThreadId(5L), request.threadId)
}
}