Package dev.inmo.tgbotapi.extensions.api

Types

Link copied to clipboard
data class BotBuilder
Link copied to clipboard
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,     disableNotification: Boolean = false,     protectContent: Boolean = false): PossiblyForwardedMessage
suspend fun TelegramBot.forwardMessage(    toChat: Chat,     message: Message,     disableNotification: Boolean = false,     protectContent: Boolean = false): PossiblyForwardedMessage
suspend fun TelegramBot.forwardMessage(    fromChatId: ChatIdentifier,     toChatId: ChatIdentifier,     messageId: MessageId,     disableNotification: Boolean = false,     protectContent: Boolean = false): PossiblyForwardedMessage
suspend fun TelegramBot.forwardMessage(    fromChatId: ChatIdentifier,     toChat: Chat,     messageId: MessageId,     disableNotification: Boolean = false,     protectContent: Boolean = false): PossiblyForwardedMessage
suspend fun TelegramBot.forwardMessage(    fromChat: Chat,     toChatId: ChatIdentifier,     messageId: MessageId,     disableNotification: Boolean = false,     protectContent: Boolean = false): PossiblyForwardedMessage
suspend fun TelegramBot.forwardMessage(    fromChat: Chat,     toChat: Chat,     messageId: MessageId,     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,     disableNotification: Boolean = false,     protectContent: Boolean = false,     replyToMessageId: MessageId? = null,     allowSendingWithoutReply: Boolean? = 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,     disableNotification: Boolean = false,     protectContent: Boolean = false,     replyToMessageId: MessageId? = null,     allowSendingWithoutReply: Boolean? = null)
@JvmName(name = "handleLiveLocationWithLatLong")
suspend fun TelegramBot.handleLiveLocation(    chatId: ChatIdentifier,     locationsFlow: Flow<Pair<Double, Double>>,     liveTimeMillis: Long = defaultLivePeriodDelayMillis,     disableNotification: Boolean = false,     protectContent: Boolean = false,     replyToMessageId: MessageId? = null,     allowSendingWithoutReply: Boolean? = 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,     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,     disableNotification: Boolean = false,     protectContent: Boolean = false,     allowSendingWithoutReply: Boolean? = null,     replyMarkup: KeyboardMarkup? = null): LiveLocationProvider
Link copied to clipboard
suspend fun TelegramBot.startLiveLocation(    scope: CoroutineScope,     chatId: ChatId,     location: StaticLocation,     liveTimeMillis: Long = defaultLivePeriodDelayMillis,     initHorizontalAccuracy: Meters? = null,     initHeading: Degrees? = null,     initProximityAlertRadius: Meters? = null,     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,     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,     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,     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: ChatId,     message: Message,     replyMarkup: InlineKeyboardMarkup? = null): Poll
suspend fun TelegramBot.stopPoll(    chatId: ChatIdentifier,     messageId: MessageId,     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

Link copied to clipboard
val defaultLivePeriodDelayMillis: Long