From b2770e3ecc4e6b7e689b724c46fe4dc5445debbe Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Mon, 26 Apr 2021 20:52:20 +0600 Subject: [PATCH] record_voice and upload_voice --- .../inmo/tgbotapi/types/actions/BotAction.kt | 22 +++++++++++++++++++ .../extensions/api/send/SendAction.kt | 16 ++++++++++++++ .../extensions/api/send/SendActionDSL.kt | 4 ++++ .../tgbotapi/extensions/utils/ClassCasts.kt | 8 +++++++ 4 files changed, 50 insertions(+) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/actions/BotAction.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/actions/BotAction.kt index 6732f68fad..ed9d95b567 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/actions/BotAction.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/actions/BotAction.kt @@ -101,6 +101,28 @@ inline val uploadAudio get() = UploadAudioAction inline fun BotAction.asUploadAudio() = this as? UploadAudioAction +/** + * Will notify user that bot is recording some audio + */ +@Serializable(BotActionSerializer::class) +object RecordVoiceAction : BotAction() { + override val actionName: String = "record_voice" +} +inline val recordVoice + get() = RecordVoiceAction +inline fun BotAction.asRecordVoice() = this as? RecordVoiceAction + +/** + * Will notify user that bot is uploading some audio + */ +@Serializable(BotActionSerializer::class) +object UploadVoiceAction : BotAction() { + override val actionName: String = "upload_voice" +} +inline val uploadVoice + get() = UploadVoiceAction +inline fun BotAction.asUploadVoice() = this as? UploadVoiceAction + /** * Will notify user that bot is uploading some document */ diff --git a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendAction.kt b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendAction.kt index 05ab7eb80f..237f91f4fd 100644 --- a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendAction.kt +++ b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendAction.kt @@ -43,6 +43,14 @@ suspend fun TelegramBot.sendActionUploadAudio( chatId: ChatIdentifier ) = sendBotAction(chatId, UploadAudioAction) +suspend fun TelegramBot.sendActionRecordVoice( + chatId: ChatIdentifier +) = sendBotAction(chatId, RecordVoiceAction) + +suspend fun TelegramBot.sendActionUploadVoice( + chatId: ChatIdentifier +) = sendBotAction(chatId, UploadVoiceAction) + suspend fun TelegramBot.sendActionUploadDocument( chatId: ChatIdentifier ) = sendBotAction(chatId, UploadDocumentAction) @@ -84,6 +92,14 @@ suspend fun TelegramBot.sendActionUploadAudio( chat: Chat ) = sendBotAction(chat, UploadAudioAction) +suspend fun TelegramBot.sendActionRecordVoice( + chat: Chat +) = sendBotAction(chat, RecordVoiceAction) + +suspend fun TelegramBot.sendActionUploadVoice( + chat: Chat +) = sendBotAction(chat, UploadVoiceAction) + suspend fun TelegramBot.sendActionUploadDocument( chat: Chat ) = sendBotAction(chat, UploadDocumentAction) diff --git a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendActionDSL.kt b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendActionDSL.kt index 13e964debe..84dbede24a 100644 --- a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendActionDSL.kt +++ b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendActionDSL.kt @@ -58,6 +58,8 @@ suspend fun TelegramBot.withRecordVideoAction(chatId: ChatId, block: Telegra suspend fun TelegramBot.withUploadVideoAction(chatId: ChatId, block: TelegramBotActionCallback) = withAction(chatId, UploadVideoAction, block) suspend fun TelegramBot.withRecordAudioAction(chatId: ChatId, block: TelegramBotActionCallback) = withAction(chatId, RecordAudioAction, block) suspend fun TelegramBot.withUploadAudioAction(chatId: ChatId, block: TelegramBotActionCallback) = withAction(chatId, UploadAudioAction, block) +suspend fun TelegramBot.withRecordVoiceAction(chatId: ChatId, block: TelegramBotActionCallback) = withAction(chatId, RecordVoiceAction, block) +suspend fun TelegramBot.withUploadVoiceAction(chatId: ChatId, block: TelegramBotActionCallback) = withAction(chatId, UploadVoiceAction, block) suspend fun TelegramBot.withUploadDocumentAction(chatId: ChatId, block: TelegramBotActionCallback) = withAction(chatId, UploadDocumentAction, block) suspend fun TelegramBot.withFindLocationAction(chatId: ChatId, block: TelegramBotActionCallback) = withAction(chatId, FindLocationAction, block) suspend fun TelegramBot.withRecordVideoNoteAction(chatId: ChatId, block: TelegramBotActionCallback) = withAction(chatId, RecordVideoNoteAction, block) @@ -70,6 +72,8 @@ suspend fun TelegramBot.withRecordVideoAction(chat: Chat, block: TelegramBot suspend fun TelegramBot.withUploadVideoAction(chat: Chat, block: TelegramBotActionCallback) = withAction(chat, UploadVideoAction, block) suspend fun TelegramBot.withRecordAudioAction(chat: Chat, block: TelegramBotActionCallback) = withAction(chat, RecordAudioAction, block) suspend fun TelegramBot.withUploadAudioAction(chat: Chat, block: TelegramBotActionCallback) = withAction(chat, UploadAudioAction, block) +suspend fun TelegramBot.withRecordVoiceAction(chat: Chat, block: TelegramBotActionCallback) = withAction(chat, RecordVoiceAction, block) +suspend fun TelegramBot.withUploadVoiceAction(chat: Chat, block: TelegramBotActionCallback) = withAction(chat, UploadVoiceAction, block) suspend fun TelegramBot.withUploadDocumentAction(chat: Chat, block: TelegramBotActionCallback) = withAction(chat, UploadDocumentAction, block) suspend fun TelegramBot.withFindLocationAction(chat: Chat, block: TelegramBotActionCallback) = withAction(chat, FindLocationAction, block) suspend fun TelegramBot.withRecordVideoNoteAction(chat: Chat, block: TelegramBotActionCallback) = withAction(chat, RecordVideoNoteAction, block) diff --git a/tgbotapi.extensions.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/ClassCasts.kt b/tgbotapi.extensions.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/ClassCasts.kt index 21fc99db2e..aa0e254bbe 100644 --- a/tgbotapi.extensions.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/ClassCasts.kt +++ b/tgbotapi.extensions.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/ClassCasts.kt @@ -525,6 +525,10 @@ inline fun BotAction.asRecordAudioAction(): RecordAudioAction? = this as? Record @PreviewFeature inline fun BotAction.requireRecordAudioAction(): RecordAudioAction = this as RecordAudioAction @PreviewFeature +inline fun BotAction.asRecordVoiceAction(): RecordVoiceAction? = this as? RecordVoiceAction +@PreviewFeature +inline fun BotAction.requireRecordVoiceAction(): RecordVoiceAction = this as RecordVoiceAction +@PreviewFeature inline fun BotAction.asRecordVideoAction(): RecordVideoAction? = this as? RecordVideoAction @PreviewFeature inline fun BotAction.requireRecordVideoAction(): RecordVideoAction = this as RecordVideoAction @@ -541,6 +545,10 @@ inline fun BotAction.asUploadAudioAction(): UploadAudioAction? = this as? Upload @PreviewFeature inline fun BotAction.requireUploadAudioAction(): UploadAudioAction = this as UploadAudioAction @PreviewFeature +inline fun BotAction.asUploadVoiceAction(): UploadVoiceAction? = this as? UploadVoiceAction +@PreviewFeature +inline fun BotAction.requireUploadVoiceAction(): UploadVoiceAction = this as UploadVoiceAction +@PreviewFeature inline fun BotAction.asUploadDocumentAction(): UploadDocumentAction? = this as? UploadDocumentAction @PreviewFeature inline fun BotAction.requireUploadDocumentAction(): UploadDocumentAction = this as UploadDocumentAction