mirror of
				https://github.com/InsanusMokrassar/TelegramBotAPI.git
				synced 2025-10-30 19:50:12 +00:00 
			
		
		
		
	make*String extensions
This commit is contained in:
		| @@ -8,6 +8,7 @@ | ||||
|         * `MicroUtils`: `0.5.6` -> `0.5.15` | ||||
| * `Core`: | ||||
|     * New interface `MyCommandsRequest` (also see `Bot API 5.3` below) | ||||
|     * New extensions `TextSourcesList#make*String` for all parse modes | ||||
| * `Behaviour Builder`: | ||||
|     * ❗️ All triggers (`on*` extensions) have been modified to work in parallel by some marker by default (new parameter | ||||
|       `markerFactory`, in most cases will work async for different chats) | ||||
|   | ||||
| @@ -4,12 +4,12 @@ import dev.inmo.tgbotapi.types.MessageEntity.textsources.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.MultilevelTextSource | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSource | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSourcesList | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.makeString | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.separateForCaption | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.separateForMessage | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.separateForText | ||||
| import dev.inmo.tgbotapi.types.captionLength | ||||
| import dev.inmo.tgbotapi.types.textLength | ||||
| import dev.inmo.tgbotapi.utils.extensions.makeString | ||||
|  | ||||
| const val DirectInvocationOfTextSourceConstructor = | ||||
|     "It is strongly not recommended to use constructors directly instead of factory methods" | ||||
| @@ -48,7 +48,7 @@ inline operator fun List<TextSource>.plus(text: String) = this + regular(text) | ||||
| ) | ||||
| typealias MultilevelTextSource = MultilevelTextSource | ||||
|  | ||||
| @Deprecated("Replaced", ReplaceWith("makeString()", "dev.inmo.tgbotapi.types.MessageEntity.textsources.makeString")) | ||||
| @Deprecated("Replaced", ReplaceWith("makeString()", "dev.inmo.tgbotapi.utils.extensions.makeString")) | ||||
| fun List<TextSource>.makeString() = makeString() | ||||
|  | ||||
| @Deprecated( | ||||
|   | ||||
| @@ -5,7 +5,7 @@ import dev.inmo.tgbotapi.requests.edit.media.MediaContentMessageResultDeserializ | ||||
| import dev.inmo.tgbotapi.types.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSourcesList | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.makeString | ||||
| import dev.inmo.tgbotapi.utils.extensions.makeString | ||||
| import dev.inmo.tgbotapi.types.ParseMode.ParseMode | ||||
| import dev.inmo.tgbotapi.types.ParseMode.parseModeField | ||||
| import dev.inmo.tgbotapi.types.buttons.InlineKeyboardMarkup | ||||
|   | ||||
| @@ -4,7 +4,7 @@ import dev.inmo.tgbotapi.requests.edit.abstracts.* | ||||
| import dev.inmo.tgbotapi.types.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSourcesList | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.makeString | ||||
| import dev.inmo.tgbotapi.utils.extensions.makeString | ||||
| import dev.inmo.tgbotapi.types.ParseMode.ParseMode | ||||
| import dev.inmo.tgbotapi.types.ParseMode.parseModeField | ||||
| import dev.inmo.tgbotapi.types.buttons.InlineKeyboardMarkup | ||||
|   | ||||
| @@ -5,7 +5,7 @@ import dev.inmo.tgbotapi.requests.send.TextContentMessageResultDeserializer | ||||
| import dev.inmo.tgbotapi.types.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSourcesList | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.makeString | ||||
| import dev.inmo.tgbotapi.utils.extensions.makeString | ||||
| import dev.inmo.tgbotapi.types.ParseMode.ParseMode | ||||
| import dev.inmo.tgbotapi.types.ParseMode.parseModeField | ||||
| import dev.inmo.tgbotapi.types.buttons.InlineKeyboardMarkup | ||||
|   | ||||
| @@ -4,7 +4,7 @@ import dev.inmo.tgbotapi.requests.edit.abstracts.* | ||||
| import dev.inmo.tgbotapi.types.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSourcesList | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.makeString | ||||
| import dev.inmo.tgbotapi.utils.extensions.makeString | ||||
| import dev.inmo.tgbotapi.types.ParseMode.ParseMode | ||||
| import dev.inmo.tgbotapi.types.ParseMode.parseModeField | ||||
| import dev.inmo.tgbotapi.types.buttons.InlineKeyboardMarkup | ||||
|   | ||||
| @@ -7,7 +7,7 @@ import dev.inmo.tgbotapi.requests.send.abstracts.ReplyingMarkupSendMessageReques | ||||
| import dev.inmo.tgbotapi.types.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSource | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.makeString | ||||
| import dev.inmo.tgbotapi.utils.extensions.makeString | ||||
| import dev.inmo.tgbotapi.types.ParseMode.ParseMode | ||||
| import dev.inmo.tgbotapi.types.ParseMode.parseModeField | ||||
| import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup | ||||
|   | ||||
| @@ -5,7 +5,7 @@ import dev.inmo.tgbotapi.requests.send.abstracts.* | ||||
| import dev.inmo.tgbotapi.types.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSourcesList | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.makeString | ||||
| import dev.inmo.tgbotapi.utils.extensions.makeString | ||||
| import dev.inmo.tgbotapi.types.ParseMode.ParseMode | ||||
| import dev.inmo.tgbotapi.types.ParseMode.parseModeField | ||||
| import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup | ||||
|   | ||||
| @@ -6,7 +6,7 @@ import dev.inmo.tgbotapi.requests.send.media.base.* | ||||
| import dev.inmo.tgbotapi.types.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSourcesList | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.makeString | ||||
| import dev.inmo.tgbotapi.utils.extensions.makeString | ||||
| import dev.inmo.tgbotapi.types.ParseMode.ParseMode | ||||
| import dev.inmo.tgbotapi.types.ParseMode.parseModeField | ||||
| import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup | ||||
|   | ||||
| @@ -7,7 +7,7 @@ import dev.inmo.tgbotapi.requests.send.media.base.* | ||||
| import dev.inmo.tgbotapi.types.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSource | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.makeString | ||||
| import dev.inmo.tgbotapi.utils.extensions.makeString | ||||
| import dev.inmo.tgbotapi.types.ParseMode.ParseMode | ||||
| import dev.inmo.tgbotapi.types.ParseMode.parseModeField | ||||
| import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup | ||||
|   | ||||
| @@ -6,7 +6,7 @@ import dev.inmo.tgbotapi.requests.send.media.base.* | ||||
| import dev.inmo.tgbotapi.types.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSourcesList | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.makeString | ||||
| import dev.inmo.tgbotapi.utils.extensions.makeString | ||||
| import dev.inmo.tgbotapi.types.ParseMode.ParseMode | ||||
| import dev.inmo.tgbotapi.types.ParseMode.parseModeField | ||||
| import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup | ||||
|   | ||||
| @@ -6,7 +6,7 @@ import dev.inmo.tgbotapi.requests.send.media.base.* | ||||
| import dev.inmo.tgbotapi.types.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSourcesList | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.makeString | ||||
| import dev.inmo.tgbotapi.utils.extensions.makeString | ||||
| import dev.inmo.tgbotapi.types.ParseMode.ParseMode | ||||
| import dev.inmo.tgbotapi.types.ParseMode.parseModeField | ||||
| import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup | ||||
|   | ||||
| @@ -6,7 +6,7 @@ import dev.inmo.tgbotapi.requests.send.media.base.* | ||||
| import dev.inmo.tgbotapi.types.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSourcesList | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.makeString | ||||
| import dev.inmo.tgbotapi.utils.extensions.makeString | ||||
| import dev.inmo.tgbotapi.types.ParseMode.ParseMode | ||||
| import dev.inmo.tgbotapi.types.ParseMode.parseModeField | ||||
| import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup | ||||
|   | ||||
| @@ -6,7 +6,7 @@ import dev.inmo.tgbotapi.requests.send.media.base.* | ||||
| import dev.inmo.tgbotapi.types.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSourcesList | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.makeString | ||||
| import dev.inmo.tgbotapi.utils.extensions.makeString | ||||
| import dev.inmo.tgbotapi.types.ParseMode.ParseMode | ||||
| import dev.inmo.tgbotapi.types.ParseMode.parseModeField | ||||
| import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup | ||||
|   | ||||
| @@ -7,7 +7,7 @@ import dev.inmo.tgbotapi.requests.send.abstracts.SendMessageRequest | ||||
| import dev.inmo.tgbotapi.types.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSource | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.makeString | ||||
| import dev.inmo.tgbotapi.utils.extensions.makeString | ||||
| import dev.inmo.tgbotapi.types.ParseMode.ParseMode | ||||
| import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup | ||||
| import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage | ||||
|   | ||||
| @@ -7,7 +7,7 @@ import dev.inmo.tgbotapi.types.InlineQueries.InlineQueryResult.abstracts.results | ||||
| import dev.inmo.tgbotapi.types.InlineQueries.InputMessageContent.InputMessageContent | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSourcesList | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.makeString | ||||
| import dev.inmo.tgbotapi.utils.extensions.makeString | ||||
| import dev.inmo.tgbotapi.types.ParseMode.ParseMode | ||||
| import dev.inmo.tgbotapi.types.ParseMode.parseModeField | ||||
| import dev.inmo.tgbotapi.types.buttons.InlineKeyboardMarkup | ||||
|   | ||||
| @@ -6,7 +6,7 @@ import dev.inmo.tgbotapi.types.InlineQueries.InlineQueryResult.abstracts.results | ||||
| import dev.inmo.tgbotapi.types.InlineQueries.InputMessageContent.InputMessageContent | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSourcesList | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.makeString | ||||
| import dev.inmo.tgbotapi.utils.extensions.makeString | ||||
| import dev.inmo.tgbotapi.types.ParseMode.ParseMode | ||||
| import dev.inmo.tgbotapi.types.ParseMode.parseModeField | ||||
| import dev.inmo.tgbotapi.types.buttons.InlineKeyboardMarkup | ||||
|   | ||||
| @@ -7,7 +7,7 @@ import dev.inmo.tgbotapi.types.InlineQueries.InlineQueryResult.abstracts.results | ||||
| import dev.inmo.tgbotapi.types.InlineQueries.InputMessageContent.InputMessageContent | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSourcesList | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.makeString | ||||
| import dev.inmo.tgbotapi.utils.extensions.makeString | ||||
| import dev.inmo.tgbotapi.types.ParseMode.ParseMode | ||||
| import dev.inmo.tgbotapi.types.ParseMode.parseModeField | ||||
| import dev.inmo.tgbotapi.types.buttons.InlineKeyboardMarkup | ||||
|   | ||||
| @@ -6,7 +6,7 @@ import dev.inmo.tgbotapi.types.InlineQueries.InlineQueryResult.abstracts.results | ||||
| import dev.inmo.tgbotapi.types.InlineQueries.InputMessageContent.InputMessageContent | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSourcesList | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.makeString | ||||
| import dev.inmo.tgbotapi.utils.extensions.makeString | ||||
| import dev.inmo.tgbotapi.types.ParseMode.ParseMode | ||||
| import dev.inmo.tgbotapi.types.ParseMode.parseModeField | ||||
| import dev.inmo.tgbotapi.types.buttons.InlineKeyboardMarkup | ||||
|   | ||||
| @@ -7,7 +7,7 @@ import dev.inmo.tgbotapi.types.InlineQueries.InlineQueryResult.abstracts.results | ||||
| import dev.inmo.tgbotapi.types.InlineQueries.InputMessageContent.InputMessageContent | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSourcesList | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.makeString | ||||
| import dev.inmo.tgbotapi.utils.extensions.makeString | ||||
| import dev.inmo.tgbotapi.types.ParseMode.ParseMode | ||||
| import dev.inmo.tgbotapi.types.ParseMode.parseModeField | ||||
| import dev.inmo.tgbotapi.types.buttons.InlineKeyboardMarkup | ||||
|   | ||||
| @@ -6,7 +6,7 @@ import dev.inmo.tgbotapi.types.InlineQueries.InlineQueryResult.abstracts.results | ||||
| import dev.inmo.tgbotapi.types.InlineQueries.InputMessageContent.InputMessageContent | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSourcesList | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.makeString | ||||
| import dev.inmo.tgbotapi.utils.extensions.makeString | ||||
| import dev.inmo.tgbotapi.types.ParseMode.ParseMode | ||||
| import dev.inmo.tgbotapi.types.ParseMode.parseModeField | ||||
| import dev.inmo.tgbotapi.types.buttons.InlineKeyboardMarkup | ||||
|   | ||||
| @@ -7,7 +7,7 @@ import dev.inmo.tgbotapi.types.InlineQueries.InlineQueryResult.abstracts.results | ||||
| import dev.inmo.tgbotapi.types.InlineQueries.InputMessageContent.InputMessageContent | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSourcesList | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.makeString | ||||
| import dev.inmo.tgbotapi.utils.extensions.makeString | ||||
| import dev.inmo.tgbotapi.types.ParseMode.ParseMode | ||||
| import dev.inmo.tgbotapi.types.ParseMode.parseModeField | ||||
| import dev.inmo.tgbotapi.types.buttons.InlineKeyboardMarkup | ||||
|   | ||||
| @@ -6,7 +6,7 @@ import dev.inmo.tgbotapi.types.InlineQueries.InlineQueryResult.abstracts.results | ||||
| import dev.inmo.tgbotapi.types.InlineQueries.InputMessageContent.InputMessageContent | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSourcesList | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.makeString | ||||
| import dev.inmo.tgbotapi.utils.extensions.makeString | ||||
| import dev.inmo.tgbotapi.types.ParseMode.ParseMode | ||||
| import dev.inmo.tgbotapi.types.ParseMode.parseModeField | ||||
| import dev.inmo.tgbotapi.types.buttons.InlineKeyboardMarkup | ||||
|   | ||||
| @@ -7,7 +7,7 @@ import dev.inmo.tgbotapi.types.InlineQueries.InlineQueryResult.abstracts.results | ||||
| import dev.inmo.tgbotapi.types.InlineQueries.InputMessageContent.InputMessageContent | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSourcesList | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.makeString | ||||
| import dev.inmo.tgbotapi.utils.extensions.makeString | ||||
| import dev.inmo.tgbotapi.types.ParseMode.ParseMode | ||||
| import dev.inmo.tgbotapi.types.ParseMode.parseModeField | ||||
| import dev.inmo.tgbotapi.types.buttons.InlineKeyboardMarkup | ||||
|   | ||||
| @@ -6,7 +6,7 @@ import dev.inmo.tgbotapi.types.InlineQueries.InlineQueryResult.abstracts.results | ||||
| import dev.inmo.tgbotapi.types.InlineQueries.InputMessageContent.InputMessageContent | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSourcesList | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.makeString | ||||
| import dev.inmo.tgbotapi.utils.extensions.makeString | ||||
| import dev.inmo.tgbotapi.types.ParseMode.ParseMode | ||||
| import dev.inmo.tgbotapi.types.ParseMode.parseModeField | ||||
| import dev.inmo.tgbotapi.types.buttons.InlineKeyboardMarkup | ||||
|   | ||||
| @@ -7,7 +7,7 @@ import dev.inmo.tgbotapi.types.InlineQueries.InlineQueryResult.abstracts.results | ||||
| import dev.inmo.tgbotapi.types.InlineQueries.InputMessageContent.InputMessageContent | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSourcesList | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.makeString | ||||
| import dev.inmo.tgbotapi.utils.extensions.makeString | ||||
| import dev.inmo.tgbotapi.types.ParseMode.ParseMode | ||||
| import dev.inmo.tgbotapi.types.ParseMode.parseModeField | ||||
| import dev.inmo.tgbotapi.types.buttons.InlineKeyboardMarkup | ||||
|   | ||||
| @@ -6,7 +6,7 @@ import dev.inmo.tgbotapi.types.InlineQueries.InlineQueryResult.abstracts.results | ||||
| import dev.inmo.tgbotapi.types.InlineQueries.InputMessageContent.InputMessageContent | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSource | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.makeString | ||||
| import dev.inmo.tgbotapi.utils.extensions.makeString | ||||
| import dev.inmo.tgbotapi.types.ParseMode.ParseMode | ||||
| import dev.inmo.tgbotapi.types.ParseMode.parseModeField | ||||
| import dev.inmo.tgbotapi.types.buttons.InlineKeyboardMarkup | ||||
|   | ||||
| @@ -7,7 +7,7 @@ import dev.inmo.tgbotapi.types.InlineQueries.InlineQueryResult.abstracts.results | ||||
| import dev.inmo.tgbotapi.types.InlineQueries.InputMessageContent.InputMessageContent | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSourcesList | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.makeString | ||||
| import dev.inmo.tgbotapi.utils.extensions.makeString | ||||
| import dev.inmo.tgbotapi.types.ParseMode.ParseMode | ||||
| import dev.inmo.tgbotapi.types.ParseMode.parseModeField | ||||
| import dev.inmo.tgbotapi.types.buttons.InlineKeyboardMarkup | ||||
|   | ||||
| @@ -6,7 +6,7 @@ import dev.inmo.tgbotapi.types.InlineQueries.InlineQueryResult.abstracts.results | ||||
| import dev.inmo.tgbotapi.types.InlineQueries.InputMessageContent.InputMessageContent | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSourcesList | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.makeString | ||||
| import dev.inmo.tgbotapi.utils.extensions.makeString | ||||
| import dev.inmo.tgbotapi.types.ParseMode.ParseMode | ||||
| import dev.inmo.tgbotapi.types.ParseMode.parseModeField | ||||
| import dev.inmo.tgbotapi.types.buttons.InlineKeyboardMarkup | ||||
|   | ||||
| @@ -5,7 +5,7 @@ import dev.inmo.tgbotapi.CommonAbstracts.types.DisableWebPagePreview | ||||
| import dev.inmo.tgbotapi.types.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSourcesList | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.makeString | ||||
| import dev.inmo.tgbotapi.utils.extensions.makeString | ||||
| import dev.inmo.tgbotapi.types.ParseMode.ParseMode | ||||
| import dev.inmo.tgbotapi.types.ParseMode.parseModeField | ||||
| import kotlinx.serialization.SerialName | ||||
|   | ||||
| @@ -6,7 +6,7 @@ import dev.inmo.tgbotapi.requests.abstracts.fileIdToSend | ||||
| import dev.inmo.tgbotapi.types.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSourcesList | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.makeString | ||||
| import dev.inmo.tgbotapi.utils.extensions.makeString | ||||
| import dev.inmo.tgbotapi.types.ParseMode.ParseMode | ||||
| import dev.inmo.tgbotapi.types.ParseMode.parseModeField | ||||
| import kotlinx.serialization.SerialName | ||||
|   | ||||
| @@ -6,7 +6,7 @@ import dev.inmo.tgbotapi.requests.abstracts.fileIdToSend | ||||
| import dev.inmo.tgbotapi.types.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSourcesList | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.makeString | ||||
| import dev.inmo.tgbotapi.utils.extensions.makeString | ||||
| import dev.inmo.tgbotapi.types.ParseMode.ParseMode | ||||
| import dev.inmo.tgbotapi.types.ParseMode.parseModeField | ||||
| import dev.inmo.tgbotapi.types.files.AudioFile | ||||
|   | ||||
| @@ -4,7 +4,7 @@ import dev.inmo.tgbotapi.requests.abstracts.* | ||||
| import dev.inmo.tgbotapi.types.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSourcesList | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.makeString | ||||
| import dev.inmo.tgbotapi.utils.extensions.makeString | ||||
| import dev.inmo.tgbotapi.types.ParseMode.ParseMode | ||||
| import dev.inmo.tgbotapi.types.ParseMode.parseModeField | ||||
| import dev.inmo.tgbotapi.types.files.DocumentFile | ||||
|   | ||||
| @@ -5,7 +5,7 @@ import dev.inmo.tgbotapi.requests.abstracts.fileIdToSend | ||||
| import dev.inmo.tgbotapi.types.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSourcesList | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.makeString | ||||
| import dev.inmo.tgbotapi.utils.extensions.makeString | ||||
| import dev.inmo.tgbotapi.types.ParseMode.ParseMode | ||||
| import dev.inmo.tgbotapi.types.ParseMode.parseModeField | ||||
| import dev.inmo.tgbotapi.types.files.PhotoSize | ||||
|   | ||||
| @@ -5,7 +5,7 @@ import dev.inmo.tgbotapi.requests.abstracts.fileIdToSend | ||||
| import dev.inmo.tgbotapi.types.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSourcesList | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.makeString | ||||
| import dev.inmo.tgbotapi.utils.extensions.makeString | ||||
| import dev.inmo.tgbotapi.types.ParseMode.ParseMode | ||||
| import dev.inmo.tgbotapi.types.ParseMode.parseModeField | ||||
| import kotlinx.serialization.* | ||||
|   | ||||
| @@ -1,6 +1,7 @@ | ||||
| package dev.inmo.tgbotapi.types.MessageEntity.textsources | ||||
|  | ||||
| import dev.inmo.tgbotapi.utils.RiskFeature | ||||
| import dev.inmo.tgbotapi.utils.extensions.makeString | ||||
| import dev.inmo.tgbotapi.utils.internal.* | ||||
| import kotlinx.serialization.Serializable | ||||
|  | ||||
|   | ||||
| @@ -1,6 +1,7 @@ | ||||
| package dev.inmo.tgbotapi.types.MessageEntity.textsources | ||||
|  | ||||
| import dev.inmo.tgbotapi.utils.RiskFeature | ||||
| import dev.inmo.tgbotapi.utils.extensions.makeString | ||||
| import dev.inmo.tgbotapi.utils.internal.* | ||||
| import kotlinx.serialization.Serializable | ||||
|  | ||||
|   | ||||
| @@ -1,6 +1,7 @@ | ||||
| package dev.inmo.tgbotapi.types.MessageEntity.textsources | ||||
|  | ||||
| import dev.inmo.tgbotapi.utils.RiskFeature | ||||
| import dev.inmo.tgbotapi.utils.extensions.makeString | ||||
| import dev.inmo.tgbotapi.utils.internal.* | ||||
| import kotlinx.serialization.Serializable | ||||
|  | ||||
|   | ||||
| @@ -1,6 +1,7 @@ | ||||
| package dev.inmo.tgbotapi.types.MessageEntity.textsources | ||||
|  | ||||
| import dev.inmo.tgbotapi.utils.RiskFeature | ||||
| import dev.inmo.tgbotapi.utils.extensions.makeString | ||||
| import dev.inmo.tgbotapi.utils.internal.* | ||||
| import kotlinx.serialization.Serializable | ||||
|  | ||||
|   | ||||
| @@ -1,6 +1,7 @@ | ||||
| package dev.inmo.tgbotapi.types.MessageEntity.textsources | ||||
|  | ||||
| import dev.inmo.tgbotapi.utils.RiskFeature | ||||
| import dev.inmo.tgbotapi.utils.extensions.makeString | ||||
| import dev.inmo.tgbotapi.utils.internal.* | ||||
| import kotlinx.serialization.Serializable | ||||
|  | ||||
|   | ||||
| @@ -1,6 +1,7 @@ | ||||
| package dev.inmo.tgbotapi.types.MessageEntity.textsources | ||||
|  | ||||
| import dev.inmo.tgbotapi.utils.RiskFeature | ||||
| import dev.inmo.tgbotapi.utils.extensions.makeString | ||||
| import dev.inmo.tgbotapi.utils.internal.* | ||||
| import kotlinx.serialization.Serializable | ||||
|  | ||||
|   | ||||
| @@ -1,6 +1,7 @@ | ||||
| package dev.inmo.tgbotapi.types.MessageEntity.textsources | ||||
|  | ||||
| import dev.inmo.tgbotapi.utils.RiskFeature | ||||
| import dev.inmo.tgbotapi.utils.extensions.makeString | ||||
| import dev.inmo.tgbotapi.utils.internal.* | ||||
| import kotlinx.serialization.Serializable | ||||
|  | ||||
|   | ||||
| @@ -1,6 +1,7 @@ | ||||
| package dev.inmo.tgbotapi.types.MessageEntity.textsources | ||||
|  | ||||
| import dev.inmo.tgbotapi.utils.RiskFeature | ||||
| import dev.inmo.tgbotapi.utils.extensions.makeString | ||||
| import dev.inmo.tgbotapi.utils.internal.* | ||||
| import kotlinx.serialization.Serializable | ||||
|  | ||||
|   | ||||
| @@ -2,6 +2,7 @@ package dev.inmo.tgbotapi.types.MessageEntity.textsources | ||||
|  | ||||
| import dev.inmo.tgbotapi.types.* | ||||
| import dev.inmo.tgbotapi.utils.RiskFeature | ||||
| import dev.inmo.tgbotapi.utils.extensions.makeString | ||||
| import dev.inmo.tgbotapi.utils.internal.* | ||||
| import kotlinx.serialization.Serializable | ||||
|  | ||||
|   | ||||
| @@ -2,6 +2,7 @@ package dev.inmo.tgbotapi.types.MessageEntity.textsources | ||||
|  | ||||
| import dev.inmo.tgbotapi.types.captionLength | ||||
| import dev.inmo.tgbotapi.types.textLength | ||||
| import dev.inmo.tgbotapi.utils.extensions.makeString | ||||
| import kotlinx.serialization.Serializable | ||||
|  | ||||
| const val DirectInvocationOfTextSourceConstructor = "It is strongly not recommended to use constructors directly instead of factory methods" | ||||
| @@ -42,7 +43,8 @@ sealed interface MultilevelTextSource : TextSource { | ||||
|     } | ||||
| } | ||||
|  | ||||
| fun List<TextSource>.makeString() = joinToString("") { it.source } | ||||
| @Deprecated("Replaced", ReplaceWith("makeString()", "dev.inmo.tgbotapi.utils.extensions.makeString")) | ||||
| fun TextSourcesList.makeString() = makeString(null) | ||||
| fun List<TextSource>.separateForMessage(limit: IntRange, numberOfParts: Int? = null): List<List<TextSource>> { | ||||
|     if (isEmpty()) { | ||||
|         return emptyList() | ||||
|   | ||||
| @@ -1,6 +1,7 @@ | ||||
| package dev.inmo.tgbotapi.types.MessageEntity.textsources | ||||
|  | ||||
| import dev.inmo.tgbotapi.utils.RiskFeature | ||||
| import dev.inmo.tgbotapi.utils.extensions.makeString | ||||
| import dev.inmo.tgbotapi.utils.internal.* | ||||
| import kotlinx.serialization.Serializable | ||||
|  | ||||
|   | ||||
| @@ -0,0 +1,30 @@ | ||||
| package dev.inmo.tgbotapi.utils.extensions | ||||
|  | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSourcesList | ||||
| import dev.inmo.tgbotapi.types.ParseMode.* | ||||
|  | ||||
| inline fun TextSourcesList.makeString( | ||||
|     parseMode: ParseMode? = null | ||||
| ) = when (parseMode) { | ||||
|     MarkdownParseMode -> makeMarkdownString() | ||||
|     MarkdownV2ParseMode -> makeMarkdownV2String() | ||||
|     HTMLParseMode -> makeHtmlString() | ||||
|     null -> makeSourceString() | ||||
| } | ||||
|  | ||||
|  | ||||
| inline fun TextSourcesList.makeSourceString() = joinToString("") { | ||||
|     it.source | ||||
| } | ||||
|  | ||||
| inline fun TextSourcesList.makeHtmlString() = joinToString("") { | ||||
|     it.html | ||||
| } | ||||
|  | ||||
| inline fun TextSourcesList.makeMarkdownV2String() = joinToString("") { | ||||
|     it.markdownV2 | ||||
| } | ||||
|  | ||||
| inline fun TextSourcesList.makeMarkdownString() = joinToString("") { | ||||
|     it.markdown | ||||
| } | ||||
| @@ -4,33 +4,24 @@ import dev.inmo.tgbotapi.types.MessageEntity.textsources.MultilevelTextSource | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSourcesList | ||||
| import dev.inmo.tgbotapi.types.UserId | ||||
| import dev.inmo.tgbotapi.types.link | ||||
| import dev.inmo.tgbotapi.utils.extensions.escapeMarkdownV2Link | ||||
| import dev.inmo.tgbotapi.utils.extensions.toHtml | ||||
|  | ||||
| private fun TextSourcesList.joinSubSourcesMarkdownV2() = joinToString("") { | ||||
|     it.markdownV2 | ||||
| } | ||||
|  | ||||
| private fun TextSourcesList.joinSubSourcesHtml() = joinToString("") { | ||||
|     it.html | ||||
| } | ||||
| import dev.inmo.tgbotapi.utils.extensions.* | ||||
|  | ||||
| internal fun MultilevelTextSource.markdownV2Default( | ||||
|     openControlSymbol: String, | ||||
|     closeControlSymbol: String = openControlSymbol | ||||
| ) = "$openControlSymbol${subsources.joinSubSourcesMarkdownV2()}$closeControlSymbol" | ||||
| ) = "$openControlSymbol${subsources.makeMarkdownV2String()}$closeControlSymbol" | ||||
| internal fun MultilevelTextSource.htmlDefault( | ||||
|     openControlSymbol: String, | ||||
|     closeControlSymbol: String = openControlSymbol | ||||
| ) = "<$openControlSymbol>${subsources.joinSubSourcesHtml()}</$closeControlSymbol>" | ||||
| ) = "<$openControlSymbol>${subsources.makeHtmlString()}</$closeControlSymbol>" | ||||
|  | ||||
|  | ||||
| internal fun MultilevelTextSource.linkMarkdownV2( | ||||
|     link: String | ||||
| ) = "[${subsources.joinSubSourcesMarkdownV2()}](${link.escapeMarkdownV2Link()})" | ||||
| ) = "[${subsources.makeMarkdownV2String()}](${link.escapeMarkdownV2Link()})" | ||||
| internal fun MultilevelTextSource.linkHTML( | ||||
|     link: String | ||||
| ) = "<a href=\"${link.toHtml()}\">${subsources.joinSubSourcesHtml()}</a>" | ||||
| ) = "<a href=\"${link.toHtml()}\">${subsources.makeHtmlString()}</a>" | ||||
|  | ||||
|  | ||||
| internal fun MultilevelTextSource.optionalPrefix( | ||||
| @@ -51,8 +42,8 @@ internal fun MultilevelTextSource.boldMarkdownV2(): String = markdownV2Default(m | ||||
| internal fun MultilevelTextSource.boldHTML(): String = htmlDefault(htmlBoldControl) | ||||
|  | ||||
|  | ||||
| internal fun MultilevelTextSource.cashTagMarkdownV2(): String = subsources.joinSubSourcesMarkdownV2() | ||||
| internal fun MultilevelTextSource.cashTagHTML(): String = subsources.joinSubSourcesHtml() | ||||
| internal fun MultilevelTextSource.cashTagMarkdownV2(): String = subsources.makeMarkdownV2String() | ||||
| internal fun MultilevelTextSource.cashTagHTML(): String = subsources.makeHtmlString() | ||||
|  | ||||
|  | ||||
| internal fun MultilevelTextSource.italicMarkdownV2(): String = markdownV2Default(markdownItalicControl) | ||||
| @@ -70,16 +61,16 @@ internal fun MultilevelTextSource.underlineHTML(): String = htmlDefault(htmlUnde | ||||
| internal fun MultilevelTextSource.textMentionMarkdownV2(userId: UserId): String = linkMarkdownV2(userId.link) | ||||
| internal fun MultilevelTextSource.textMentionHTML(userId: UserId): String = linkHTML(userId.link) | ||||
|  | ||||
| internal fun MultilevelTextSource.mentionMarkdownV2(): String = optionalPrefix("@") + subsources.joinSubSourcesMarkdownV2() | ||||
| internal fun MultilevelTextSource.mentionHTML(): String = optionalPrefix("@") + subsources.joinSubSourcesHtml() | ||||
| internal fun MultilevelTextSource.mentionMarkdownV2(): String = optionalPrefix("@") + subsources.makeMarkdownV2String() | ||||
| internal fun MultilevelTextSource.mentionHTML(): String = optionalPrefix("@") + subsources.makeHtmlString() | ||||
|  | ||||
|  | ||||
| internal fun MultilevelTextSource.hashTagMarkdownV2(): String = when { | ||||
|     source.startsWith("\\#") || source.startsWith("#") -> "" | ||||
|     else -> "\\#" | ||||
| } + subsources.joinSubSourcesMarkdownV2() | ||||
| internal fun MultilevelTextSource.hashTagHTML(): String = optionalPrefix("#") + subsources.joinSubSourcesHtml() | ||||
| } + subsources.makeMarkdownV2String() | ||||
| internal fun MultilevelTextSource.hashTagHTML(): String = optionalPrefix("#") + subsources.makeHtmlString() | ||||
|  | ||||
|  | ||||
| internal fun MultilevelTextSource.phoneMarkdownV2(): String = subsources.joinSubSourcesMarkdownV2() | ||||
| internal fun MultilevelTextSource.phoneHTML(): String = subsources.joinSubSourcesHtml() | ||||
| internal fun MultilevelTextSource.phoneMarkdownV2(): String = subsources.makeMarkdownV2String() | ||||
| internal fun MultilevelTextSource.phoneHTML(): String = subsources.makeHtmlString() | ||||
|   | ||||
| @@ -3,7 +3,7 @@ package dev.inmo.tgbotapi.types | ||||
| import dev.inmo.tgbotapi.TestsJsonFormat | ||||
| import dev.inmo.tgbotapi.extensions.utils.formatting.* | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSourceSerializer | ||||
| import dev.inmo.tgbotapi.types.MessageEntity.textsources.makeString | ||||
| import dev.inmo.tgbotapi.utils.extensions.makeString | ||||
| import kotlinx.serialization.builtins.ListSerializer | ||||
| import kotlin.test.Test | ||||
| import kotlin.test.assertEquals | ||||
|   | ||||
		Reference in New Issue
	
	Block a user