Package-level declarations

Types

Link copied to clipboard
data class BotBuilder
Link copied to clipboard
@Serializable
data class EditLiveLocationInfo(val latitude: Double, val longitude: Double, val horizontalAccuracy: Meters? = null, val heading: Degrees? = null, val proximityAlertRadius: Meters? = null, val replyMarkup: InlineKeyboardMarkup? = null) : Locationed, HorizontallyAccured, ProximityAlertable, Headed, WithReplyMarkup
Link copied to clipboard
class LiveLocationProvider : Closeable

Functions

Link copied to clipboard
fun buildBot(token: String, apiUrl: String = telegramBotAPIDefaultUrl, testServer: Boolean = false, block: BotBuilder.() -> Unit): RequestsExecutor
Link copied to clipboard
inline suspend fun TelegramBot.close(): Boolean
Link copied to clipboard
suspend fun TelegramBot.delete(message: Message): Boolean
suspend fun Message.delete(requestsExecutor: TelegramBot): Boolean
suspend fun TelegramBot.delete(chatId: ChatIdentifier, messageId: MessageId): Boolean
suspend fun TelegramBot.delete(chat: Chat, messageId: MessageId): Boolean
Link copied to clipboard
suspend fun TelegramBot.deleteMessage(message: Message): Boolean
suspend fun TelegramBot.deleteMessage(chatId: ChatIdentifier, messageId: MessageId): Boolean
suspend fun TelegramBot.deleteMessage(chat: Chat, messageId: MessageId): Boolean
Link copied to clipboard
suspend fun TelegramBot.forwardMessage(toChatId: ChatIdentifier, message: Message, threadId: MessageThreadId? = toChatId.threadId, disableNotification: Boolean = false, protectContent: Boolean = false): PossiblyForwardedMessage
suspend fun TelegramBot.forwardMessage(toChat: Chat, message: Message, threadId: MessageThreadId? = toChat.id.threadId, disableNotification: Boolean = false, protectContent: Boolean = false): PossiblyForwardedMessage
suspend fun TelegramBot.forwardMessage(fromChatId: ChatIdentifier, toChatId: ChatIdentifier, messageId: MessageId, threadId: MessageThreadId? = toChatId.threadId, disableNotification: Boolean = false, protectContent: Boolean = false): PossiblyForwardedMessage
suspend fun TelegramBot.forwardMessage(fromChatId: ChatIdentifier, toChat: Chat, messageId: MessageId, threadId: MessageThreadId? = toChat.id.threadId, disableNotification: Boolean = false, protectContent: Boolean = false): PossiblyForwardedMessage
suspend fun TelegramBot.forwardMessage(fromChat: Chat, toChatId: ChatIdentifier, messageId: MessageId, threadId: MessageThreadId? = toChatId.threadId, disableNotification: Boolean = false, protectContent: Boolean = false): PossiblyForwardedMessage
suspend fun TelegramBot.forwardMessage(fromChat: Chat, toChat: Chat, messageId: MessageId, threadId: MessageThreadId? = toChat.id.threadId, disableNotification: Boolean = false, protectContent: Boolean = false): PossiblyForwardedMessage
Link copied to clipboard
suspend fun TelegramBot.getUpdates(lastUpdate: Update, limit: Int = getUpdatesLimit.last, timeout: Seconds? = null, allowed_updates: List<String>? = ALL_UPDATES_LIST): List<Update>
suspend fun TelegramBot.getUpdates(offset: UpdateIdentifier? = null, limit: Int = getUpdatesLimit.last, timeout: Seconds? = null, allowed_updates: List<String>? = ALL_UPDATES_LIST): List<Update>
Link copied to clipboard
suspend fun TelegramBot.handleLiveLocation(chatId: ChatIdentifier, locationsFlow: Flow<EditLiveLocationInfo>, liveTimeMillis: Long = defaultLivePeriodDelayMillis, threadId: MessageThreadId? = chatId.threadId, disableNotification: Boolean = false, protectContent: Boolean = false, replyToMessageId: MessageId? = null, allowSendingWithoutReply: Boolean? = null, sentMessageFlow: FlowCollector<ContentMessage<LocationContent>>? = null)

Will sendLiveLocation with the first EditLiveLocationInfo data and update than. Each liveTimeMillis passing, the message will be sent again and new edits will be applied to the new message

@JvmName(name = "handleLiveLocationWithLocation")
suspend fun TelegramBot.handleLiveLocation(chatId: ChatIdentifier, locationsFlow: Flow<Location>, liveTimeMillis: Long = defaultLivePeriodDelayMillis, threadId: MessageThreadId? = chatId.threadId, disableNotification: Boolean = false, protectContent: Boolean = false, replyToMessageId: MessageId? = null, allowSendingWithoutReply: Boolean? = null, sentMessageFlow: FlowCollector<ContentMessage<LocationContent>>? = null)
@JvmName(name = "handleLiveLocationWithLatLong")
suspend fun TelegramBot.handleLiveLocation(chatId: ChatIdentifier, locationsFlow: Flow<Pair<Double, Double>>, liveTimeMillis: Long = defaultLivePeriodDelayMillis, threadId: MessageThreadId? = chatId.threadId, disableNotification: Boolean = false, protectContent: Boolean = false, replyToMessageId: MessageId? = null, allowSendingWithoutReply: Boolean? = null, sentMessageFlow: FlowCollector<ContentMessage<LocationContent>>? = null)

Will apply Flow.map to the locationsFlow to create EditLiveLocationInfo and pass the result flow to the handleLiveLocation with Flow typed by EditLiveLocationInfo

Link copied to clipboard
inline suspend fun TelegramBot.logOut(): Boolean
Link copied to clipboard
inline suspend fun TelegramBot.replyWithLiveLocation(to: Message, scope: CoroutineScope, location: StaticLocation, liveTimeMillis: Long = defaultLivePeriodDelayMillis, initHorizontalAccuracy: Meters? = null, initHeading: Degrees? = null, initProximityAlertRadius: Meters? = null, threadId: MessageThreadId? = to.threadIdOrNull, disableNotification: Boolean = false, protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null): LiveLocationProvider
inline suspend fun TelegramBot.replyWithLiveLocation(to: Message, scope: CoroutineScope, latitude: Double, longitude: Double, liveTimeMillis: Long = defaultLivePeriodDelayMillis, initHorizontalAccuracy: Meters? = null, initHeading: Degrees? = null, initProximityAlertRadius: Meters? = null, threadId: MessageThreadId? = to.threadIdOrNull, disableNotification: Boolean = false, protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null): LiveLocationProvider
Link copied to clipboard
suspend fun TelegramBot.startLiveLocation(scope: CoroutineScope, chatId: IdChatIdentifier, location: StaticLocation, liveTimeMillis: Long = defaultLivePeriodDelayMillis, initHorizontalAccuracy: Meters? = null, initHeading: Degrees? = null, initProximityAlertRadius: Meters? = null, threadId: MessageThreadId? = chatId.threadId, disableNotification: Boolean = false, protectContent: Boolean = false, replyToMessageId: MessageId? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null): LiveLocationProvider
suspend fun TelegramBot.startLiveLocation(scope: CoroutineScope, chat: Chat, location: StaticLocation, liveTimeMillis: Long = defaultLivePeriodDelayMillis, initHorizontalAccuracy: Meters? = null, initHeading: Degrees? = null, initProximityAlertRadius: Meters? = null, threadId: MessageThreadId? = chat.id.threadId, disableNotification: Boolean = false, protectContent: Boolean = false, replyToMessageId: MessageId? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null): LiveLocationProvider
suspend fun TelegramBot.startLiveLocation(scope: CoroutineScope, chatId: ChatIdentifier, latitude: Double, longitude: Double, liveTimeMillis: Long = defaultLivePeriodDelayMillis, initHorizontalAccuracy: Meters? = null, initHeading: Degrees? = null, initProximityAlertRadius: Meters? = null, threadId: MessageThreadId? = chatId.threadId, disableNotification: Boolean = false, protectContent: Boolean = false, replyToMessageId: MessageId? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null): LiveLocationProvider
suspend fun TelegramBot.startLiveLocation(scope: CoroutineScope, chat: Chat, latitude: Double, longitude: Double, liveTimeMillis: Long = defaultLivePeriodDelayMillis, initHorizontalAccuracy: Meters? = null, initHeading: Degrees? = null, initProximityAlertRadius: Meters? = null, threadId: MessageThreadId? = chat.id.threadId, disableNotification: Boolean = false, protectContent: Boolean = false, replyToMessageId: MessageId? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null): LiveLocationProvider
Link copied to clipboard
suspend fun TelegramBot.stopPoll(chatId: ChatIdentifier, messageId: MessageId, replyMarkup: InlineKeyboardMarkup? = null): Poll
suspend fun TelegramBot.stopPoll(chatId: IdChatIdentifier, message: Message, replyMarkup: InlineKeyboardMarkup? = null): Poll
suspend fun TelegramBot.stopPoll(chat: Chat, message: Message, replyMarkup: InlineKeyboardMarkup? = null): Poll
suspend fun TelegramBot.stopPoll(chat: Chat, messageId: MessageId, replyMarkup: InlineKeyboardMarkup? = null): Poll
Link copied to clipboard
fun telegramBot(urlsKeeper: TelegramAPIUrlsKeeper, client: HttpClient = HttpClient()): TelegramBot

Allows to create bot using bot urlsKeeper and already prepared client

inline fun telegramBot(urlsKeeper: TelegramAPIUrlsKeeper, noinline clientConfig: HttpClientConfig<*>.() -> Unit): RequestsExecutor

Allows to create bot using bot urlsKeeper and specify HttpClientEngine by configuring HttpClient using clientConfig

inline fun telegramBot(urlsKeeper: TelegramAPIUrlsKeeper, clientEngine: HttpClientEngine, noinline clientConfig: HttpClientConfig<*>.() -> Unit = {}): RequestsExecutor

Allows to create bot using bot urlsKeeper and specify HttpClientEngine by passing clientEngine param and optionally configure HttpClient using clientConfig

inline fun <T : HttpClientEngineConfig> telegramBot(urlsKeeper: TelegramAPIUrlsKeeper, clientFactory: HttpClientEngineFactory<T>, noinline clientConfig: HttpClientConfig<T>.() -> Unit = {}): RequestsExecutor

Allows to create bot using bot urlsKeeper and specify HttpClientEngineFactory by passing clientFactory param and optionally configure it with clientConfig

inline fun telegramBot(token: String, apiUrl: String = telegramBotAPIDefaultUrl, testServer: Boolean = false, client: HttpClient = HttpClient()): TelegramBot

Allows to create bot using bot token, apiUrl (for custom api servers) and already prepared client

inline fun telegramBot(token: String, apiUrl: String = telegramBotAPIDefaultUrl, testServer: Boolean = false, noinline clientConfig: HttpClientConfig<*>.() -> Unit): RequestsExecutor

Allows to create bot using bot token and apiUrl and specify HttpClientEngine by configuring HttpClient using clientConfig

inline fun telegramBot(token: String, clientEngine: HttpClientEngine, apiUrl: String = telegramBotAPIDefaultUrl, testServer: Boolean = false, noinline clientConfig: HttpClientConfig<*>.() -> Unit = {}): RequestsExecutor

Allows to create bot using bot token and specify HttpClientEngine by passing clientEngine param and optionally configure HttpClient using clientConfig

inline fun <T : HttpClientEngineConfig> telegramBot(token: String, clientFactory: HttpClientEngineFactory<T>, apiUrl: String = telegramBotAPIDefaultUrl, testServer: Boolean = false, noinline clientConfig: HttpClientConfig<T>.() -> Unit = {}): RequestsExecutor

Properties