152 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	TelegramBotAPI changelog
29.0.0
28.0.2
Core:
28.0.1
Version:Kotlin:2.2.0->2.2.10MicroUtils:0.26.2->0.26.3Ktor:3.2.2->3.2.3
Core:- Let all 
OptionallyMessageThreadRequestinheritors to use@EncodeDefaultannotation to fix default value passing 
- Let all 
 
28.0.0
THIS UPDATE CONTAINS BREAKING CHANGES
Core:- Add 
firstOfextension 
- Add 
 BehaviourBuilder:- All builders for behaviours got boolean 
useDefaultSubcontextInitialAction - Add opportunity to pass 
BehaviourContextDatainDefaultBehaviourContextconstructor andcopymethod - By default, commands to other bots will be ignored in triggers and waiters
 
- All builders for behaviours got boolean 
 
27.1.2
Core:- Try to fix cancelling on timeout for long polling
 - Since this update phrase 
Something web wrongwill not happen from this library 😭 
27.1.1
Version:MicroUtils:0.26.1->0.26.2
Core:- Make 
BusinessLocation#locationoptional (fix of #990) 
- Make 
 
27.1.0
Core:- Improve support of local bot api servers files. Next call factories will try to resolve file locally before real call:
- DownloadFileRequestCallFactory.kt (for DownloadFile.kt as well)
 - DownloadFileChannelRequestCallFactory.kt (for DownloadFileStream.kt as well)
 
 
- Improve support of local bot api servers files. Next call factories will try to resolve file locally before real call:
 
27.0.0
THIS UPDATE MAY CONTAIN BREAKING CHANGES. IN CASE OF ANY MIGRATION PROBLEMS FEEL FREE TO ASK IN OUR CHAT
Version:Kotlin:2.1.20->2.2.0Serialization:1.8.1->1.9.0Ktor:3.1.3->3.2.2MicroUtils:0.25.7->0.26.1KSLog:1.4.1->1.5.0
Common:- In most 
dataclasses with non-public constructors has been addedConsistentCopyVisibilityannotation, preventing public nature in difference with constructor - Absence of several API methods for requests has been fixed
 
- In most 
 
26.1.0
THIS UPDATE CONTAINS ADDING SUPPORT OF Telegram Bots API 9.1
THIS UPDATE MAY CONTAINS BREAKING CHANGES
26.0.0
THIS UPDATE CONTAINS BREAKING CHANGES IN BEHAVIOUR BUILDER AND CORE. BE CAREFUL ON UPDATE
Version:Serialization:1.8.0->1.8.1Coroutines:1.10.1->1.10.2Ktor:3.1.1->3.1.3MicroUtils:0.25.3->0.25.7
Core:- POTENTIALLY BREAKING CHANGE Long polling has been reworked a bit
 - BREAKING CHANGE 
RequestsExecutorgot propertyRequestsExecutor.Log: KSLog 
BehaviourContext:- BREAKING CHANGE All triggers and waiters become non-suspend functions
 - BREAKING CHANGE Behaviour of counted extensions (commands, data callback queries, etc.) has been changed a bit: now each one will create subcontext and work in it
 - New extension 
BehaviourContext.launchInNewSubContextwhich will launch some job in subcontext of receiver 
25.0.1
THIS UPDATE CONTAINS ADDING SUPPORT OF Telegram Bots API 9.0
Core:- Previously named 
Giftnow presented byGift.Regular - Fixes in 
MultipartRequestCallFactoryfor correct handling of allMultipartRequest.Commoninheritors Usernamenow can be safely created withUsername.prepare- Add extensions 
String.splitFor(Text|Caption|StoryCaption)for preparing several texts for several messages/captions/story captions 
- Previously named 
 
24.0.2
Version:Kotlin:2.1.10->2.1.20Ktor:3.1.0->3.1.1MicroUtils:0.24.7->0.25.3
DefaultKTgBotAPIKSLogwill dropCancellationExceptions by default- You may configure 
DefaultKTgBotAPIKSLogin simple way withSetDefaultKTgBotAPIKSLog BehaviourBuilder:FSM:- Fix chains cancelling on their ends
 
24.0.1
Core:- Now you may upload photos with 
EditChatMessageMedia 
- Now you may upload photos with 
 
24.0.0
THIS UPDATE CONTAINS BREAKING CHANGES IN subcontextUpdatesFilter WORK. TAKE CARE IN MIGRATION
Version:MicroUtils:0.24.6->0.24.7
Core:ForumContentMessagegot propertythreadCreatingInfowhich represents information about topic where message has been sent
BehaviourBuilder:- Fix of overall 
subcontextUpdatesFilterbehaviour. In fact, this update will fix its affection on scenaries 
- Fix of overall 
 
23.2.1
Core:- Fix of 
yearfield inBirthdate 
- Fix of 
 
23.2.0
THIS UPDATE CONTAINS ADDING SUPPORT OF Telegram Bots API 8.3
Version:MicroUtils:0.24.5->0.24.6Ktor:3.0.3->3.1.0
23.1.2
Version:Kotlin:2.1.0->2.1.10Serialization:1.7.3->1.8.0MicroUtils:0.24.4->0.24.5KSLog:1.4.0->1.4.1
23.1.1
Version:MicroUtils:0.24.0->0.24.4
Core:- Replace 
removeFirstwithremoveAt(0)increateTextSources 
- Replace 
 
23.1.0
THIS UPDATE CONTAINS ADDING SUPPORT OF Telegram Bots API 8.2
23.0.0
Version:Coroutines:1.9.0->1.10.1MicroUtils:0.23.2->0.24.0KSLog:1.3.6->1.4.0Ktor:3.0.2->3.0.3
Core:- All old factory methods for 
TextSources took suffixTextSource. For example:regular->regularTextSource. That has been for excluding names resolution ambiguity with extensions forEntitiesBuilder 
- All old factory methods for 
 
22.0.0
THIS UPDATE CONTAINS BREAKING CHANGES
IN THIS UPDATE HAS BEEN REWORKED EVENTS API IN WEBAPPS
THIS UPDATE ADDING SUPPORT OF BOT API 8.0 AND BOT API 8.1
Version:MicroUtils:0.23.1->0.23.2Ktor:3.0.1->3.0.2
21.0.1
Core:- Improvements in 
Update.sourceUserextension - Add extension 
PrivateChat.toUser - Builder methods of 
TextSources (likeprewhich returnsPreTextSource) lost suppression ofredundant inlinedue to its redundancy - Add 
mentionbuilders forEntitiesBuilderwithUserIdas variant instead ofUser 
- Improvements in 
 BehaviourBuilder:- Add support of several rounds for 
CombinedSubcontextInitialAction. Now it will try hard to execute all itsSubActionwhile all actions will not be completed successfully OR all left actions will not complete with errors 
- Add support of several rounds for 
 
21.0.0
Version:Kotlin:2.0.21->2.1.0MicroUtils:0.23.0->0.23.1
BehaviourBuilder:- Add special 
val data: BehaviourContextDatainto all realizations ofBehaviourContext - Add 
CombinedSubcontextInitialActionand functionsbuildSubcontextInitialAction/buildSubcontextInitialActionWithSubActions - Add 
subcontextInitialActionfor all the functions-builders ofBehaviourContextandadditionalSubcontextInitialActionto all triggers 
- Add special 
 
20.0.1
Core:
20.0.0
THIS UPDATE CONTAINS SUPPORT OF BOTS API 7.11
All:- ALL SEND METHODS GOT PARAMETER 
allowPaidBroadcastWHICH POTENTIALLY MAY SPEND MONEYS FROM BOT BALANCE 
- ALL SEND METHODS GOT PARAMETER 
 
19.0.0
THIS UPDATE CONTAINS BREAKING CHANGES
THIS UPDATE CONTAINS UPGRADE UP TO KTOR 3.0 (thanks to @d1snin)
Version:Ktor:2.3.12->3.0.1MicroUtils:0.22.7->0.23.0
18.2.3
Core:- Add default middleware 
ExceptionsThrottlerTelegramBotMiddleware - Make 
TelegramBotMiddlewaresPipelinesHandlerto be defaultTelegramBotPipelinesHandler - Make 
DefaultKtorRequestsExecutornow usesrunCatchinginstead ofrunCatchingSafely onRequestResultPresentedlambda now accepts non-nullableresult
- Add default middleware 
 
18.2.2
Version:Kotlin:2.0.20->2.0.21MicroUtils:0.22.4->0.22.7
Core:- Fixes in blockquotes serializations
 - Now 
RawMessageEntityis public. It is still underWarningannotation and is subject of changes 
BehaviourBuilder:- Add 
CommonMessageFilterExcludeCommandto filter commands in messages - Add 
minusoperation forSimpleFilters 
- Add 
 
18.2.1
Version:Serialization:1.7.2->1.7.3Coroutines:1.8.1->1.9.0MicroUtils:0.22.2->0.22.4
18.2.0
THIS UPDATE CONTAINS SUPPORT OF BOTS API 7.10
Core:- Customize 
GiveawayCreatedto use stars in some cases GiveawayInfolost parameterpremiumMonthsbecause of it is no included by defaultGiveawayPublicResultslost parameterpublicWinnersbecause of its abcence in Telegram Bot API- Fix 
GiveawayPublicResultsto be correctly deserializable - Fix 
GiveawayPrivateResultsto be correctly deserializable - Fixes in deserialization of updates with giveaways
 
- Customize 
 BehaviourBuilder:- Extension 
buildBehaviourWithLongPollingwill not report absence of/privacyhandling 
- Extension 
 WebApp:MainButtonhas been deprecated in favor toBottomButton. Their functionality is equal
18.1.0
BehaviourBuilder:- Add 
createSubContextAndDoSynchronouslyWithUpdatesFilteras old logic ofcreateSubContextAndDoWithUpdatesFilter createSubContextAndDoWithUpdatesFilterhas been renamed tocreateSubContextAndDoAsynchronouslyWithUpdatesFilter
- Add 
 
18.0.0
THIS UPDATE CONTAINS BREAKING CHANGES
This update contains solution for issue #888, made by @Nik-mmzd
Migration (step-by-step)
Replace in a whole project:
RestrictedChatMember->RestrictedMemberChatMemberBannedChatMember->RestrictedChatMember
Changes:
Version:Kotlin:2.0.10->2.0.20Serialization:1.7.1->1.7.2MicroUtils:0.22.0->0.22.2KSLog:1.3.5->1.3.6Ktor:2.3.11->2.3.12
Core:RestrictedChatMemberhas been renamed toRestrictedMemberChatMemberBannedChatMemberhas been renamed toRestrictedChatMemberKickedChatMembernow implementsRestrictedChatMember(due to rename)- All 
ChatMembers now usePreviewUsers instead ofUsers 
Utils:- Add a lot of extensions like 
ChatMember.isMember - Add a lot of extensions like 
ChatMemberUpdated.joinedChat 
- Add a lot of extensions like 
 
17.0.0
THIS UPDATE CONTAINS SUPPORT OF BOTS API 7.9
- Add support of subscriptions links handling
 - Add support of info about sender chat. It is important, that for channels will be actual 
senderChatinstead offromfield due toUsertype of the last one. You also may use extensionsMessage.sender_chatorAny.withSenderChatMessageOrNullto access sender chat - Add 
Reaction.Paid 
Additional changes:
Core:- Add top level interfaces 
OptionallyWithUserandOptionallyFromUser. OldWithUserandFromUserinterfaces extending them with following overrides ofuserandfromfields 
- Add top level interfaces 
 API:- Change order of delay and sending action in SendActionDSL (thanks to DRSchlaubi, PR #833). Besides, there has been changed way to create parallel sending of action and it must not lead to memory leaks anymore
 
16.0.0
THIS UPDATE CONTAINS KOTLIN UPDATE UP TO 2.0
Version:Kotlin:1.9.23->2.0.10Serialization:1.6.3->1.7.1MicroUtils:0.21.2->0.22.0KSLog:1.3.4->1.3.5
15.3.0
THIS UPDATE CONTAINS ADDING OF SUPPORT FOR BOTS API 7.8
Core:OptionallyBusinessConnectionRequestnow extendsWithOptionalBusinessConnectionId- Add 
hasMainWebAppinExtendedBot 
API:- Add 
BusinessConnectionIdto pin/unpin methods 
- Add 
 WebApp:- Add 
shareToStoryinWebApp 
- Add 
 
15.2.0
API:- Enabled an 
explicit modeforAPImodule (PR #876) 
- Enabled an 
 WebApps:- Built-in 
onClickandoffClickofMainButtonbecome public (PR #875) - Old 
MainButton.onClickextension has been removed to avoid collisions of types 
- Built-in 
 
15.1.0
THIS UPDATE CONTAINS BREAKING CHANGES
THIS UPDATE CONTAINS ADDING OF SUPPORT FOR BOTS API 7.7 (thanks to bpavuk)
THIS UPDATE CONTAINS ADDING OF SUPPORT FOR BOTS API 7.6 (with participation and help of bpavuk)
- Add support of paid media
 - Update web apps
 Version:MicroUtils:0.21.1->0.21.2
Core:TelegramMediahas been separated onto two interfaces:TelegramFreeMediaandTelegramPaidMediaTelegramFreeMediahas replacedTelegramMediaon all old places where it have been used
Photohas been renamed toPhotoFile
BehaviourBuilder:- Add notification when handling of 
/privacycommand is absence - Add several extensions to simplify setting up 
/privacyreaction 
- Add notification when handling of 
 
15.0.0
THIS UPDATE CONTAINS BREAKING CHANGES
THIS UPDATE CONTAINS ADDING OF SUPPORT FOR BOTS API 7.5
Version:MicroUtils:0.21.0->0.21.1
- A lot of 
editmethods and classes has been changed to support business connection id 
14.1.0
Version:Coroutines:1.8.0->1.8.1Ktor:2.3.10->2.3.11MicroUtils:0.20.45->0.21.0KSLog:1.3.3->1.3.4
BehaviourBuilder:BehaviourContextupdates listening job will be weakly subscribed. It means thatBehaviourContextscope will not be prevented from cancelling by this job anymoreBehaviourContext.doInContextwill not stop automatically currentBehaviourContextjob anymoreBehaviourContext.createSubContextAndDoWithUpdatesFilterwill usesupervisorScopeinstead ofLinkedSupervisorScope. That will prevent scope leaking in runtime
14.0.1
- In 
coreandapimodules related to invoices changed their APIs to suite current API 
14.0.0
Add support of Telegram Bots API 7.4
THIS UPDATE CONTAINS BREAKING CHANGES
Core:TelegramPaymentChargeIdhas been added as value class and replaced raw strings inSuccessfulPaymenttype oftelegramPaymentChargeId
- All the methods/classes related to sending of messages got 
effectIdparameter - All the methods/classes related to sending of photos/animations/videos got 
showCaptionAboveMediaparameter 
13.0.0
Add support of Telegram Bots API 7.3
THIS UPDATE CONTAINS BREAKING CHANGES
Core:- For polls, 
textSourcesnow meansquestiontext sources. ForQuizPollthere areexplanationandexplanationTextSourcesfor hinting 
- For polls, 
 API:- A lot of API related to 
Polls has been changed to include opportunity to passParseModeandTextSources list 
- A lot of API related to 
 
12.0.1
Version:Ktor:2.3.9->2.3.10MicroUtils:0.20.39->0.20.45UUID:0.8.2->0.8.4
12.0.0
Add support of Telegram Bots API 7.2
THIS UPDATE CONTAINS A LOT OF BREAKING CHANGES
11.0.0
THIS UPDATE CONTAINS REMOVES OF DEPRECATED THINGS
THIS UPDATE CONTAINS A LOT OF BREAKING CHANGES
Core:MessageIdnow isvalue class.MessageIdentifierbecome deprecatedMessageThreadIdnow isvalue classInlineQueryIdentifiernow isvalue classMediaGroupIdentifierhas been renamed toMediaGroupIdand now isvalue classCallbackQueryIdentifierhas been renamed toCallbackQueryIdand now isvalue classWebAppQueryIdnow isvalue classPreCheckoutQueryIdnow isvalue classFileUniqueIdhas been renamed toTgFileUniqueIdand now isvalue classUpdateIdentifierhas been renamed toUpdateIdand now isvalue classInlineMessageIdentifierhas been renamed toInlineMessageIdand now isvalue classShippingQueryIdentifierhas been renamed toShippingQueryIdand now isvalue classIdentifierhas been renamed toRawChatIdand now isvalue classShippingOptionIdentifierhas been renamed toShippingOptionIdand now isvalue classPollIdentifierhas been renamed toPollIdand now isvalue classStickerSetNamenow isvalue class
10.1.2
Version:Kotlin:1.9.22->1.9.23Korlibs:5.3.2->5.4.0Ktor:2.3.8->2.3.9MicroUtils:0.20.37->0.20.39KSLog:1.3.2->1.3.3
10.1.1
Version:Serialization:1.6.2->1.6.3MicroUtils:0.20.34->0.20.37Korlibs:5.3.1->5.3.2
10.1.0
Add support of Telegram Bots API 7.1
Version:Coroutines:1.7.3->1.8.0MicroUtils:0.20.32->0.20.34
10.0.1
Version:Ktor:2.3.7->2.3.8MicroUtils:0.20.26->0.20.32Korlibs:5.3.0->5.3.1KSLog:1.3.1->1.3.2
10.0.0
Add support of Telegram Bots API 7.0
IN THIS UPDATE KLOCK DEPENDENCY CHANGED TO com.soywiz.korge:korlibs-time UP TO 5.3.0 VERSION
IN THIS UPDATE KRYPTO DEPENDENCY CHANGED TO com.soywiz.korge:korlibs-crypto UP TO 5.3.0 VERSION
Version:MicroUtils:0.20.23->0.20.26Korlibs:4.0.10->5.3.0
Core:Messagenow inherited by two variants:AccessibleMessageandInaccessibleMessage
Common:- In most places 
disableWebPagePreviewhas been replaced by newLinkPreviewOptions - In most places arguments 
replyToMessageIdandallowSendingWithoutReplyhas been replaced withReplyParameters- In 
replyextension two parameters have been added:replyInChatIdandreplyInThreadId 
 - In 
 
- In most places 
 
9.4.3
IetfLanguageCode has been renamed to IetfLang in MicroUtils
Version:Kotlin:1.9.21->1.9.22MicroUtils:0.20.19->0.20.23
9.4.2
Version:Serialization:1.6.1->1.6.2Ktor:2.3.6->2.3.7MicroUtils:0.20.15->0.20.19UUID:0.8.1->0.8.2
9.4.1
- Replace warning about two bots from 
LongPollingtoDefaultKtorRequestsExecutor 
9.4.0
Version:Kotlin:1.9.20->1.9.21Serialization:1.6.0->1.6.1Ktor:2.3.5->2.3.6MicroUtils:0.20.12->0.20.15
9.3.0
This release become possible thanks to Anton Lakotka
THIS RELEASE CONTAINS UPDATES UP TO RELEASE CANDIDATES VERSIONS
UPDATE MAY HAVE BREAKING CHANGES
SINCE THIS UPDATE IT WILL BE REQUIRED TO USE JDK 17+ FOR DEVELOPMENT
Version:Kotlin:1.8.22->1.9.20Serialization:1.5.1->1.6.0KorLibs:4.0.3->4.0.10UUID:0.7.1->0.8.1Ktor:2.3.4->2.3.5MicroUtils:0.19.9->0.20.12
9.2.4
Utils:- New extensions 
*.parseCommandsWithNamedArgs 
- New extensions 
 BehaviourBuilder:- In expectaters and triggers of 
commandsadd*WithNamedArgsvariants - In expectaters and triggers of 
commandsadd opportunity to use custom separator 
- In expectaters and triggers of 
 
9.2.3
Core:- Fix in 
VoiceContent#createResend 
- Fix in 
 
9.2.2
Core:- Fix of #793: Add 
PreviewChat 
- Fix of #793: Add 
 
9.2.1
Version:Ktor:2.3.3->2.3.4
Core:- All 
ChatMemberinheritors have fixesstatusfield 
- All 
 
9.2.0
Add support of Telegram Bots API 6.9
- Rename 
ChatAdministratorRightsImpl->ChatCommonAdministratorRights - All the request chat keyboards has changed their parameters 
ChatAdministratorRightstoChatCommonAdministratorRights 
9.1.2
Core:- Fix of 
MessageContentserialization 
- Fix of 
 
9.1.1
Core:- Potential fix of incorrect parsing in 
RawMessageEntity 
- Potential fix of incorrect parsing in 
 
9.1.0
This update contains adding of Telegram Bot API 6.8 support
Version:Coroutines:1.7.2->1.7.3Ktor:2.3.2->2.3.3MicroUtils:0.19.7->0.19.9
9.0.0
THIS UPDATE CONTAINS BREAKING CHANGES: USERNAMES OF BOTS NOW BECAME NULLABLE
Version:Coroutines:1.6.4->1.7.1Ktor:2.3.1->2.3.2MicroUtils:0.19.4->0.19.7
Core:- All bots now have nullable usernames just like common users (#772)
 - Decrease possible errors in updates handling by additional handling of update deserialization wrapping (#773)
 - New interface 
GetUpdatesRequest. You may implement it to show default telegram bot ktor executor that this request is an updates request and should be handled in a different way- Now it is possible to get raw updates with 
GetUpdatesRawrequest 
 - Now it is possible to get raw updates with 
 
Utils:- Improve extension 
Update.sourceChatto add opportunity to select some chats by logic different with the default 
- Improve extension 
 
8.1.0
PARTIALLY BREAKING CHANGES: Exclude .*Impl classcasts from ClassCastsNew
Version:MicroUtils:0.19.2->0.19.4
Utils:- Add deep links formatting for internal 
tg://prefix (thanks to @klimatov) - Exclude 
.*Implclasscasts fromClassCastsNew 
- Add deep links formatting for internal 
 
8.0.1
Version:UUID:0.7.0->0.7.1Ktor:2.3.0->2.3.1MicroUtils:0.19.1->0.19.2
8.0.0
THIS UPDATE CONTAINS BREAKING CHANGES
ALL PROJECT DEPRECATIONS HAVE BEEN REMOVED
IN THIS UPDATE KORLIBS HAVE BEEN UPDATED TO VERSION 4.0.2. SINCE THAT VERSION A LOT OF PACKAGES HAVE BEEN RENAMED.
MIGRATIONS USED IN THIS LIB:
- 
com.soywiz.klock->korlibs.time - 
com.soywiz.krypto->korlibs.crypto - 
Versions:Korlibs:3.4.0->4.0.3MicroUtils:0.18.4->0.19.1
 
7.1.3
Versions:Serialization:1.5.0->1.5.1MicroUtils:0.18.1->0.18.4
Core:- Actualize kdocs in 
InputFile 
- Actualize kdocs in 
 BehaviourBuilder:- Now it is possible to use 
waitMediaContent/waitMediaContentMessage/onMediaContent - Add 
onMention/waitMentionfunctionality - Add opportunity to map content with extensions to 
Flow 
- Now it is possible to use 
 
7.1.2
Versions:MicroUtils:0.18.0->0.18.1
Core:- Now it is possible to serialize 
Stickers 
- Now it is possible to serialize 
 
7.1.1
Versions:Kotlin:1.8.20->1.8.21MicroUtils:0.17.8->0.18.0
Utils:- Fixes in 
makeLinkToMessage 
- Fixes in 
 
7.1.0
This update contains changes according to the Telegram Bot API 6.7
API:- Rename 
editMessageCaptiontoeditMessageMediadue to wrong old naming - Add 
editextensions forInlineMessageIdentifiers 
- Rename 
 BehaviourBuilder:BehaviourContextextensionsonDeepLinkandwaitDeepLinksnow can be used withRegexorStringas first parameters
7.0.2
This update brings experimental support of linuxX64 and mingwX64 platforms
Versions:Kotlin:1.8.10->1.8.20MicroUtils:0.17.5->0.17.8Ktor:2.2.4->2.3.0
Core:- New 
RequestsExecutor-MultipleClientKtorRequestsExecutor - Old 
KtorRequestsExecutorhas been renamed toDefaultKtorRequestsExecutor KtorRequestsExecutornow isexpect class- On 
JS,JVMandMinGWX64platforms it isDefaultKtorRequestsExecutor - On 
LinuxX64platform it isMultipleClientKtorRequestsExecutor 
- On 
 
- New 
 
7.0.1
Core:- New interface 
WithChatwhich containschatfieldMessagenow inheritsWithChatChatMemberUpdatednow inheritsWithChat
 
- New interface 
 Utils:- Improvements in 
same-notations 
- Improvements in 
 
7.0.0
This update contains support of Telegram Bot API 6.6
THIS VERSION CONTAINS BREAKING CHANGES:
- All previous deprecations have been removed
 - Fully reworked mechanism of stickers creating and adding
- All separations of stickers types like 
Animetedhave been replaces with typeStickerFormat - New 
InputStickertype (and all subtypes) as replacements for old raw fields in methods 
 - All separations of stickers types like 
 - Reworked mechanism of files uploading
 
Other changes
Versions:MicroUtils:0.17.3->0.17.5
6.1.0
Versions:MicroUtils:0.17.2->0.17.3
API:- Fix of #732
 
6.0.3
Versions:MicroUtils:0.17.1->0.17.2
Core:UserinCallbackQuerynow isCommonUseras well as infromUserinInlineQuerynow isCommonUseras well as infrom
BehaviourBuilder:- Fixes in 
DeepLinktriggers and waiters 
- Fixes in 
 
6.0.2
Core:- Long polling now uses media groups debounce as in webhooks
 
6.0.1
Versions:Ktor:2.2.3->2.2.4MicroUtils:0.17.0->0.17.1
6.0.0
Versions:Kotlin:1.7.22->1.8.10MicroUtils:0.16.10->0.17.0Serialization:1.4.1->1.5.0uuid:0.6.0->0.7.0
Core:*.linkextensions have been deprecated with renaming to avoid collisions withlinkmethods
API:- Add 
TelegramBot.resendmethods 
- Add 
 BehaviourBuilder:- Add triggers and waiters for 
VisualMediaGroupPartContent 
- Add triggers and waiters for 
 Utils:*.linkextensions have been deprecated with renaming to avoid collisions withlinkmethods
5.2.1
Core:- All the 
CallbackQueryes now will receiveCommonUserinstead ofUserdue inability of bots to trigger any inline interaction with others bots 
- All the 
 API:- Now 
sentMessageFlowwill take each sent message inhandleLiveLocation 
- Now 
 
5.2.0
Versions:MicroUtils:0.16.8->0.16.10
5.1.1
Core:- Add opportunity to get user link with 
makeUserLink 
- Add opportunity to get user link with 
 BehaviourBuilder:- Fixes in content waiting expectators
 
5.1.0
Bot API 6.5 support
Core:ChatPermissionsnow is interface and have two main realizations:ChatPermissions.GranularandChatPermissions.CommonRestrictedChatMembernow implementsChatPermissionstoo
API:- Now it is possible to pass all long polling parameters in all places used it
 
Issues:- Fix of #697
 
5.0.2
Versions:MicroUtils:0.16.6->0.16.8Ktor:2.2.2->2.2.3
BehaviourBuilder:- Fixes in 
BehaviourContext.onEditedContentMessage- now it will trigger callback on channel post edits too 
- Fixes in 
 
5.0.1
Versions:MicroUtils:0.16.4->0.16.6Ktor:2.2.1->2.2.2
Core:- Fixes in 
SendMediaGrouprequest - Fixes in 
SetChatAdministratorCustomTitlerequest (thanks to @madhead) 
- Fixes in 
 
5.0.0
Bot API 6.4 support!
- Long-polling improvements
 
4.2.4
Core:- Fixes in webhook parts adapter
 
BehaviourBuilderWithFSM:- Fixes in 
DefaultBehaviourContextWithFSM 
- Fixes in 
 
4.2.3
Versions:MicroUtils:0.16.2->0.16.4
Core:- Simplify default 
RequestsLimiter(ExceptionsOnlyLimiter) (thanks to @y9san9 for help) 
- Simplify default 
 
4.2.2
Versions:MicroUtils:0.16.0->0.16.2
Core:- Fix of #694: add opportunity to create 
ChatIdandChatIdWithThreadIdfromIdChatIdentifier 
- Fix of #694: add opportunity to create 
 
4.2.1
Versions:MicroUtils:0.15.0->0.16.0Ktor:2.1.3->2.2.1
Utils:- Improve support of 
makeLinkToMessageextensions 
- Improve support of 
 
4.2.0
Versions:Kotlin:1.7.21->1.7.22MicroUtils:0.14.4->0.15.0
4.1.3
Versions:MicroUtils:0.14.2->0.14.4
Core:ContentMessage,CommonMessage,PossiblyMediaGroupMessageandPossiblySentViaBotCommonMessagegotoutvarianceUserIdnow isChatIdinstead ofIdChatIdentififer
4.1.2
Versions:MicroUtils:0.14.1->0.14.2
BehaviourBuilder:- Fixes in 
CallbackQuerywaiters 
- Fixes in 
 
4.1.1
Core:- Add opportunity to create 
IdChatIdentifierwith optionalthreadId - New serializer 
FullChatIdentifierSerializerwith serialization ofChatIdWithThreadId 
- Add opportunity to create 
 
4.1.0
Versions:Kotlin:1.7.20->1.7.21MicroUtils:0.14.0->0.14.1Korlibs:3.3.1->3.4.0UUID:0.5.0->0.6.0
Core:- All the chats identifiers has been rewritten as value classes
 - New chat identifier: 
ChatIdWithThreadId RawMessagewill createChatIdWithThreadIdchat id under the hood by default- All the methods which potentially using 
threadIdwill try to take it fromchatId 
API:- All default 
threadIdnull values has been replaced with auto-calculated threadId from chats/chat ids 
- All default 
 
4.0.0
!!! THIS UPDATE CONTAINS FULL REWORK OF MEDIA GROUPS FUNCTIONALITY !!!
THIS UPDATE CONTAINS BREAKING CHANGES
Common:- All the media groups have been rewritten. Since this update, there are no separated messages types for media groups,
but new type of content (
MediaGroupContent) has been introduced - Bot API 6.3 support
 
- All the media groups have been rewritten. Since this update, there are no separated messages types for media groups,
but new type of content (
 Versions:MicroUtils:0.13.2->0.14.0
Core:- New requests
 
3.3.1
Versions:Ktor:2.1.2->2.1.3Klock:3.2.0->3.3.1MicroUtils:0.13.1->0.13.2
Utils:- New extensions on 
CommonMessage:hasCommandsandhasNoCommands. Useful for theinitialFilterparameter in behaviour builder triggers. 
- New extensions on 
 
3.3.0
THIS VERSION CONTAINS UPGRADE KOTLIN (AND ALL RELATED LIBRARIES) UP TO 1.7.20
Versions:Kotlin:1.7.10->1.7.20Kotlin Serialization:1.4.0->1.4.1Korlibs:3.1.0->3.2.0MicroUtils:0.12.17->0.13.1
Core:- Add opportunity to create command text source and add command in entities builder
via 
BotCommamd(thanks to d1shin) 
- Add opportunity to create command text source and add command in entities builder
via 
 API:- New extensions 
TelegramBot#getStickerSetOrNullandTelegramBot#getStickerSetOrThrow- Old 
TelegramBot#getStickerSethas been deprecated 
 - Old 
 
- New extensions 
 Behaviour Builder:- Add opportunity to use triggers and waiters with 
BotCommand(thanks to d1shin) 
- Add opportunity to use triggers and waiters with 
 
3.2.7
Versions:MicroUtils:0.12.13->0.12.17Ktor:2.1.1->2.1.2
Utils:- Next classes become typealiases instead of classes:
ReplyKeyboardBuilderReplyKeyboardRowBuilderInlineKeyboardBuilderInlineKeyboardRowBuilder
 
- Next classes become typealiases instead of classes:
 
3.2.6
Core:- Fixes in 
ChatMemberSerializer#serializemethod - Migration of 
EntitiesBuilderfromUtilstoCore 
- Fixes in 
 API:- All the extensions related to text messages (replies, sending, editing) got their duplicates with 
buildEntitieslambda and separator 
- All the extensions related to text messages (replies, sending, editing) got their duplicates with 
 Utils:- Migration of 
EntitiesBuilderfromUtilstoCore 
- Migration of 
 
3.2.5
Common:- Improve support of new exceptions recovering mechanism
 
3.2.4
API:- New 
edit's with chats and message ids 
- New 
 
3.2.3
Core:- Fixes in 
DeleteMyCommands 
- Fixes in 
 
3.2.2
Versions:MicroUtils:0.12.10->0.12.13
Core:MessageIdentifierhas been renamed toMessageId
API:- New 
reply'es with chats and message ids 
- New 
 
3.2.1
Versions:Ktor:2.1.0->2.1.1Korlibs:3.0.0->3.1.0MicroUtils:0.12.4->0.12.10
3.2.0
Since this update, RequestsExecutor#execute may throw only BotException. In case you wish to handle some exceptions from execute you must catch BotException and handle its cause
Versions:Serialization:1.4.0-RC->1.4.0MicroUtils:0.12.1->0.12.4
Core:SetWebhook#allowedUpdatesnow isALL_UPDATES_LISTby default instead ofnull
API:- Extension 
TelegramBot#setWebhookparameterallowedUpdatesnow isALL_UPDATES_LISTby default instead ofnull 
- Extension 
 Utils:- All related to long polling extensions parameters 
allowedUpdatesnow areALL_UPDATES_LISTby default instead ofnull 
- All related to long polling extensions parameters 
 
3.1.1
Common:- Complete Bot API 6.2 implementation
 
3.1.0
This update contains including of Bot API 6.2
Versions:Ktor:2.0.3->2.1.0MicroUtils:0.12.0->0.12.1
Core:- Add support of 
custom emojis - Add support of 
sticker_type 
- Add support of 
 
3.0.2
ALL OLD DEPRECATIONS HAVE BEEN REMOVED
copyMessage HAVE CHANGED THEIR SIGNATURE BY SWAPPING FROM AND TO CHAT IDS
Versions:Kotlin:1.6.21->1.7.10Serialization:1.3.3->1.4.0-RCKorlibs:2.7.0->3.0.0UUID:0.4.1->0.5.0MicroUtils:0.11.13->0.12.0
Core:- Interface 
ReplyMakruphas been renamed toWithReplyMarkupto correspond its purpose - Data class 
LeftChatMemberhas been renamed toLeftChatMemberEventto avoid type ambiguite with the otherLeftChatMember ForwardInfohierarchy has been fully reworked:AnonymousForwardInfo->ForwardInfo.ByAnonymousUserForwardInfo->ForwardInfo.ByUserForwardFromPublicChatInfo->ForwardInfo.PublicChatForwardFromChannelInfo->ForwardInfo.PublicChat.FromChannelForwardFromSupergroupInfo->ForwardInfo.PublicChat.FromSupergroupForwardInfo.PublicChat.SentByChannelhas been created
- Interface 
 API:- Add new 
Flow-based live locations API - Add 
sendLocationfor sending live locations 
- Add new 
 Utils:- BREAKING CHANGES Now all new classcasts (like 
Chat.ifPrivateChatetc.) have been rewritten to be generated withkspandkotlin poet 
- BREAKING CHANGES Now all new classcasts (like 
 
Note: Versions 3.0.0 and 3.0.1 have been published with errors and didn't recommend to use
2.2.2
Utils:buildEntitiesnow is inline
Behaviour Builder:- Fixes in 
CallbackQuerytriggers 
- Fixes in 
 
2.2.1
Versions:Coroutines:1.6.3->1.6.4MicroUtils:0.11.12->0.11.13
Core:- New 
typealiases forCommonMessagewith all supported content types, more info: PR 
- New 
 Utils:- New extensions for all types of messages 
*.withContentOrNulland*.withContentOrThrowas analogies to the same ones from class casts 
- New extensions for all types of messages 
 
2.2.0
Core:- For 
CopyMessageorder of parameters has been changed ReplyForcedefaults changes:- All old companion properties (like 
ReplyForce.ReplyForceSelective) have been renamed:ReplyForceSelective->SelectiveReplyForceNonSelective->NonSelectiveReplyForceDefault->Default
 - New companion functions:
ReplyForce#SelectiveReplyForce#NonSelective
 
- All old companion properties (like 
 - Rename 
CreatorChatMember->OwnerChatMember 
- For 
 API:- For 
copyMessageorder of parameters has been changed 
- For 
 Utils:- New extension 
Message#sameChat - New extension 
Message#sameMessage - New functions 
flatInlineKeyboardandflatReplyKeyboard - Experimentally add new triple of class casts: 
if*,*OrNulland*OrThrow 
- New extension 
 
2.1.3
Versions:MicroUtils:0.11.9->0.11.12
Utils:- Rename 
UserIdextensionlinktouserLink 
- Rename 
 CoreChatJoinRequest#inviteLinkis nullable due to the fact that join requests without link do not require invite link
2.1.2
Versions:Coroutines:1.6.1->1.6.3Ktor:2.0.2->2.0.3MicroUtils:0.11.6->0.11.9
2.1.1
API:- Now it is possible to edit any message text via 
editMessageText(but with warning) - Now it is possible to edit any message caption via 
editMessageCaption(but with warning) - Media message caption edit method (
editMessageCaption) now returns the message with the same generic type (as it must be in telegram system) - New extensions 
TelegramBot#edithas been added for all possible editions types - New extensions 
TelegramBot#sendhas been added for all possible sending types - New extensions 
TelegramBot#deletehas been added 
- Now it is possible to edit any message text via 
 Versions:MicroUtils:0.11.3->0.11.6
2.1.0
This update contains including of Telegram Bot API 6.1
- Add support of functionality for 
WebApps from Bot API 6.1 - Add support of functionality for premium feature from Bot API 6.1
 - Add support of 
addedToAttachmentMenuinCommonUserfrom Bot API 6.1 - Add support of 
secret_tokeninSetWebhookrequest from Bot API 6.1 - Add support of 
createInvoiceLinkrequest from Bot API 6.1 
2.0.3
Core:- New function 
regularlnfor simple creating ofRegularTextSourcewith new line in the end 
- New function 
 API:- New function 
downloadFileToTempfor simple downloading of file in filesystem and manipulation with avoiding of direct using input streams and other low-level things 
- New function 
 Versions:MicroUtils:0.11.0->0.11.3
2.0.2
Versions:MicroUtils:0.10.8->0.11.0UUID:0.4.0->0.4.1
2.0.1
Versions:Ktor:2.0.1->2.0.2MicroUtils:0.10.5->0.10.8
Utils:TelegramBot#longPollingnow acceptsUpdatesFilterinstead ofFlowsUpdatesFilter
2.0.0
ALL PREVIOUS DEPRECATIONS HAVE BEEN REMOVED
Behaviour Builder:- Mappers have been removed from waiters extensions
 - Triggers extensions now will use filtering inside of context receiver instead of passing the filters into 
BehaviourContext. That means that in the subcontext will not be used preinstalled filters for theirBehaviourContextand filter of trigger will not be used in subcontext - Waiters do not take count parameter anymore
 - Waiters do not take filter parameter anymore. Use flows filters
 
Utils:- Add opportunity to get event messages with specific 
ChatEventtype usingwithEvent/requireWithEvent(by analog withwithEventandrequireWithEvent) 
- Add opportunity to get event messages with specific 
 
1.1.3
Behaviour Builder with FSM:- Typealias 
StateHandlingErrorHandlerfrom1.1.2has been deprecated and should be replaced with the new one from microutils 
- Typealias 
 
1.1.2
Core:- Rename of 
TelegramAPIUrlsKeeper#checkWebAppLink->TelegramAPIUrlsKeeper#checkWebAppData(fix of #591) 
- Rename of 
 Behaviour Builder with FSM:- New typealias 
StateHandlingErrorHandler BehaviourBuilderWithFSMnow accepts new parameteronStateHandlingErrorHandlerwhich will be used in case if state has not been successfully completed
- New typealias 
 
1.1.1
Versions:MicroUtils.Cryptowill not be provided with that library anymore. Instead, it is recommended to useKorlibs.Krypto. You still can add crypto from microutils using next groovy dependency:dev.inmo:micro_utils.crypto:$micro_utils_version
Core:- Improvements in 
TelegramAPIUrlsKeeper#checkWebAppLink - New field in 
TelegramAPIUrlsKeeper#webAppDataSecretKeyHash 
- Improvements in 
 Behaviour Builder:- Extension 
TelegramBot#buildBehaviournow returnsBehaviourContext 
- Extension 
 
1.1.0
Utils:- New parameter 
additionalApplicationEngineEnvironmentConfiguratorinRequestsExecutor#setWebhookInfoAndStartListenWebhooksandstartListenWebhooks 
- New parameter 
 
1.0.1
Versions:Serialization:1.3.2->1.3.3MicroUtils:0.10.3->0.10.4
1.0.0
All the tgbotapi.extensions.* packages have been removed
Versions:Kotlin:1.6.10->1.6.21Ktor:1.6.8->2.0.1MicroUtils:0.9.24->0.10.3
Core:Ktorpackage renamed. Migration:dev.inmo.tgbotapi.bot.Ktor->dev.inmo.tgbotapi.bot.ktorCallbackQuerypackage renamed. Migration:dev.inmo.tgbotapi.types.CallbackQuery([\s\\.])->dev.inmo.tgbotapi.types.queries.callback$1ChatMemberpackage renamed. Migration:dev.inmo.tgbotapi.types.ChatMember([\s\\.])->dev.inmo.tgbotapi.types.chat.member$1ChatAdministratorRightsImplreplaced. Migration:dev.inmo.tgbotapi.types.ChatAdministratorRightsImpl->dev.inmo.tgbotapi.types.chat.member.ChatAdministratorRightsImplchat.abstract.extendedreplaced. Migration:dev.inmo.tgbotapi.types.chat.abstract.extended->dev.inmo.tgbotapi.types.chat.member.chatchat.abstractreplaced. Migration:dev.inmo.tgbotapi.types.chat.abstract->dev.inmo.tgbotapi.types.chat.member.chatchat.extendedreplaced. Migration:dev.inmo.tgbotapi.types.chat.extended->dev.inmo.tgbotapi.types.chat.member.chat- User interfaces have been fully replaced:
dev.inmo.tgbotapi.types.User->dev.inmo.tgbotapi.types.chat.Userdev.inmo.tgbotapi.types.CommonUser->dev.inmo.tgbotapi.types.chat.CommonUserdev.inmo.tgbotapi.types.ExtendedUser->dev.inmo.tgbotapi.types.chat.ExtendedUserdev.inmo.tgbotapi.types.Bot->dev.inmo.tgbotapi.types.chat.Botdev.inmo.tgbotapi.types.CommonBot->dev.inmo.tgbotapi.types.chat.CommonBotdev.inmo.tgbotapi.types.ExtendedBot->dev.inmo.tgbotapi.types.chat.ExtendedBotdev.inmo.tgbotapi.types.UserSerializer->dev.inmo.tgbotapi.types.chat.UserSerializer
 - All 
InputMediahas been renamed asTelegramMedia. Migration:InputMedia->TelegramMediadev.inmo.tgbotapi.types.InputMedia->dev.inmo.tgbotapi.types.media
 - Replaces of 
MessageContent. Migrations:dev.inmo.tgbotapi.types.message.content.abstracts->dev.inmo.tgbotapi.types.message.contentdev.inmo.tgbotapi.types.message.content.media->dev.inmo.tgbotapi.types.message.content
 - Replaces of 
TextSources. Migrations:dev.inmo.tgbotapi.types.MessageEntity.textsources->dev.inmo.tgbotapi.types.message.textsources - Replaces of 
ParseModes. Migrations:dev.inmo.tgbotapi.types.ParseMode->dev.inmo.tgbotapi.types.message - Replaces of 
MediaGroupUpdates. Migrations:dev.inmo.tgbotapi.types.update.MediaGroupUpdates->dev.inmo.tgbotapi.types.update.media_group InvoiceContenthas been replaced:dev.inmo.tgbotapi.types.message.payments.InvoiceContent->dev.inmo.tgbotapi.types.message.content.InvoiceContentPossiblySentViaBotCommonMessagehas been replaced:dev.inmo.tgbotapi.types.message.content.abstracts.PossiblySentViaBotCommonMessage->dev.inmo.tgbotapi.types.message.abstracts.PossiblySentViaBotCommonMessage- Edit live location requests have been replaced:
dev.inmo.tgbotapi.requests.edit.LiveLocation->dev.inmo.tgbotapi.requests.edit.location.livedev.inmo.tgbotapi.extensions.api.edit.LiveLocation->dev.inmo.tgbotapi.extensions.api.edit.location.live
 - Edit reply markup requests have been replaced:
dev.inmo.tgbotapi.requests.edit.ReplyMarkup->dev.inmo.tgbotapi.requests.edit.reply_markupdev.inmo.tgbotapi.extensions.api.edit.ReplyMarkup->dev.inmo.tgbotapi.extensions.api.edit.reply_markup
 - Common abstracts have been replaced: 
dev.inmo.tgbotapi.CommonAbstracts->dev.inmo.tgbotapi.abstracts - Constructor of 
UnknownInlineKeyboardButtonis not internal and can be created with anyjson(#563) - All the interfaces from 
dev.inmo.tgbotapi.types.files.abstractshave been replaced todev.inmo.tgbotapi.types.filesand converted to sealed (#550) PassportFilehas been replaced todev.inmo.tgbotapi.types.filesStorageFilehas been deprecated (fix of #556)MultipartFiledo not requireStorageFileanymoreInputFilecompanion got functions to simplify creation ofInputFiles- New typealias 
FileUrl(representsFileIdbut declare that they are the same) 
BehaviourBuilder:SimpleFilternow is afun interfaceinstead of just callback (fix of #546)- New extension 
BehaviourContext#createSubContext. It uses separatedAccumulatorFlowand will retrieve updates by itself - New extension 
BehaviourContext#doInContext - Extension 
BehaviourContext#doInSubContextWithUpdatesFilterhas been renamed toBehaviourContext#createSubContextAndDoWithUpdatesFilter - Extension 
BehaviourContext#doInSubContexthas been deprecated 
BehaviourContextWithFSM:launchStateHandlinglost its parametercontextUpdatesFlow: FlowhandleStateofBehaviourContextWithFSMnow will get/create sub context for the state and launch handling in itBehaviourWithFSMStateHandlernow extendsStatesHandlerBehaviourWithFSMStateHandlerHoldernow extendsCheckableHandlerHolderandBehaviourWithFSMStateHandler- Function 
checkHandleableofBehaviourWithFSMStateHandlerHoldernow issuspend 
- Function 
 
0.38.23
BehaviourHandler:- Add support of fallback triggers (fix of #560)
 
0.38.22
Core:- New constant 
tgWebAppStartParamField - All keyboards builders and rows blocks becomes not crossinline
 
- New constant 
 
0.38.21
WebApps:WebAppInitData#queryIdnow have correct js name of field- New function 
sendDataOrWorkWithQueryId 
0.38.20
BehaviourBuilder FSM:- Hotfixes
 
WebApps:- New extension 
TelegramBot#answerWebAppQuery - New function 
handleResult 
- New extension 
 
0.38.19
BehaviourBuilder:- Hotfixes
 
BehaviourBuilder FSM:BehaviourContextWithFSMBuilderdeprecated in favor toBehaviourContextWithFSM- Now it is possible to define additional handlers in subcontexts of 
BehaviourBuilderWithFSM 
0.38.18
Core:- Add support of test servers (fix of #577)
 
BehaviourBuilder:- Fixes in extension 
BehaviourContext#doInSubContextWithUpdatesFilter(thanks to xzima) 
- Fixes in extension 
 
0.38.17
Core:- Add 
BotCommandScopeChatas newBotCommandScope(fix of #574) BotCommandScopecompanion got several properties and functions for more useful scope creation
- Add 
 
0.38.16
Core:TelegramAPIUrlsKeepernow have two new things: propertieswebAppDataSecretKeyand funcheckWebAppLink
0.38.15
Common:Version:MicroUtils:0.9.20->0.9.24
Core:- Fixes in 
MessageContent#serializationModule 
- Fixes in 
 BehaviourBuilder:- Add triggers for 
DataCallbackQueryand subtypes with regex checking of data 
- Add triggers for 
 
0.38.14
This update contains including of Telegram Bot API 6.0
Core:- Constructor of 
UnknownInlineKeyboardButtonis not internal and can be created with anyjson 
- Constructor of 
 WebApps:- Created 🎉
 
0.38.13
Core:- Fixes in 
mentioncreation - Deprecate 
StorageFileInfo 
- Fixes in 
 BehaviourBuilder:- In the expectations a lot of 
on*Messageextensions have been added (likeonContentMessage). These extensions could be useful when with theContentits message info is important 
- In the expectations a lot of 
 
0.38.12
Common:Version:MicroUtils:0.9.17->0.9.19Coroutines:1.6.0->1.6.1
Core:- New type 
TextedMediaContentwhich will uniteTextedInputandMediaContent MediaGroupContentand all subsequent inheritors have been replaced to the packagedev.inmo.tgbotapi.types.message.content.mediaMediaGroupContentNow extendsTextedMediaContentinstead ofMediaContent- Add 
replyfunctions with the texted content with including of text 
- New type 
 Utils:- Improve work with retrieving of accumulated updates
 
0.38.11
Common:Version:MicroUtils:0.9.16->0.9.17Klock:2.6.3->2.7.0
Core:- Fixes in 
TextSourcesListcreating in fromRawMessageEntities - Old ways to create keyboards (
matrixandrow) have been deprecated 
- Fixes in 
 API:- Add ability to 
replywithPoll - Add ability to 
replywith anyMessageContent - Add ability to 
replywith anyTelegramMediaFile 
- Add ability to 
 
0.38.10
API:- All 
with*Actionextensions got a contracts which declare thatblockwill be called once - Add several extensions 
TelegramBot#sendPhotowithPhotoSize - Add several extensions 
TelegramBot#replywithPhotoSize 
- All 
 
0.38.9
Core:- New function 
MessageContent.Companion#serializationModule - Now it is possible to create 
TelegramBot(RequestsExecutor) with several bots under the hood and opportunity for bots requests load balancing or fault-fix via sending of the requests via another bot 
- New function 
 API:- Add replies which will use another message as a source for reply (
copyMessage) 
- Add replies which will use another message as a source for reply (
 
0.38.8
Common:Version:MicroUtils:0.9.12->0.9.16Klock:2.6.2->2.6.3Ktor:1.6.7->1.6.8
BehaviourBuilder:- Fixes in 
onMediaGroupand dependent functions - Add several new extensions for 
SimpleFilter:SimpleFilter#listAllSimpleFilter#listAnySimpleFilter#listNone
 
- Fixes in 
 
0.38.7
Common:Version:MicroUtils:0.9.9->0.9.12Klock:2.5.2->2.6.2
Core:SimplePollOption#votesnow is0by default- New function 
PollOption.Companion#simple 
0.38.6
Common:Version:MicroUtils:0.9.6->0.9.9Klock:2.4.13->2.5.2
Core:- New member of 
MentionTextSource-username 
- New member of 
 
0.38.5
Common:Version:MicroUtils:0.9.5->0.9.6
Core:Usernamegot new propertyusernameWithoutAtwhich will returnusernamewithout leading@
Utils:- Several new functions for working with deep links:
makeUsernameDeepLinkPrefixmakeTelegramDeepLinkmakeDeepLink
 
- Several new functions for working with deep links:
 
0.38.4
This update contains including of Telegram Bot API 5.7
Core:- Support of new fields 
Sticker - Support of new fields 
StickerSet - Support of new fields in creating of sticker set and sticker
 
- Support of new fields 
 Utils:- Rename 
PathedFileto avoid clash with core file (fix of #529) 
- Rename 
 
0.38.3
Common:Version:MicroUtils:0.9.1->0.9.2Klock:2.4.10->2.4.12UUID:0.3.1->0.4.0
API- New extensions 
TelegramBot#send*for media groups with contents 
- New extensions 
 
0.38.2
Common:Version:MicroUtils:0.9.0->0.9.1
API- New extensions 
TelegramBot#copyMessagesfor media groups 
- New extensions 
 
0.38.1
Core:MessageCallbackQuery(and all implementers as well) has changed the type ofmessage: now it isContentMessage<MessageContent>instead ofMessage- New type 
ForwardFromPublicChatInfoas extender ofForwardInfo:ForwardFromChannelInfonow extendsForwardFromPublicChatInfoForwardFromSupergroupInfonow extendsForwardFromPublicChatInfo
 - New type of events: 
UserLoggedIn 
Utils:- (#511) New extensions properties (raw fields as in original API) for several types have been added:
MessageCallbackQueryChosenInlineResultInlineQueryPoll
 
- (#511) New extensions properties (raw fields as in original API) for several types have been added:
 
0.38.0
This update contains Telegram Bot API 5.6 implementation
This update contains migration onto Kotlin 1.6
This update has changed constructors of all CommonMessage implementations
Common:Version:Kotlin:1.5.31->1.6.10Coroutines:1.5.2->1.6.0Serialization:1.3.1->1.3.2Klock:2.4.8->2.4.10Ktor:1.6.5->1.6.7MicroUtils:0.8.7->0.9.0
Core:- Add 
SpoilerTextSource(as part ofTelegram Bot API 5.6update) - Add support of 
protect_contentas a fieldprotectContentin all send message requests and parameter in all functions related to that requests (as part ofTelegram Bot API 5.6update) - ALL IMPLEMENTERS OF 
CommonMessageHAS CHANGED THEIR CONSTRUCTOR: NOW THEY GEThasProtectedContentinstead offorwardable(inversed) fieldChannelContentMessageImplChannelMediaGroupMessageCommonMediaGroupMessageGroupContentMessageimplementersConnectedFromChannelGroupContentMessageImplUnconnectedFromChannelGroupContentMessageImplAnonymousGroupContentMessageImplCommonGroupContentMessageImpl
PrivateContentMessageImpl
 
- Add 
 
0.37.4
Common:Version:MicroUtils:0.8.7->0.8.9
Core:- New 
SupergroupEventsubtype:MigratedToSupergroup. This event is sent when a group is converted to a supergroup while bot is in the group. - Helper extenstion functions on 
ChatEventto cast it toMigratedToSupergroup. 
- New 
 
0.37.3 Hotfix of 0.37.2
Core:- Fixes in hierarchy (and creating) of messages from channels
 
0.37.2 changelog:
This update contains Telegram Bot API 5.5 implementation
Common:Version:MicroUtils:0.8.2->0.8.7
Core:- New request type: 
ChatSenderRequest- New request 
BanChatSenderChat - New request 
UnbanChatSenderChat 
 - New request 
 ExtendedPrivateChatgot new properties:hasPrivateForwardsandallowCreateUserIdLink(same ashasPrivateForwards)- All 
ContentMessagegot fieldforwardable(old constructors marked asDeprecated) FromChannelGroupContentMessagehas been divided for two interfaces (and corresponding classes):ConnectedFromChannelGroupContentMessage(andConnectedFromChannelGroupContentMessageImpl) for connected to the group channels messagesUnconnectedFromChannelGroupContentMessage(andUnconnectedFromChannelGroupContentMessageImpl) for unconnected channels
- New request type: 
 API:- New extensions 
TelegramBot#banChatSenderChat - New extensions 
TelegramBot#unbanChatSenderChat 
- New extensions 
 Utils:- Fix of 
EntitiesBuilder#linkln 
- Fix of 
 
0.37.2 Telegram Bot API 5.5
Common:Version:MicroUtils:0.8.2->0.8.7
Core:- New request type: 
ChatSenderRequest- New request 
BanChatSenderChat - New request 
UnbanChatSenderChat 
 - New request 
 ExtendedPrivateChatgot new properties:hasPrivateForwardsandallowCreateUserIdLink(same ashasPrivateForwards)- All 
ContentMessagegot fieldforwardable(old constructors marked asDeprecated) ChannelContentMessagehas been divided for two interfaces (and corresponding classes):ConnectedChannelContentMessage(andConnectedChannelContentMessageImpl) for connected to the group channels messagesUnconnectedChannelContentMessage(andUnconnectedChannelContentMessageImpl) for unconnected channels
- New request type: 
 API:- New extensions 
TelegramBot#banChatSenderChat - New extensions 
TelegramBot#unbanChatSenderChat 
- New extensions 
 Utils:- Fix of 
EntitiesBuilder#linkln 
- Fix of 
 
0.37.1
Common:Version:Serialization:1.3.0->1.3.1Klock:2.4.7->2.4.8MicroUtils:0.8.1->0.8.2
0.37.0 Telegram Bot API 5.4
ALL DEPRECATIONS WERE REMOVED
Common:Version:Klock:2.4.6->2.4.7Ktor:1.6.4->1.6.5MicroUtils:0.7.3->0.8.1
Core:- Replacement of simple 
CreateChatInviteLinkandEditChatInviteLinkwith several new:CreateChatInviteLinkSimpleCreateChatInviteLinkWithLimitedMembersCreateChatInviteLinkWithJoinRequestEditChatInviteLinkSimpleEditChatInviteLinkWithLimitedMembersEditChatInviteLinkWithJoinRequest
 - New 
BotAction:ChooseStickerAction - Now requester will throw exceptions related to responses decoding directly instead of wrapping in
RequestException 
- Replacement of simple 
 BehaviourBuilder FSM:- Incompatible changes (now generics are used in state machines)
 strictlyOnandonStateOrSubstatenow are part ofBehaviourContextWithFSMBuilder
0.36.1
Common:Version:MicroUtils:0.7.2->0.7.3
API:- Fix 
getMyCommandsoverloads conflict when no arguments provided 
- Fix 
 Utils:buildEntitiesDSL now have parameterseparatorto specifyTextSourcethat will be inserted between other sources
0.36.0
ALL PREVIOUS DEPRECATIONS HAVE BEEN REMOVED ALL EXTENSION PACKAGES HAS BEEN RENAMES. Old packages are still available, but will be removed in next major update:
- 
tgbotapi.extensions.api->tgbotape.api - 
tgbotapi.extensions.utils->tgbotape.utils - 
tgbotapi.extensions.behaviour_builder->tgbotape.behaviour_builder - 
Common:Version:Serialization:1.2.2->1.3.0MicroUtils:0.5.28->0.7.2Klock:2.4.3->2.4.6Ktor:1.6.3->1.6.4
 - 
Core:PrivateContentMessageImpl#paymentInfonow is deprecated and will always be nullPayInlineKeyboardButton#paynow is deprecatedRowBuilderandMatrixBuildernow are open and available for extendingMatrixBuilder#matrixwill return read-only new list instead of original internalmutMatrix- Introduced new type of events 
SuccessfulPaymentEventinstead of putting of payment inside of message - New type of events union: 
PublicChatEvent.CommonEventis still union of anyChatEvent - New 
AbstractFlowsUpdatesFilterwith defaultlazyrealization for all typed flows FlowsUpdatesFilterfun now haveonBufferOverflowandupstreamUpdatesFlowas incoming paramsDefaultFlowsUpdatesFilternow use additionalupstreamUpdatesFlowas source of updates
 - 
Utils:- Two new dsl:
inlineKeyboardfor creatingInlineKeyboardMarkupreplyKeyboardfor creatingReplyKeyboardMarkup
 - Cast helpers for 
Message(thanks to madhead):asPossiblyReplyMessage: tries to cast aMessagetoPossiblyReplyMessage, returnsnullif the message is not of that typerequirePossiblyReplyMessage: casts aMessagetoPossiblyReplyMessage, fails if the message is not of that typewhenPossiblyReplyMessage: tries to cast aMessagetoPossiblyReplyMessageand runs the given block of code with it, if the cast is successful
 - New type 
WithUserfor unioning of all types withuserFromUsernow extendsWithUser- Cast helpers for type 
WithUser:asWithUser,whenWithUser,requireWithUser 
 
 - Two new dsl:
 - 
Behaviour Builder:- New expecters and waiters:
waitShippingQueries/onShippingQuerywaitPreCheckoutQueries/onPreCheckoutQuerywaitChosenInlineResult/onChosenInlineResultwaitPollUpdates/onPollUpdates
 
 - New expecters and waiters:
 - 
Behaviour Builder FSM extension: 
0.35.9
Common:Version:Kotlin:1.5.30->1.5.31Klock:2.4.1->2.4.2MicroUtils:0.5.25->0.5.28
Core:- New 
BotActionimplementation -CustomBotAction LocationContenthas been divided to two different types:LiveLocationContentandStaticLocationContent
- New 
 API:- Two new extensions: 
TelegramBot#answerwithCallbackQueryandInlineQuery 
- Two new extensions: 
 Behaviour Builder:- All triggers have been changed to use two filters: filter for in subcontext data and filter for incoming data
 - New waiters for edited content
 - New extension 
BehaviourContext#followLocation - New factory-functions:
BehaviourContextReceiverBehaviourContextAndTypeReceiverBehaviourContextAndTwoTypesReceiver
 - Old API for triggers with the flags like 
includeFilterByChatInBehaviourSubContexthave been deprecated 
0.35.8
Common:Version:MicroUtils:0.5.24->0.5.25UUID:0.3.0->0.3.1
Core:MultipartRequestCallFactorynow will use file name as multipartfilenameparameter instead of generated file id- New extension 
MPPFile#asMultipartFile 
API- Fixes in 
TelegramBot#withAction 
- Fixes in 
 Behaviour Builder:- New extensions 
BehaviourContext#commandWithArgsandBehaviourContext#onCommandWithArgs 
- New extensions 
 
0.35.7
Common:Version:Kotlin:1.5.21->1.5.30Klock:2.3.3->2.4.1Ktor:1.6.2->1.6.3Coroutines:1.5.1->1.5.2MicroUtils:0.5.21->0.5.24
0.35.6
Common:Version:Klock:2.3.1->2.3.3MicroUtils:0.5.19->0.5.21
Core:- All 
FlowsUpdatesFilterflows have been renamed and updated 
- All 
 Utils:- Extensions 
allSentMessagesFlowandallSentMediaGroupsFlowhave been deprecated 
- Extensions 
 
0.35.5
MIME TYPES FOR REQUESTS HAVE BEEN DEPRECATED DUE TO REDUNDANCY OF MIME TYPES IN FILES SENDING
Core:- Several new extensions 
ByteReadChannel#asStorageFileandByteReadChannelAllocator#asStorageFile - Several new extensions 
ByteArray#asMultipartFile,ByteReadChannel#asMultipartFileandByteReadChannelAllocator#asMultipartFile - New extension 
StorageFile#asMultipartFile 
- Several new extensions 
 API:- New extensions 
TelegramBot#downloadFilefor writing of incoming bytes to the file - New extensions 
TelegramBot#downloadFileStreamandTelegramBot#downloadFileStreamAllocatorfor getting of input streams instead of whole bytes arrays - Old extensions 
TelegramBot#downloadFilehas been replaced to the new package. Migration: replace in your projectimport dev.inmo.tgbotapi.extensions.api.downloadFilewithimport dev.inmo.tgbotapi.extensions.api.files.downloadFile PathedFile#filenameextension has been deprecated, and new propertyPathedFile#fileNamehas been included directly inPathedFile
- New extensions 
 Utils:- Add several functions 
convertToStorageFileand extensionsTelegramBot#convertToStorageFile 
- Add several functions 
 
0.35.4 Hotfix
Common:Version:MicroUtils:0.5.18->0.5.19
0.35.3
Common:Version:Klock:2.2.0->2.3.1Ktor:1.6.1->1.6.2MicroUtils:0.5.16->0.5.18
Core:SimpleRequestCallFactoryandMultipartRequestCallFactorybecame a classes instead of objects to avoid collisions in different bots- Support of strongly-typed ietf language codes has been added
 
API:- New extension 
TelegramBot#downloadFilefor anyMediaContent 
- New extension 
 Behaviour Builder:- New provider 
defaultCoroutineScopeProvider- Now it is not necessary to provide 
CoroutineScopetoTelegramBot#buildBehaviourextension 
 - Now it is not necessary to provide 
 - New 
TelegramBot#buildBehaviourextension withFlowUpdatesFilterandCoroutineScopewith defaultCoroutineScope - New typealias 
SimpleFilterfor unifying triggers filter signatures- All waiters got real filters (
SimpleFilter) and rename old filters as mappers 
 - All waiters got real filters (
 - New extensions for 
Any:as/when/requireforWithOptionalLanguageCodeandWithLanguageCode 
- New provider 
 
0.35.2
Common:Version:Kotlin:1.5.20->1.5.21Coroutines:1.5.0->1.5.1Serialization:1.2.1->1.2.2Klock:2.1.2->2.2.0Ktor:1.6.0->1.6.1MicroUtils:0.5.15->0.5.16
0.35.1
Common:Version:Kotlin:1.5.10->1.5.20MicroUtils:0.5.6->0.5.15
Core:- New interface 
MyCommandsRequest(also seeBot API 5.3below) - New extensions 
TextSourcesList#make*Stringfor all parse modes - All 
MessageContentsubclasses now serializable ChosenInlineResultwas replaced and modified to be sealedChosenInlineResultnow extendsFromUser- Added 
Update#sourceUsermethod - More types assumed as sent by user types now implements 
FromUserinterface - Added 
Any#whenFromUser,Any#asFromUserandAny#requireFromUserextensions MedaGroupUpdateand its direct extendersSentMediaGroupUpdateandEditMediaGroupUpdatebecamesealed interfaces- New built-in 
RequestExceptionimplementatorGetUpdatesConflicthas been added 
- New interface 
 Behaviour Builder:- ❗️ All triggers (
on*extensions) have been modified to work in parallel by some marker by default (new parametermarkerFactory, in most cases will work async for different chats) - New extensions 
telegramBotWithBehaviour - All behaviour builder extensions got new parameter 
defaultExceptionsHandler - Class 
BehaviourContextwas rewritten as an interface with default realizationDefaultBehaviourContextand factoryBehaviourContext(TelegramBot, CoroutineScope, FlowsUpdatesFilter) - Extension 
buildBehaviour(and all related extensions/functions) for opportunity to passdefaultExceptionsHandler - Trigger 
onContentMessageand waiterwaitContentMessagenow may include media groups 
- ❗️ All triggers (
 API:- All 
replyand subsequent extensions have been replaced in send package 
- All 
 Utils:- With class casts like 
as*andrequire*now you may usewhen*with parameter callback - Methods of 
EntitiesBuildernow will return builder itself, so you may create sequences likebuildEntities { bold("Hello,") + italic(" world") }directly inbuildEntitiesbody - New extension 
TelegramBot#longPollingFlowhas been added with returning valueFlowwith updates 
- With class casts like 
 Bot API 5.3:- Add type 
BotCommandScope, its serializerBotCommandScopeSerializerand all its children - New request 
DeleteMyCommandsand updates inGetMyCommandsandSetMyCommands - Renames according to 
And moreof June 25, 2021 update 
- Add type 
 
0.35.0
ALL PREVIOUS DEPRECATIONS HAVE BEEN REMOVED JS PART NOW USE IR COMPILER ONLY
Common:Version:Kotlin:1.4.72->1.5.10MicroUtils:0.4.36->0.5.6Coroutines:1.4.3->1.5.0Serialization:1.1.0->1.2.1Klock:2.0.7->2.1.2UUID:0.2.3->0.3.0Ktor:1.5.4->1.6.0
Core:ForceReplyhas been renamed toReplyForceCaptionedandExplainedinterfaces have been removedRecordAudioActionandUploadAudioAction(and all related to these actions functionality) have been removedTextSourceinterface and all related things have been replacedCallbackQueryinterface and all its extenders/implementers becomesealedInputMediainterface and all its extenders/implementers becomesealedParseModeinterface and all its extenders/implementers becomesealedChatMemberbecomessealedKeyboardMarkupbecomessealedLeftChatMemberandMemberChatMemberbecome interfaces. All their code were replaced to the*Implclasses- Most of 
sealedclasses have been modified to be interfaces - Most serializers becomes public, but they are still 
RistFeature - For 
EntitiesBuildermultilevel text sources builders with callback have been added 
0.34.1
Common:Version:ktor:1.5.3->1.5.4MicroUtils:0.4.35->0.4.36
Core- Fix in creating of text sources list
 
0.34.0
It is recommended to use 0.34.1 version due to the bug in 0.34.0 related to rewriting of TextSources creating mechanism.
UPDATE UP TO Telegram Bot API 5.2
ALL OLD DEPRECATIONS WERE REMOVED
Core:- Type 
ChatTypehas been added - New 
ExtendedChatfor unknown messagesUnknownExtendedChathas been added SendInvoice#startParameterbecomes optional and replaced inSendInvoiceconstructor- New interface 
CommonSendInvoiceDatahas been added- Fields 
CommonSendInvoiceData#maxTipAmountandCommonSendInvoiceData#suggestedTipAmountshave been added 
 - Fields 
 - New type 
InputInvoiceMessageContenthas been added - New interface 
TextedWithTextSourceson top ofTextedinterface- Interface 
TextedInputnow extendsTextedWithTextSourceswith overriding oftextSourcesfield as not nullable textSourcesbecome main field inTextedInput- MIGRATION Remove all 
import dev.inmo.tgbotapi.CommonAbstracts.textSourcesin your project textEntitiesbecome are calculable property inTextedInput
- MIGRATION Remove all 
 
 - Interface 
 - Interface 
CaptionedandCaptionedInputnow is deprecated- Most of captions usages were replaced with texts
 
 - Interface 
ExplainedandExplainedInputnow is deprecated- Most of captions usages were replaced with texts
 - Interface 
VoiceChatEventnow isCommonEvent 
 - Mechanism of 
RawMessageEntityconverting were fully rewritten 
- Type 
 
0.33.4
Common:Version:uuid:0.2.3->0.2.4MicroUtils:0.4.33->0.4.35
Core:- All 
TextSourceimplementators have becomeSerializable- New serializer 
TextSourceSerializer 
 - New serializer 
 - Interface
FromUserMessagenow extendsMessage - New interface 
FromUser- Interface 
FromUserMessagenow extendsFromUser 
 - Interface 
 
- All 
 Extensions Utils- Fixes in 
parseCommandsWithParams 
- Fixes in 
 
0.33.3
Common:Version:MicroUtils:0.4.32->0.4.33Ktor:1.5.2->1.5.3
API:- Bot actions DSL (fix for #358)
 
Behaviour Builder:- Rewrite logic of 
doInSubContextWithUpdatesFilteranddoInSubContextWithFlowsUpdatesFilterSetupextensions - All triggers now work with 
stopOnCompletionset up tofalse 
- Rewrite logic of 
 
0.33.2
Common:Version:MicroUtils:0.4.30->0.4.32
Behaviour Builder:- New typealias 
MediaGroupFilterhas been added forMediaGroupexpectators - Several typealiases became 
suspend:CallbackQueryMapperChatMemberUpdatedMapperInlineQueryMapper
 - Commands got an additional parameter - 
additionalFilter. It will be called when all command filters were passed 
- New typealias 
 
0.33.1
Common:Version:Kotlin:1.4.31->1.4.32MicroUtils:0.4.29->0.4.30Klocks:2.0.6->2.0.7
Utils Extensions:- Add extensions 
parseCommandsWithParams 
- Add extensions 
 
0.33.0
UPDATE UP TO Telegram Bot API 5.1 ALL DEPRECATIONS WERE REMOVED
Common:Version:MicroUtils:0.4.28->0.4.29
Core:AdministratorChatMemberSerializerandChatMemberSerializerhas changed their visibility: they are public for now- Add 
ChatInviteLinkRequestwith subrequests likeKnownChatInviteLinkRequest - Add 
CreateChatInviteLink/EditChatInviteLink/RevokeChatInviteLinkrequests - Update 
KickChatMemberto includerevokeMessagesflag - Update 
PromoteChatMemberto includecanManageVoiceChatsandcanManageChatflags - Add 
ChatInviteLinkobject- Add 
PrimaryInviteLinkforChatInviteLinkwithisPrimary == true - Add 
CommonInviteLinkforChatInviteLinkwithisPrimary == false 
 - Add 
 AdministratorChatMemberSerializerhas been set as public for several versionsChatMemberSerializerhas been set as public for several versions- Add 
ChatMemberUpdated - Add 
MessageAutoDeleteTimerChanged - Add 
VoiceChatEvent- Add 
VoiceChatEnded - Add 
VoiceChatParticipantsInvited 
 - Add 
 - Add 
VoiceChatStarted - Add 
ChatMemberUpdatedUpdate- Add 
CommonChatMemberUpdatedUpdate - Add 
MyChatMemberUpdatedUpdate 
 - Add 
 
API:- All API extensions has been updated
 
Behaviour Builder:- Now content triggers and expectators will wait for channel posts too
 - New waiters and triggers for 
ChatMemberUpdatedand its variations 
0.32.9
Common:Version:Kotlin:1.4.30->1.4.31Ktor:1.5.1->1.5.2MicroUtils:0.4.26->0.4.28Coroutines:1.4.2->1.4.3
0.32.8
Common:Version:Serialization:1.1.0-RC->1.1.0MicroUtils:0.4.25->0.4.26
0.32.7
Core:- New variable 
LeftRestrictionsChatPermissionsandRestrictionsChatPermissions 
- New variable 
 Extensions Utils:DiceAnimationTypeclass casts
Behaviour Builder:- Now 
doInSubContextWithUpdatesFilteranddoInSubContextwill automatically subscribe on updates of parentBehaviourContext doInSubContextWithFlowsUpdatesFilterSetup,doInSubContextWithUpdatesFilteranddoInSubContextgot new parameterstopOnCompletionto be able to disable stopping of behaviour context on finishing
- Now 
 
0.32.6
Common:Version:MicroUtils:0.4.24->0.4.25
Extensions API:- New extension 
TelegramBot#replyWithDice 
- New extension 
 Extensions Utils:SlotMachineReelImageshas been renamed toSlotMachineReelImageSlotMachineReelImagegot two built-in parameters:textandnumber- New extension 
String#asSlotMachineReelImage 
0.32.5
Core:- Add 
mentionvariants for user ids and receiver variants (#294) - Now 
AbstractRequestCallFactorywill set up one-second delay for zero timeouts inGetUpdaterequests - Several extensions for 
TelegramBotAPIlikeretrieveAccumulatedUpdateshave been added as a solution for #293 - Links for 
tg://user?id=<user_id>have been updated (#292) - All usages of captions or texts in resends and same things have been replaced with 
textSources - Global 
defaultParseModehas been added (#291) 
- Add 
 
0.32.4
Common:Version:Kotlin:1.4.21->1.4.30Klock:2.0.4->2.0.6MicroUtils:0.4.23->0.4.24
Core:- Renames:
ChannelMessage->ChannelContentMessagePublicMessage->PublicContentMessageGroupMessage->GroupContentMessageFromChannelGroupMessage->FromChannelGroupContentMessageAnonymousGroupMessage->AnonymousGroupContentMessageCommonGroupMessage->CommonGroupContentMessage
PrivateMessage->PrivateContentMessage
 
- Renames:
 Extensions Utils:- Renames of extensions in 
ClassCastsaccording to changes inCore 
- Renames of extensions in 
 
0.32.3
Behaviour Builder:- Add expectators and waiters for inline queries
 
0.32.2
Core:- Fix of #275
 
0.32.1
0.32.0
THIS UPDATE CONTAINS BREAKING CHANGES
Common:Version:MicroUtils:0.4.16->0.4.23Klock:0.2.3->0.2.4Ktor:1.5.0->1.5.1
Core:- BREAKING CHANGE Now 
MediaGroupMessagehave a generic type related toMediaGroupContent- Methods and types related to 
MediaGroupMessagehave been modified according to their meanings 
 - Methods and types related to 
 - Important Change 
FlowsUpdatesFilternow is an interface. Old class has been renamed toDefaultFlowsUpdatesFilterand factory methodFlowsUpdatesFilterhas been added - PASSPORT Full support of 
Telegram Passport APIPassportData- All variants of 
EncryptedPassportElement - All variants of 
SecureValue - All variants of 
PassportElementError - New request 
SetPassportDataErrors Credentials:EncryptedCredentialsDeryptedCredentialsEndDataCredentials
 
- BREAKING CHANGE Now 
 Behaviour Builder:- Trigger and expectation extensions for 
MessageContent(onContentMessageandwaitContentMessage) onMediaGrouphas been replacedwaitMediaGrouphas been addedonVisualMediaGroupnow is just an alternative toonVisualGallerycommandandonCommandexpectations has been added for commandsStringvariant- New extensions 
BehaviourContext#oneOf,BehaviourContext#parallelandDeferred<T>#withAction - Several renames:
waitAudioMediaGroup->waitAudioMediaGroupContentwaitDocumentMediaGroup->waitDocumentMediaGroupContentwaitMediaGroup->waitAnyMediaGroupContentwaitVisualMediaGroup->waitVisualMediaGroupContent
 - New extensions 
BehaviourContext#waitPassportMessagesWithandBehaviourContext#waitAnyPassportMessages - New extensions 
BehaviourContext#onPassportMessageandBehaviourContext#onPassportMessageWith 
- Trigger and expectation extensions for 
 Utils:- New 
ClassCastsforMessage- PASSPORT 
EncryptedPassportElement - PASSPORT 
PassportElementError - PASSPORT 
SecureValue 
 - Several tools for decryption have been added:
AESDecryptoris available forJVMplatform- Extensions 
EncryptedCredentials#decryptWithPKCS8PrivateKeyare available forJVMplatform - Extensions 
EndDataCredentials#decryptDataandFileCredentials#decryptFilehave been added - Several extensions 
createDecryptor - Several extensions 
doInDecryptionContextWithPKCS8Key 
 - New extension 
Flow#passportMessages - In most of webhook setting up functions/methods now available parameter 
mediaGroupsDebounceTimeMillis 
- New 
 API:- PASSPORT New extensions 
TelegramBot#setPassportDataErrors 
- PASSPORT New extensions 
 
0.31.0
THIS UPDATE CONTAINS BREAKING CHANGES
Common:- ALL DEPRECATIONS CREATED SINCE 0.30.0 WERE REMOVED
 
Behaviour Builder:- Extension 
TelegramBot#buildBehaviourhave changed its return value: now it isJobinstead ofFlowsUpdatesFilter 
- Extension 
 Utils- New extensions 
TelegramBot#longPollingwere added as new recommended way to start getting updates via long polling- Old extensions 
RequestsExecutor#startGettingFlowsUpdatesByLongPollinghas been deprecated 
 - Old extensions 
 
- New extensions 
 
0.30.13
Common:Version:MicroUtils:0.4.15->0.4.16
Core:- New variable 
FlowsUpdatesFilter#allUpdatesWithoutMediaGroupsGroupingFlowwhich will contains updates withoutSentMediaGroupUpdate 
- New variable 
 Utils:- Extensions for 
ResendableContenthas been added - Extensions for 
TextSourcehas been added 
- Extensions for 
 Behaviour Builder:- Project has been created :)
 
0.30.12
Utils:- Class casts has been added. Now you can write something like 
message.asGroupMessage() ?.let { ... }instead of(message as? GroupMessage<*>) ?.let { ... } 
- Class casts has been added. Now you can write something like 
 
0.30.11
Common:Version:MicroUtils:0.4.11->0.4.15Klock:2.0.1->2.0.3Ktor:1.4.3->1.5.0
Core:- All bot actions got functions for short calling, like 
recordVideoforRecordVideoNote - All bot actions got class-cast shortcuts
 
- All bot actions got functions for short calling, like 
 
0.30.10
Common:Version:Kotlin:1.4.20->1.4.21Klock:2.0.0->2.0.1Ktor:1.4.2->1.4.3MicroUtils:0.4.6->0.4.11
API Extensions:- New function 
buildBot 
- New function 
 
0.30.9
Common:Version:UUID:0.2.2->0.2.3Coroutines:1.4.1->1.4.2MicroUtils:0.4.3->0.4.6
Core:- Add 
BowlingDiceAnimationType 
- Add 
 
0.30.8
Common:Version:Kotlin:1.4.10->1.4.20Klock:1.12.1->2.0.0MicroUtils:0.4.1->0.4.3
0.30.7
Common:Version:MicroUtils:0.4.0->0.4.1
Core:TelegramAPIUrlsKeeperwill fix ending of host url since this version- New mechanisms in
PowLimiterandCommonLimiterhas been added - New builder 
KtorRequestsExecutorBuilder- New function 
telegramBot 
 - New function 
 
Utils:- Simple function 
telegramBot(TelegramAPIUrlsKeeper)has been deprecated with replacement by almost the same function inCore 
- Simple function 
 
0.30.6
CoreTextSourceproperties has been renamed:asMarkdownSource->markdownasMarkdownV2Source->markdownV2asHtmlSource->html
PrivateChatoverrideidproperty with typeUserId- Several new extensions and functions in links creation:
- New function 
makeUsernameLinkwith parameterString- New extension 
Username#linkand functionmakeLink(Username) 
 - New extension 
 - Function 
makeLinkToMessagenow able to get any type of chat- New extension 
Message#link 
 - New extension 
 - Old functions 
makeLinkToAddStickerSet...has been deprecated:makeLinkToAddStickerSetmakeLinkToAddStickerSetInMarkdownV2makeLinkToAddStickerSetInMarkdownmakeLinkToAddStickerSetInHtml
 
 - New function 
 
0.30.5
Common:Version:MicroUtils:0.3.3->0.4.0
Core:- Mechanism of 
ChatMemberserialization has been changed- Since this version any 
ChatMembercan be serialized (even outside in case it marked by@Serializable) - Since this version any 
ChatMember(included in this project) can be deserialized in common way 
 - Since this version any 
 Userpropertyidhas changed its type: now it isUserId(under the hood it is the same asChatId)
- Mechanism of 
 
0.30.4
Common:Version:MicroUtils:0.3.1->0.3.3
Core:MultilevelTextSource#textSourceshas been safely renamed tosubsourcesTextContent#fullEntitiesListhas been deprecated- Now 
TextContentimplementsTextedInputTextContent#entitieshas been deprecated
 GroupEventMessagenow overrideschatEventwith typeGroupEventSupergroupEventMessagenow overrideschatEventwith typeSupergroupEvent- Any 
ChatEventMessagenow have generic type of itschatEvent(just like messages) 
Utils:- Old extensions related to chat events are deprecated:
Flow<ChatEventMessage<*>>#divideBySourceFlow<ChatEventMessage<*>>#onlyChannelEventsFlow<ChatEventMessage<*>>#onlyGroupEventsFlow<ChatEventMessage<*>>#onlySupergroupEvents
 - A lot of extensions for 
Flow<ChatEventMessage>has been added:FlowsUpdatesFilter#eventsFlowsUpdatesFilter#channelEventsFlowsUpdatesFilter#groupEventsFlowsUpdatesFilter#supergroupEvents- And a lot of other filters with specific types
 
 
- Old extensions related to chat events are deprecated:
 
0.30.3
Common:Version:MicroUtils:0.3.0->0.3.1
Core:- New type of requests exceptions 
TooMuchRequestsException. In fact it will be rare case when you will get this exception EmptyLimiterhas been renamed toExceptionsOnlyLimiterand currently will stop requests afterTooMuchRequestsExceptionhappen until retry time is actual- Now 
ExceptionsOnlyLimiter(previouslyEmptyLimiter) is a class 
- Now 
 AbstractRequestCallFactorycurrently will not look at the response and wait if it haveRetryAftererror. New behaviour aimed on delegating of this work toRequestsLimiter
- New type of requests exceptions 
 
0.30.2
Common:Version:Ktor:1.4.1->1.4.2
Core:- New sealed class 
SetWebhookRequestwhich can be used inSetWebhookrequests 
- New sealed class 
 Utils:- Extensions 
setWebhookInfoAndStartListenWebhookshas been united in one extension withSetWebhookRequestincoming parameter 
- Extensions 
 
0.30.1
Common:Version:MicroUtils:0.2.7->0.3.0
Utils:- Builder-style DSL for text sources - 
buildEntities(thanks to djaler) 
- Builder-style DSL for text sources - 
 
0.30.0 Bot API 5.0
THIS UPDATE CONTAINS A LOT OF BREAKING CHANGES. PLEASE, BE CAREFUL ON UPGRADING OF YOUR PROJECT
Common:Version:Coroutine:1.4.0->1.4.1- NEW 
MicroUtils:0.2.7 
Core:- Support of 
logOutmethod (LogOutobject as aRequest) - Support of 
closemethod (Closeobject as aRequest) SetWebhookupdates:- New field 
ipAddress. It works the same asip_addressin setWebhook section - New field 
dropPendingUpdates. It works the same asdrop_pending_updatesin setWebhook section 
- New field 
 - New field 
ExtendedPrivateChat#bio - New data class 
ChatLocation - New field 
UnbanChatMember#onlyIfBanned - New fields 
ExtendedChannelChat#linkedGroupChatIdandExtendedSupergroupChat#linkedChannelChatId - New fields 
ExtendedSupergroupChat#location - New fields 
AudioFile#fileNameandVideoFile#fileName - New fields 
SendDocument#disableContentTypeDetectionandInputMediaDocument#disableContentTypeDetection - New request 
UnpinAllChatMessages - New parameter for 
unpinChatMessagemethod:messageId - New dice type 
FootballDiceAnimationType - Limits for dices has been changed
 commonDiceResultLimithas been deprecated- New field 
DiceAnimationType#valueLimits - Locations updates:
- New interface 
Headedwith propertyheading - New interface 
HorizontallyAccuredwith propertyhorizontalAccuracy - New interface 
ProximityAlertablewith propertyproximityAlertRadius Locationclass has been separated:StaticLocationfor static locationsLiveLocationfor live locations
- Property 
Livable#livePeriodnow use typealias typeSeconds(the same by meaning -Int) EditLocationMessagenow extendsLocationed,HorizontallyAccured,ProximityAlertableandHeadedinterfaces- New properties in 
EditChatMessageLiveLocation:horizontalAccuracy,heading,proximityAlertRadius - New properties in 
EditInlineMessageLiveLocation:horizontalAccuracy,heading,proximityAlertRadius 
- New properties in 
 - Main constructor of 
SendLocationnow is internal. Instead of that currently available next factories:SendLocation- sending of static location without live parametersSendStaticLocation- sending of static location without live parametersSendLiveLocation- sending of live location with live parameters
 PositionedSendMessageRequestnow extendsLocationedLocationContent#createResendnow can createLiveLocation
 - New interface 
 - Support of 
ProximityAlertTriggered. It isCommonEvent - Property 
pollQuestionTextLengthnow have maximum up to300 - Anonymous Admins:
- New field 
AdministratorChatMember#isAnonymous 
 - New field 
 - Several new interfaces of messages:
SignedMessage- any message which possibly haveauthorSignatureWithSenderChatMessage- any message which havesenderChat. PropertysenderChatis not-nullable due to separation of implementatorsPublicMessage- all channel messages have propertyval chat: PublicChatinstead of commonval chat: ChatChannelMessage- all channel messages have propertyval chat: ChannelChatinstead of commonval chat: Chat- Old 
ChannelMessagewas safely renamed toChannelMessageImpl(old name was set as typealias and deprecated) 
- Old 
 GroupMessage- all group messages have propertyval chat: GroupChatinstead of commonval chat: ChatFromChannelGroupMessage- instances should have propertyval channel: ChannelChatAnonymousGroupMessage- instances may have setup propertyauthorSignatureCommonGroupMessage- just common message
PrivateMessage- works like previousCommonMessageImpl- Previous 
CommonMessageImplsafely renamed toPrivateMessageImpl 
 - New property 
PromoteChatMember#isAnonymous - Update all classes which must have 
entities/caption_entitiesfields - New request 
CopyMessage - New extension 
List<TextSource>#makeStringfor more comfortable work with new api with entities - Support for Google Places identifiers for venues
 - New extensions for text sources separating:
List<TextSource>#separateForMessageList<TextSource>#separateForCaptionList<TextSource>#separateForText
 - Rewritten work with text sources and text parts:
- Now any 
Messagetype with entities will have full list of entities. That means that parts without any formatter entities will useRegularTextSource MultilevelTextSource#textPartshas been deprecated. Now eachMultilevelTextSourcehave its owntextSourceslist
 - Now any 
 - New dsl for creating of 
TextSourcelists - Built-in 
handleSafelyandExceptionHandleris deprecated - New common factories for 
StorageFile 
- Support of 
 API:- Extensions 
TelegramBot#pinChatMessagenow support anyChatandMessages from anyChat - New extensions 
TelegramBot#unpinAllChatMessages - Extensions 
TelegramBot#promoteChatMembergotisAnonymousparameter - All old api methods has been actualized to their analogs in 
Core - All 
telegramBotwithtoken: StringgotapiUrlparameter - Factory 
telegramBotWithCustomClientConfighas been renamed totelegramBot 
- Extensions 
 
0.29.4
Core:diceResultLimitnow is deprecated, usecommonDiceResultLimitinstead- New extension 
slotMachineDiceResultLimit 
Utils:- New enum 
SlotMachineReelImages - New extension 
Int#asSlotMachineReelImage - New data class 
SlotMachineResult- New extension 
Dice#calculateSlotMachineResult 
 - New extension 
 
- New enum 
 
0.29.3
Common:- Version updates:
Serialization:1.0.0->1.0.1
 
- Version updates:
 Core:- New annotation 
RiskFeature. This annotation will be applied to the things which contains unsafe types usageSendMediaGroupfactory now marked withRiskFeature
 - Media groups updates:
- New functions 
SendPlaylist - New functions 
SendDocumentsGroup - New functions 
SendVisualMediaGroup 
 - New functions 
 - New type 
VisualMediaGroupMemberInputMedia : MediaGroupMemberInputMediaInputMediaPhotonow implementsVisualMediaGroupMemberInputMediainstead ofMediaGroupMemberInputMediaInputMediaVideonow implementsVisualMediaGroupMemberInputMediainstead ofMediaGroupMemberInputMedia
 - New type 
VisualMediaGroupContent : MediaGroupContentPhotoContentnow implementsVisualMediaGroupContentinstead ofMediaGroupContentVideoContentnow implementsVisualMediaGroupContentinstead ofMediaGroupContent
 - New type 
AudioMediaGroupContent : MediaGroupContentAudioContentnow implementsAudioMediaGroupContentinstead ofMediaContentandCaptionedInput
 - New type 
DocumentMediaGroupContent : MediaGroupContentDocumentContentnow implementsDocumentMediaGroupContentinstead ofMediaContentandCaptionedInput
 - New type 
AudioMediaGroupMemberInputMedia : MediaGroupMemberInputMediaInputMediaAudionow implementsAudioMediaGroupMemberInputMedia
 - New type 
DocumentMediaGroupMemberInputMedia : MediaGroupMemberInputMediaInputMediaDocumentnow implementsDocumentMediaGroupMemberInputMedia
 - New extension 
AudioFile#toInputMediaAudio AudioContentnow implementsMediaGroupContent- New extension 
DocumentFile#toInputMediaDocument DocumentContentnow implementsMediaGroupContent- New dice type 
SlotMachineDiceAnimationType - New extension 
TelegramMediaFile#asDocumentFile - New extension 
VideoFile#toInputMediaVideo - New exception 
WrongFileIdentifierException - Extension 
String#toInputMediaFileAttachmentNamenow is deprecated - Property 
ThumbedInputMedia#thumbMedianow is deprecated 
- New annotation 
 API:- New extensions for media groups:
TelegramBot#sendPlaylistTelegramBot#replyWithPlaylistTelegramBot#sendDocumentsGroupTelegramBot#replyWithDocumentsGroupTelegramBot#sendVisualMediaGroupTelegramBot#replyWithVisualMediaGroup
 
- New extensions for media groups:
 Utils:- New extensions for 
Flows:Flow<SentMediaGroupUpdate>#mediaGroupVisualMessagesFlow<SentMediaGroupUpdate>#mediaGroupAudioMessagesFlow<SentMediaGroupUpdate>#mediaGroupDocumentMessages
 - New extensions for 
FlowsUpdatesFilter:FlowsUpdatesFilter#audioMessagesWithMediaGroupsFlowsUpdatesFilter#mediaGroupAudioMessagesFlowsUpdatesFilter#documentMessagesWithMediaGroupsFlowsUpdatesFilter#mediaGroupDocumentMessagesFlowsUpdatesFilter#mediaGroupVisualMessages
 
- New extensions for 
 
0.29.2
Common:- Version updates:
Coroutines:1.3.9->1.4.0
 - Internal broadcast channels were replaced with 
SharedFlow 
- Version updates:
 TelegramBotAPI-extensions-utils:- Extension 
ReceiveChannel#debounceByValuehas been deprecated 
- Extension 
 
0.29.1
Common:- Version updates:
Serialization:1.0.0-RC2->1.0.0
 
- Version updates:
 
0.29.0
- 
THIS VERSION CONTAINS BREAKING CHANGES
 - 
PROJECT PACKAGES WERE CHANGED
- Packages in the whole project were changed 
com.github.insanusmokrassar.TelegramBotAPI->dev.inmo.tgbotapi - Project group in repositories were changed: 
com.github.insanusmokrassar->dev.inmo - Migration (Examples migration):
- Change implementation in your gradle files:
implementation "com.github.insanusmokrassar:TelegramBotAPI-core:*"->implementation "dev.inmo:tgbotapi.core:*"implementation "com.github.insanusmokrassar:TelegramBotAPI-extensions-utils:*"->implementation "dev.inmo:tgbotapi.extensions.utils:*"implementation "com.github.insanusmokrassar:TelegramBotAPI-extensions-api:*"->implementation "dev.inmo:tgbotapi.extensions.api:*"implementation "com.github.insanusmokrassar:TelegramBotAPI:*"->implementation "dev.inmo:tgbotapi:*"
 - Replace packages 
com.github.insanusmokrassar.TelegramBotAPIin the whole project bydev.inmo.tgbotapi 
 - Change implementation in your gradle files:
 
 - Packages in the whole project were changed 
 - 
TelegramBotAPI-core:- Now in forward info you can get 
ForwardFromSupergroupInfo - BREAKING CHANGE 
SendVoicefactory function has changed its signature: now it have nowthumb(according to the documentation) AudioFilenow can be converted toVoiceFileVoiceFilenow can be converted toAudioFile
 - Now in forward info you can get 
 - 
TelegramBotAPI-extensions-api:- ALL REQUESTS EXECUTOR USAGES WERE REPLACED WITH 
TelegramBotTYPEALIAS. It should not bring any break changes - Internal changes of 
sendRegularPollandsendQuizPollextensions - Variable 
defaultLivePeriodDelayMillisnow is public - All 
sendextensions forTelegramBotgot theirreplyvariations (issue #144) - A lot of 
sendextensions forTelegramBotgot their variation withChatinstead ofChatIdentifier 
 - ALL REQUESTS EXECUTOR USAGES WERE REPLACED WITH 
 
0.28.4
Common:- Version updates:
Ktor:1.4.0->1.4.1
 
- Version updates:
 TelegramBotAPI-coreTelegramBotAPI-extensions-utils- Extensions 
Flow<ChatEventMessage>#onlyGroupEventsandFlow<ChatEventMessage>#onlySupergroupEventsnow returnsCommonGroupEventMessageandCommonSupergroupEventMessage 
- Extensions 
 
0.28.3
- Common:
- Version updates:
Klock:0.12.0->0.12.1Kotlin serialization:1.0.0-RC->1.0.0-RC2(dependencykotlinx-serialization-corewas replaced withkotlinx-serialization-jsondue to kotlinx.serialization library update)
 
 - Version updates:
 TelegramBotAPI-core:- All 
InlineQueryResulthas changed their type of id for more obvious relation betweenInlineQueryResult#idandChosenInlineResult#resultId:String->InlineQueryIdentifier 
- All 
 TelegramBotAPI-extensions-utils:- Several extensions for updates flows based on 
InlineQueryUpdatehas been added:Flow<InlineQueryUpdate>#onlyBaseInlineQueriesWithUpdatesFlow<InlineQueryUpdate>#onlyBaseInlineQueriesFlow<InlineQueryUpdate>#onlyLocationInlineQueriesWithUpdatesFlow<InlineQueryUpdate>#onlyLocationInlineQueries
 - Several extensions for updates flows based on 
ChosenInlineResultUpdatehas been added:Flow<ChosenInlineResultUpdate>.onlyBaseChosenInlineResultsWithUpdatesFlow<ChosenInlineResultUpdate>.onlyBaseChosenInlineResultsFlow<ChosenInlineResultUpdate>.onlyLocationChosenInlineResultsWithUpdatesFlow<ChosenInlineResultUpdate>.onlyLocationChosenInlineResults
 
- Several extensions for updates flows based on 
 
0.28.2
TelegramBotAPI-extensions-utils:- Several commands shortcuts for 
Flow<ContentMessage<TextContent>>has been added:filterExactCommandsfilterCommandsInsideTextMessagesfilterCommandsWithArgs
 - Extension 
Flow<BaseSentMessageUpdate>.filterCommandsWithArgshas changed its signature: now it will also have original message paired with list of text sources - Shortcut method 
commonMessagesforonlyCommonMessages - Shortcuts 
onlySentViaBotandwithoutSentViaBotnow are extensions for anyFlowwith types which implementingContentMessage 
- Several commands shortcuts for 
 
0.28.1
- Common:
- Versions updates:
Kotlin:1.4.0->1.4.10UUID:0.2.1->0.2.2
 
 - Versions updates:
 TelegramBotAPI-core:ExceptionHandlerhas changed its incoming type:Exception->ThrowablehandleSafelyhas changed its signatureexecuteUnsafehas changed its signature
0.28.0
- 
THIS VERSION CONTAINS BREAKING CHANGES
 - 
PROJECT PACKAGES WERE CHANGED
- Project 
TelegramBotAPI->TelegramBotAPI-core - Project 
TelegramBotAPI-all->TelegramBotAPI 
 - Project 
 - 
Common:- Version updates:
Kotlin:1.3.72->1.4.0Coroutines:1.3.8->1.3.9Serialization:0.20.0->1.0.0-RCKlock:1.11.14->1.12.0UUID:0.1.1->0.2.1Ktor:1.3.2->1.4.0
 buildMimeTypefunction now is cache-oriented getter which will save already got mime types into internal map- All deprecations from previous versions were removed
 
 - Version updates:
 - 
TelegramBotAPI-core:- Typealias 
TelegramBotwas added - Fully rebuilt 
KtorCallFactoryinterface to be able to handle custom answers from telegram bot api system - New implementation of 
KtorCallFactorywas added:DownloadFileRequestCallFactoryDownloadFilerequest was added
 - All included 
KtorCallFactoryrealizations (except of abstract) now are objects:MultipartRequestCallFactorySimpleRequestCallFactory
 MediaGroupMemberInputMediamembers now will not haveargumentsproperty due to redundancy and buggy of that- Field 
medianow is common for allInputMediaobjects 
 - Typealias 
 - 
TelegramBotAPI-extensions-api:- Extensions 
TelegramBot#downloadFilewere added 
 - Extensions 
 - 
TelegramBotAPI-extensions-utils:- All extensions for media groups (except of 
mediaGroupId) have changed their context:List<MediaGroupMessage>->List<CommonMessage<MediaGroupContent>>forwardInforeplyTochatcreateResend(several extensions)
 - Several extensions for downloading of files:
HttpClient#loadFilePathedFile#download
 
 - All extensions for media groups (except of 
 
0.27.11
TelegramBotAPI:- Extension 
String#filenameFromUrlwas created- Extension 
PathedFile#filenamewas created 
 - Extension 
 
- Extension 
 TelegramBotAPI-extensions-utils:Flow<Iterable<T>>.flatMapextension was added- Extensions for 
FlowUpdatesFilterwere added:FlowsUpdatesFilter#allSentMessagesFlow(combination ofmessageFlowandchannelPostFlow)FlowsUpdatesFilter#allSentMediaGroupsFlow(combination ofmessageMediaGroupFlowandchannelPostMediaGroupFlow)FlowsUpdatesFilter#sentMessagesFlowsUpdatesFilter#sentMessagesWithMediaGroupsFlowsUpdatesFilter#photoMessagesWithMediaGroupsFlowsUpdatesFilter#imageMessagesWithMediaGroupsFlowsUpdatesFilter#videoMessagesWithMediaGroupsFlowsUpdatesFilter#mediaGroupMessagesFlowsUpdatesFilter#mediaGroupPhotosMessagesFlowsUpdatesFilter#mediaGroupVideosMessages
 - A lot of extensions like 
Flow<BaseSentMessageUpdate>#textMessageswere added:Flow<BaseSentMessageUpdate>#animationMessagesFlow<BaseSentMessageUpdate>#audioMessagesFlow<BaseSentMessageUpdate>#contactMessagesFlow<BaseSentMessageUpdate>#diceMessagesFlow<BaseSentMessageUpdate>#documentMessagesFlow<BaseSentMessageUpdate>#gameMessagesFlow<BaseSentMessageUpdate>#invoiceMessagesFlow<BaseSentMessageUpdate>#locationMessagesFlow<BaseSentMessageUpdate>#photoMessagesFlow<BaseSentMessageUpdate>#imageMessages
Flow<BaseSentMessageUpdate>#pollMessagesFlow<BaseSentMessageUpdate>#stickerMessagesFlow<BaseSentMessageUpdate>#textMessagesFlow<BaseSentMessageUpdate>#venueMessagesFlow<BaseSentMessageUpdate>#videoMessagesFlow<BaseSentMessageUpdate>#videoNoteMessagesFlow<BaseSentMessageUpdate>#voiceMessagesFlow<BaseSentMessageUpdate>#mediaGroupMessagesFlow<BaseSentMessageUpdate>#mediaGroupPhotosMessagesFlow<BaseSentMessageUpdate>#mediaGroupVideosMessages
 
0.27.10
TelegramBotAPI-extensions-api:- Function 
telegramBot(TelegramAPIUrlsKeeper)was added 
- Function 
 TelegramBotAPI-extensions-utils:- Extension 
Route#includeWebhookHandlingInRouteWithFlowswas added - A lot of extensions like 
FlowsUpdatesFilter#textMessageswere added:FlowsUpdatesFilter#animationMessagesFlowsUpdatesFilter#audioMessagesFlowsUpdatesFilter#contactMessagesFlowsUpdatesFilter#diceMessagesFlowsUpdatesFilter#documentMessagesFlowsUpdatesFilter#gameMessagesFlowsUpdatesFilter#invoiceMessagesFlowsUpdatesFilter#locationMessagesFlowsUpdatesFilter#photoMessagesFlowsUpdatesFilter#imageMessages
FlowsUpdatesFilter#pollMessagesFlowsUpdatesFilter#stickerMessagesFlowsUpdatesFilter#textMessagesFlowsUpdatesFilter#venueMessagesFlowsUpdatesFilter#videoMessagesFlowsUpdatesFilter#videoNoteMessagesFlowsUpdatesFilter#voiceMessages
 
- Extension 
 
0.27.9
Common- Versions updates:
Gradle Wrapper:6.5-all->6.5.1-binCoroutines:1.3.7->1.3.8Klock:1.11.3->1.11.14UUID:0.1.0->0.1.1
 
- Versions updates:
 
0.27.8
TelegramBotAPI:UnknownUpdateTypewas renamed toUnknownUpdate- Refactoring and optimization of 
FlowsUpdatesFilter Venuetype was replaced to a new package:com.github.insanusmokrassar.TelegramBotAPI.types.venue.VenueVenuetype now implementsLocationedand delegate realisation to itslocationfieldFoursquareIdandFoursquareTypetypealiases were added
TelegramBotAPI-extensions-utils:- Several new functions 
makeLinkToMessagewas added Foursquaredata class was added- Extension 
Venue#foursquarewas added - Factory function 
VenuewithFoursquareparameter was added 
- Extension 
 
- Several new functions 
 
0.27.7
TelegramBotAPI:- Operator function 
unaryPluswas added toRowBuilder. Now it is possible to writerow { +button } - Function 
flatMatrixwas added for single-row columns - Operator extension 
RowBuilder#pluswas added to be able to write things likerow { this + button } 
- Operator function 
 TelegramBotAPI-extensions-api:- Extensions 
RequestsExecutor#sendVenuewithLocationargs were added 
- Extensions 
 TelegramBotAPI-extensions-utils:- Function 
InlineKeyboardMarkupfor flat keyboards was added - Function 
ReplyKeyboardMarkupfor flat keyboards was added 
- Function 
 
0.27.6
Common:- Versions:
Kotlin Coroutines:1.3.6->1.3.7
 
- Versions:
 TelegramBotAPI:- Interface 
PossiblySentViaBothas been added- Additional interface 
PossiblySentViaBotCommonMessagewas added for more explicit typing declaration for compiler- Currently, only 
ChannelMessageandCommonMessageImplare implementing the interfacePossiblySentViaBotCommonMessage. It could be changed in future 
 - Currently, only 
 
 - Additional interface 
 - Factory 
buildMimeTypewas added BuiltinMimeTypeswas added- Abstraction 
ThumbedWithMimeTypeInlineQueryResultwiththumbMimeTypefield was addedInlineQueryResultGifandInlineQueryResultMpeg4Gifnow extendThumbedWithMimeTypeInlineQueryResultinstead ofThumbedInlineQueryResult
 
- Interface 
 TelegramBotAPI-extensions-utils:- New extensions 
onlyCommonMessages,onlySentViaBotandwithoutSentViaBotwas added 
- New extensions 
 
0.27.5
Common:- Versions:
Klock:1.11.1->1.11.3
 
- Versions:
 TelegramotAPI:- Fix: for sending requests caption and text lengths limits were updated
 - New variant of 
rowwas added makeLinkToMessageextensions has been deprecated (replaced intoTelegramBotAPI-extensions-utils)- Next things was deprecated and replaced into 
TelegramBotAPI-extensions-utils:- All 
Stringformatting public extensions and functions - All extensions like 
CaptionedInput#toHtmlCaptions - All helper extensions for 
List<BaseMessageUpdate> - All 
RequestsExecutor#executeAsyncandRequestsExecutor#executeUnsafe 
 - All 
 BotCommandnow more strictly check commands which passed to it- Regex 
BotCommandNameRegexwas added 
- Regex 
 
TelegramBotAPI-extensions-api:- A lot of 
RequesstExecutor#getChatextensions was added for more explicit types showing - New 
RequesstExecutor#setMyCommandsextension was added - New field 
BotBuilder#ktorClientEngineFactoryintroduced- Field 
BotBuilder#ktorClientEnginenow is deprecated 
 - Field 
 
- A lot of 
 TelegramBotAPI-extensions-utils:safelyfunction was introduced. It is inPreviewFeaturestate currentlymakeLinkToMessageextensions has been addedmakeLinkToAddStickerSetfunction and its variations were added- Next tools was added from 
TelegramBotAPI:- All 
Stringformatting extensions and functions - All extensions like 
CaptionedInput#toHtmlCaptions - All helper extensions for 
List<BaseMessageUpdate>- Several new extensions for 
SentMediaGroupUpdatewere added:SentMediaGroupUpdate#forwardInfoSentMediaGroupUpdate#replyToSentMediaGroupUpdate#chatSentMediaGroupUpdate#mediaGroupId
 - Several 
List<MediaGroupMessage>.createResendextensions were added 
 - Several new extensions for 
 RequestsExecutor#executeAsyncandRequestsExecutor#executeUnsafe
 - All 
 
0.27.4
TelegramBotAPI-extensions-utils:- Several extensions for updates was added:
onlyBaseMessageUpdatesonlySentMessageUpdatesonlyEditMessageUpdatesonlyMediaGroupsUpdatesonlySentMediaGroupUpdatesonlyEditMediaGroupUpdates
 - Renames in chat filters extensions:
filterBaseMessageUpdates->filterBaseMessageUpdatesByChatIdandfilterBaseMessageUpdatesByChatfilterSentMediaGroupUpdates->filterSentMediaGroupUpdatesByChatIdandfilterSentMediaGroupUpdatesByChat
 
- Several extensions for updates was added:
 
0.27.3
TelegramBotAPI:UpdateDeserializationStrategyis publicly available now- All 
setWebhookextensions was marked as deprecated, renamed and replaced intoTelegramBotAPI-extensions-utils - Typealias 
ExceptionHandlerwas added - it will be used forhandleSafely SetWebhookfactories signatures was changed (backward compatibility was not broken)executeUnsafenow working differently- Now it is possible to pass exceptions handler into 
executeUnsafe 
- Now it is possible to pass exceptions handler into 
 BasketballDiceAnimationTypewas addedUnknownDiceAnimationTypenow is deprecated due to renaming - currently it is typealias forCustomDiceAnimationTypeCustomDiceAnimationTypenow isdataclass instead of common class
FlowsUpdatesFilterwill use size 64 by default for internal broadcast channels
TelegramBotAPI-extensions-api:- Long Polling extensions now are deprecated in this project. It was replaced into 
TelegramBotAPI-extensions-utils - Several 
telegramBotfunctions was renamed intotelegramBotWithCustomClientConfig - Add one more 
setWebhookInforealisation 
- Long Polling extensions now are deprecated in this project. It was replaced into 
 TelegramBotAPI-extensions-utils:- Extension 
toTelegramUpdatewas added - Long Polling extensions were added
 - Updates utils were added
 - New extensions 
startListenWebhooks,setWebhookInfoAndStartListenWebhooksandincludeWebhookHandlingInRoutewas added - New extension 
CoroutineScope#updateHandlerWithMediaGroupsAdaptationwas added - New extension 
flowsUpdatesFilterwas added 
- Extension 
 TelegramBotAPI-all:- Project was created
 
0.27.2
Common:- Versions:
- Coroutines: 
1.3.5->1.3.6 - Klock: 
1.10.5->1.11.1 
 - Coroutines: 
 
- Versions:
 TelegramBotAPI:- Expected class 
MimeTypewas added- Field 
MimeTyped#mimeTypenow typed byMimeTypeinstead ofString 
 - Field 
 MediaGroupMemberInputMediachildren now can be deserialized (but only those ones who are declared inside library)
- Expected class 
 TelegramBotAPI-extensions-utils:- Chat events splitters added:
- Extension 
Flow<ChatEventMessage>#onlyChannelEventswas added - Extension 
Flow<ChatEventMessage>#onlyGroupEventswas added - Extension 
Flow<ChatEventMessage>#onlySupergroupEventswas added 
 - Extension 
 
- Chat events splitters added:
 
0.27.1
TelegramBotAPI:- Interface 
Explainedand subsinterfacesExplainedInputandExplainedOutputwas added- Class 
QuizPollnow implementExplainedInput - In 
QuizPoll#captionandQuizPoll#captionEntitiesare deprecated now - Class 
SendQuizPollnow implementExplainedOutput - In 
SendQuizPoll#captionis deprecated now 
 - Class 
 explanationLimitrange was added as future replacement ofquizPollExplanationLimitquizPollExplanationLimitnow is deprecated
- Extensions 
toMarkdownExplanations,toMarkdownV2ExplanationsandtoHtmlExplanationswas added - Typealias 
FullTextSourcesListwas added- All extensions 
fullEntitiesListnow returnFullTextSourcesList - All extensions of 
List<TextSource>now are extensions forFullTextSourcesList 
 - All extensions 
 
- Interface 
 TelegramBotAPI-extensions-api:sendQuizPollnow is usingexplanationparameter instead ofcaption
0.27.0
Common:- Versions updates:
Kotlin:1.3.71->1.3.72Klock:1.10.3->1.10.5
 
- Versions updates:
 TelegramBotAPI:- Typealias 
LongSecondswas added for correct explanation of seconds inLongprimitive type - Several new fields was added:
explanationFieldexplanationEntitiesFieldopenPeriodFieldcloseDateField
 - Extension 
List<TextPart>#justTextSourceswas added for mapping ofList<TextPart>toList<TextSource> - Field 
SendPoll#closeInfowas added- Range 
openPeriodPollSecondsLimitwas added and used in allSendPollrequests for checking income data 
 - Range 
 SendQuizPollnow able to use fieldscaptionandparseModeforexplanationfunctionalityquizPollExplanationLimitwas added for checkingQuizPollexplanation size
- Field 
TextLinkTextSource#urlwas added - Field 
TextMentionTextSource#userwas added - Sealed class 
ScheduledCloseInfowas added- Class 
ExactScheduledCloseInfowas added for cases withclose_date - Class 
ApproximateScheduledCloseInfowas added for cases withopen_period 
 - Class 
 - Field 
Poll#scheduledCloseInfowas added - Sealed class 
MultipleAnswersPollwas added- Class 
RegularPollnow extendsMultipleAnswersPoll 
 - Class 
 Diceclass was replaced into new package- Sealed class 
DiceAnimationTypewas added- Field 
Dice#animationTypewas added asemojiAPI representation SendDicenow receiveanimationTypeas second parameter
 - Field 
 - For 
List<TextSource>was added several extensions:toMarkdownCaptionstoMarkdownTextstoMarkdownV2CaptionstoMarkdownV2TextstoHtmlCaptionstoHtmlTexts
 
- Typealias 
 TelegramBotAPI-extensions-api:- All 
RequestsExecutor#sendDiceextensions now acceptDiceAnimationType?as second parameter - All 
RequestsExecutor#sendRegularPollextensions now acceptScheduledCloseInfofourth parameter - All 
RequestsExecutor#sendQuizPollextensions now accept additional parameterscaption: StringandparseMode: ParseModeforexplanationfunctionality andcloseInfo: ScheduledCloseInfo?for autoclose poll functionality 
- All 
 TelegramBotAPI-extensions-utils:- Several shortcuts for 
ScheduledCloseInfowas added:closePollExactAtclosePollExactAfterclosePollAfter
 
- Several shortcuts for 
 
0.26.4
TelegramBotAPI:- Now any getting of updates will return 
UnknownUpdateTypewhen inside of deserialization will beSerializationExceptionorNotImplementederror CallbackGamecurrently is an object- It is possible to use 
CallbackGamefor nowCallbackGameInlineKeyboardButtonnow will not acceptcallbackGameas income object
 
- It is possible to use 
 - Now it is possible to pass exception handler in webhook
 
- Now any getting of updates will return 
 
0.26.3
TelegramBotAPI:CallbackGameInlineKeyboardButtonwas added (Issue-79, PR-80)UnknownInlineKeyboardButtonwas added. It is unavailable for creating, but you can receive it, for example, inInlineQueryResultUpdatenow will be created even if wasSerializationExceptioninside of creating the update instance - in this case will be createdUnknownUpdateTypeUnknownUpdateType$rawJsonvalue now is included (JsonElement)- EXPERIMENTALLY 
BaseEditMessageUpdate#datanow isCommonMessage<*> - Suspend inline function 
handleSafelywas addedKtorRequestsExecutornow usehandleSafelyinstead oftrywithsupervisorScopeUpdatesPollingnow usehandleSafelyinstead oftrywithsupervisorScope
 
0.26.2
TelegramBotAPI:- Now 
EditMediaGroupUpdatealso extendsBaseEditMessageUpdate - EXPERIMENTALLY Now all 
TextSourcerealisations will containsourcefield as a property inside of them 
- Now 
 TelegramBotAPI-extensions-api:startGettingFlowsUpdatesextension which do not require filter (but return a new one) was added
TelegramBotAPI-extensions-utils:- Subproject was added
 filterBaseMessageUpdates,filterSentMediaGroupUpdatesandfilterEditMediaGroupUpdatesextensions was addedfilterCommandsWithArgs,filterExactCommandsandfilterCommandsInsideTextMessagesextensions was addedasContentMessagesFlow,asChatEventsFlowandasUnknownMessagesFlowextensions was addedwithContentTypeextension was addedonlyAnimationContentMessagesextension was addedonlyAudioContentMessagesextension was addedonlyContactContentMessagesextension was addedonlyDiceContentMessagesextension was addedonlyDocumentContentMessagesextension was addedonlyGameContentMessagesextension was addedonlyInvoiceContentMessagesextension was addedonlyLocationContentMessagesextension was addedonlyPhotoContentMessagesextension was addedonlyPollContentMessagesextension was addedonlyStickerContentMessagesextension was addedonlyTextContentMessagesextension was addedonlyVenueContentMessagesextension was addedonlyVideoContentMessagesextension was addedonlyVideoNoteContentMessagesextension was addedonlyVoiceContentMessagesextension was added
0.26.1
TelegramBotAPI:BotCommandnow will check and throw error in case when command or description lengths is/are incorrectStorageFilenow is common for all platforms- JavaScript realization was removed due to its redundancy
 - JVM realization was replaced with 
funfactory StorageFilenow able to accept any factory ofInputStorageFileInfowas added to avoid strange collisions with throws inStorageFile
- Fixes issue with 
hashTagfor markdown InvalidPhotoDimensionsExceptionwas added for cases whenPHOTO_INVALID_DIMENSIONanswer received- Other fixes
 
0.26.0
Common:- Versions updates:
Klock:1.10.0->1.10.3
 
- Versions updates:
 TelegramBotAPI:- Request 
SendDicewas added (calling sendDice) - Class 
Dicewas added (type dice) - Class 
DiceContentwas added (for including it in message object) BotCommandwas addedGetMyCommandsrequest was addedSetMyCommandsrequest was addedGetMenow is object instead of classGetMewas replaced into packagecom.github.insanusmokrassar.TelegramBotAPI.requests.bot.GetMeCreateNewStickerSetrenamed toCreateStaticNewStickerSetCreateNewAnimatedStickerSetrequest was added (it handle work withtgs_sticker)StickerSet#thumbwas addedAddStickerToSetrenamed toAddStaticStickerToSetAddAnimatedStickerToSetrequest was addedSetStickerSetThumbrequest was added- Most of sticker actions now implements 
StandardStickerSetActioninstead ofStickerSetAction getUpdatesLimitwas added to be ensure in get updates limitGetUpdatesnow will check count of requesting updates and throw exception if it is not in range1 .. 100GetUpdates#limitnow is not nullable and by default set up to 100
- Request 
 TelegramBotAPI-extensions-api:- Extensions 
sendDicewas added - Extension 
getMyCommandsrequest was added - Extension 
setMyCommandsrequest was added - Extension 
getMewas replaced into packagecom.github.insanusmokrassar.TelegramBotAPI.extensions.api.bot.GetMeKt.getMe - All extensions 
createNewStickerSetwas renamed tocreateNewStaticStickerSet - Extensions 
createNewAnimatedStickerSetwas added - All extensions 
addStickerToSetwas renamed toaddStaticStickerToSet - Extensions 
addAnimatedStickerToSetwas added - Extensions 
setStickerSetThumbwas added - Extension 
startGettingUpdatesnow will dropSentMediaGroupUpdatein case if it is the last in updates group and size of retrieved updates is equal to 100 (max count of retrieved updates) - Extensions 
getUpdatesnow will receive only not nullablelimitparameter 
- Extensions 
 
0.25.1
- Update kotlin: 
1.3.70->1.3.71 - Fix of error inside of update utils for media groups
 
0.25.0
- Common:
- Versions updates:
Kotlin:1.3.61->1.3.70Kotlin coroutines:1.3.3->1.3.5Kotlin serialization:0.14.0->0.20.0Ktor:1.3.1->1.3.2Klock:1.8.7->1.10.0UUID:0.0.7->0.1.0
 
 - Versions updates:
 TelegramBotAPI:Botimplementations (as andBotitself) now have not nullableusernameFile#toInputFileextension now will throw error when file does not existsInlineKeyboardMarkupwill check thatPayInlineKeyboardButtonis the first in case if it is exists inkeyboardmakeLinkToMessagenow is notPreviewFeature- All deprecations was removed
 RequestExceptionnow extendsio.ktor.utils.io.errors.IOExceptioninstead ofkotlinx.io.IOExceptionAny#toJsonnow is NOTinlineFlowsUpdatesFilternow as marked my annotationFlowPreviewPathedFile#fullUrlnow is notinlinefunctionSimpleRequest#jsonnow is notinlineandinternalfunctionFlowsUpdatesFilternow have two additional flows:pollAnswerFlow,unknownUpdateTypeFlowExtendedUser(typealias) was added as aPreviewFeature
0.24.1
TelegramBotAPI:UpdateReceiverwas replaced to the packagecom.github.insanusmokrassar.TelegramBotAPI.updateshandlers- All functions inside 
com.github.insanusmokrassar.TelegramBotAPI.utils.extensions.UpdatesPollingare deprecated and will be removed in some soon versions. Their replacement are able insideTelegramBotAPI-extensions-api UpdatesFilteris interface for now- Previous 
UpdatesFilterclass was renamed toSimpleUpdatesFilterand for backward compatibility was added builder functionUpdatesFilter, which will be removed in near releases FlowsUpdatesFilternow implementsUpdatesFilter
- Previous 
 BaseSentMessageUpdateandBaseEditMessageUpdateinterfaces was addedEditChannelPostUpdatenow is implementingBaseEditMessageUpdateinterfaceEditMessageUpdatenow is implementingBaseEditMessageUpdateinterfaceChannelPostUpdatenow is implementingBaseSentMessageUpdateinterfaceMessageUpdatenow is implementingBaseSentMessageUpdateinterface
UpdatesPollerand all its usages, childs and childs usages now are deprecatedGetUpdates#timeouttype now isSeconds(in fact it isIntas previously)KtorRequestsExecutornow is using a copy of incomingHttpClientobject and installHttpTimeoutfeatureAbstractRequestCallFactorynow setting up a custom delay in case if request isGetUpdates
TelegramBotAPI-extensions-api:- All functions from 
com.github.insanusmokrassar.TelegramBotAPI.utils.extensions.UpdatesPollingnow available in packagecom.github.insanusmokrassar.TelegramBotAPI.extensions.api.updates.UpdatesPolling - Now new method of getting updates available: 
startGettingUpdateswithUpdatesFilteras incoming first parameter startGettingUpdateswithreceiverandallowedUpdatesparameters now will handle updates by itself
- All functions from 
 
0.24.0
TelegramBotAPI:- All suspend functions for 
RequestsExecutorwas removed (due to replacement into TelegramBotAPI extensions project) ForwardFromChannelInfo#channelChatnow isChannelChatinstead ofChat
- All suspend functions for 
 TelegramBotAPI-extensions-api:- Most part of sending media messages functions was removed and replaced with their 
InputFileargs analogs 
- Most part of sending media messages functions was removed and replaced with their 
 
0.23.3 Project separating prepare version
API Extensions
- Project created
 - For 
SendPhotowas added new functions for uploading ofMultipartFile deleteWebhookextension forRequestsExecutorwas added
Telegram Bot API
- All 
RequestsExecutorextensions related to Telegram Bots API was replaced intoAPI Extensionsproject 
0.23.2
- Fixes in 
InputMedia-mediafield was not included to serialization 
0.23.1
- Versions updates:
- Klock 
1.8.6->1.8.7 - Ktor 
1.3.0->1.3.1 
 - Klock 
 - Now it is possible to get updates by polling with custom executor engine
 CommonMultipartFileRequestnow is internal- Added 
LiveLocationclass for more useful tracking live locations InvoiceOfPaymentis renamed toInvoiceContentand now isMessageContentinstead ofPaymentInfoSendInvoicenow returnContentMessage<InvoiceContent>paymentInfoinside ofCommonMessageImplnow can be set only toSuccessfulPaymentInfo- Added 
RecordVideoNoteActionandUploadVideoNoteActionforrecord_video_noteandupload_video_noteactions - For most part of messages was added 
RequestsExecutorextensions for more useful way of usage toInputFileextensions now will return more exact types- Now it is possible to send broadcast channels size for 
FlowsUpdatesFilter 
0.23.0 TelegramBotAPI 4.6
Pollnow is sealed classRegularPolltype was added to represent polls with typeregularQuizPolltype was added to represent polls with typequizUnknownPollTypetype was added to represent polls which are unknown in current version
AnonymousPollOptionwas renamed toSimplePollOptionSendPollwas rewritten as sealed classSendRegularPollwas created and representsendPollmethod with typeregularSendQuizPollwas created and representsendPollmethod with typequiz
Poll#createRequestextension was addedPollAnswerUpdatetype of update was addedPollAnswertype was addedUpdatesFilternow support work withPollAnswerUpdate
languagefield in PreTextSource now correctly passed from telegram MessageEntitiesKeyboardButtonnow is sealed class- Fixed problem of incorrect representation of this class (any type of request can be created separately)
 - Added new types of 
KeyboardButton:UnknownKeyboardButtonSimpleKeyboardButtonRequestContactKeyboardButtonRequestLocationKeyboardButtonRequestPollKeyboardButton
 - Added new type 
KeyboardButtonPollType:UnknownKeyboardButtonPollTypeRegularKeyboardButtonPollTypeQuizKeyboardButtonPollType
 
Usernow is sealed classCommonUserwas added as representation of defaultUserBotwas added as representation of bot user (it is sealed class)ExtendedBotwith additional infoCommonBotwith simple info
GetMenow returnExtendedBotobject- Now extension 
javaLocaleis extension forCommonUser 
0.22.2 CashTag and independent updates handling
cashtagentity type was added- Several 
Unknown*realizations was added:UnknownUpdateTypeUnknownMessageTypeUnknownChatTypeUnknownCallbackQueryType
 UpdatesFilternow have one additional income callback:unknownUpdateTypeCallbackcreateSimpleUpdateFiltercan receive one more callback:unknownCallback(forunknownUpdateTypeCallback)
0.22.1 MediaContent#asInputMedia
- All 
MediaContentinstances now can create theirInputMediaanalog - New annotation 
PreviewFeaturewas added to mark new thing as preview for the time while they can work incorrectly - Added links utils:
makeLinkToMessagehave two signatures - for direct creating using username and for abstract creating using chat id
 
0.22.0
- 
KtorCallFactorymust returnHttpStatementinstead ofHttpClientCall - 
SendMessagewas renamed toSendTextMessageand previousSendMessageis deprecated - 
All
AbleToBe*interfaces was renamed toPossibly*AbleToBeEditedMessage->PossiblyEditedMessageAbleToBeForwardedMessage->PossiblyForwardedMessageAbleToBeMarkedUp->PossiblyMarkedUpAbleToBeEditedMessage->PossiblyEditedMessage
 - 
ForwardedMessagetype was renamed toForwardInfoAnonymousForwardedMessage->AnonymousForwardInfoUserForwardedMessage->UserForwardInfoForwardedFromChannelMessage->ForwardFromChannelInfoPossiblyForwardedMessage#forwardedfield now renamed toforwardInfo
 - 
All serializers in library now are
internal. If you have used some of them or I have marked as internal by a mistake - don't hesitate to say this. - 
EditChatMessagenow have generic type and extendsSimpleRequest<ContentMessage<GenericType>> - 
ResendableContentnow extendsRequest<out Message>instead ofRequest<Message> - 
Most part of requests have changed return type. They are listed below:
ForwardMessageGetChatAdministratorsEditChatMessageLiveLocationStopChatMessageLiveLocationEditChatMessageTextEditChatMessageCaptionEditChatMessageMediaEditChatMessageReplyMarkupSendAnimationSendAudioSendContactSendLocationSendTextMessageSendPollSendVenueSendGameSendDocumentSendMediaGroupSendPhotoSendVideoSendVideoNoteSendVoiceSendSticker
 - 
Changed type of
createResendGameContentLocationContentPollContentTextContentVenueContentAnimationContentAudioContentDocumentContentContactContentPhotoContentVideoContentVideoNoteContentVoiceContentStickerContent
 - 
Version updates:
- Ktor 
1.2.6->1.3.0 
 - Ktor 
 
0.21.0 TelegramBotAPI 4.5
- 
All
MessageEntity'es now are replaced withTextPart - 
Added support of strikethrough and underline
- Added 
UnderlineTextSource - Added 
StrikethroughTextSource - Added support in 
RawMessageEntity 
 - Added 
 - 
Added support of
MarkdownV2 - 
Now will not be thrown exception when there is income unknown type of
RawMessageEntity. Instead of this will be createdRegularTextSourcewith the same text - 
Fixed problem that usually string formatting did not trigger escaping of control characters
 - 
Actualized work with
pretype of text - now it is possible to uselanguagefor formatting of text - 
Removed constructor of
TextMentionTextSource, which was deprecated previously - 
All
TelegramMediaFileinstances now have fieldfileUniqueId, which representsfile_unique_idfield from API - 
Now
ChatPhotohave two additional fields:smallFileUniqueIdandbigFileUniqueId - 
Now any administrator object instance have
customTitlenullable field - 
Added the new request
SetChatAdministratorCustomTitleto manage the custom titles of administrators promoted by the bot. - 
Added the field
slowModeDelayto theExtendedSupergroupChatobjects. - 
CaptionedInputnow have extensionfullEntitiesListwhich will return list ofTextPartwithRegularSource's - 
TextPartadded - it will be used as part of some text and can be not related to telegram bot - 
MultilevelTextSourcewas added - it is type ofTextSource, which can have subsources as parts of this text - 
In all
TextSources all fields now are lazy for avoiding of potential risk for performance issues - 
Updates in versions:
- Coroutines 
1.3.2->1.3.3 - Klock 
1.8.0->1.8.6 - UUID 
0.0.6->0.0.7 
 - Coroutines 
 
0.20.4
- Now 
setWebhooksupports setting up of path for listening - Now 
setWebhooksupports custom listen address even if certificate was not provided 
0.20.3
- Now 
LeftChatMamberis aCommonEvent 
0.20.2
- New exception type 
MessageIsNotModifierExceptionwas added - New exception type 
MessageToEditNotFoundExceptionwas added - Now exceptions in requests will be caught correctly
 
0.20.1
Usernow implementPrivateChatTextMentionMessageEntitynow acceptPrivateChatinstead ofUserin main constructorTextMentionMessageEntitynow contains not user, but containsPrivateChat- Fixed: 
TextMentionMessageEntity#asHtmlSourcepreviously worked incorrect 
- Abstraction 
TextSourceMessageEntitynow extendsTextSourcecreateFormattedTextmethod now acceptList<TextSource>createHtmlTextmethod now acceptList<TextSource>createMarkdownTextmethod now acceptList<TextSource>- A lot of 
TextSourceimplementors was added. More info here- All 
MessageEntityimplementations now are using newTextSourceanalogues as delegates 
 - All 
 
 
0.20.0 MPP Migration
- Time library change: 
joda-time->com.soywiz.korlibs.klock:klock Currenciednow using ascurrencyvalue with typeString- For 
Javathere isCurrencied#javaCurrencyextension function, which will give an old currency work way 
- For 
 Usernow have no fielduserLocale- For 
Javathere isUser#javaLocaleextension function, which will give an old locale work way 
- For 
 
0.19.0 ImplicitReflection removing
- Total rework of serialization for requests. Now all 
SimpleRequestchildren have:requestSerializer- field, which must provide serializer of current typeresultDeserializer- field, which must provide opportunity to deserializer result. Previously it was a function
 - Removed deprecations:
com.github.insanusmokrassar.TelegramBotAPI.utils.extensions.WebhookPrivateKeyConfigcom.github.insanusmokrassar.TelegramBotAPI.utils.extensions.UpdatesFiltercom.github.insanusmokrassar.TelegramBotAPI.utils.extensions.createSimpleUpdateFiltercom.github.insanusmokrassar.TelegramBotAPI.utils.createMarkdownTextcom.github.insanusmokrassar.TelegramBotAPI.utils.toMarkdownCaptioncom.github.insanusmokrassar.TelegramBotAPI.utils.toMarkdownTextcom.github.insanusmokrassar.TelegramBotAPI.updateshandlers.KtorUpdatesPollercom.github.insanusmokrassar.TelegramBotAPI.types.message.content.abstracts.CaptionedMediaContentcom.github.insanusmokrassar.TelegramBotAPI.types.message.CommonForwardedMessagecom.github.insanusmokrassar.TelegramBotAPI.types.InputMedia.CaptionedInputMediacom.github.insanusmokrassar.TelegramBotAPI.types.games.Game#textcom.github.insanusmokrassar.TelegramBotAPI.types.games.Game#textEntitiescom.github.insanusmokrassar.TelegramBotAPI.types.files.PathedFileKt.makeFileUrlcom.github.insanusmokrassar.TelegramBotAPI.types.files.PathedFileKt.downloadingFilesBaseUrlcom.github.insanusmokrassar.TelegramBotAPI.requests.send.media.base.Datacom.github.insanusmokrassar.TelegramBotAPI.CommonAbstracts.types.ByInlineMessageIdcom.github.insanusmokrassar.TelegramBotAPI.CommonAbstracts.types.ByMessageIdcom.github.insanusmokrassar.TelegramBotAPI.bot.RequestExceptioncom.github.insanusmokrassar.TelegramBotAPI.bot.exceptions.ReplyMessageNotFoundcom.github.insanusmokrassar.TelegramBotAPI.bot.BaseRequestsExecutor#baseUrlcom.github.insanusmokrassar.TelegramBotAPI.bot.BaseRequestsExecutor#constructor(token, hostUrl)com.github.insanusmokrassar.TelegramBotAPI.bot.Ktor.KtorRequestsExecutor#constructor(token, client, hostUrl, callsFactories, excludeDefaultFactories, requestsLimiter, jsonFormatter)com.github.insanusmokrassar.TelegramBotAPI.bot.Ktor.KtorRequestsExecutor#constructor(token, engine, hostUrl)
 
0.18.1 Libraries update
- Update libraries:
kotlin: 1.3.41 -> 1.3.61kotlin coroutines: 1.2.2 -> 1.3.2kotlin serialization: 0.11.1 -> 0.14.0joda time: 2.10.3 -> 2.10.5ktor: 1.2.3 -> 1.2.6
 BotActionnow will be deserialized in a little bit other wayBotActionSerializernow is internal
- Most part of serializers now are objects (instead of classes as was previously)
 
0.18.0 Raws cleaning
- 
Made internal and not available outside of library:
RawMessageRawUpdateRawChatMemberRawMessageEntityRawInlineQueryRawCallbackQueryRawChosenInlineResult
 - 
All
RawMessageusages was replaced withMessageinterface (with some of other raw classes was made the same things)TelegramBotAPIMessageDeserializationStrategywas created. It was used for deserialization of Telegram Bot API incoming messagesTelegramBotAPIMessageDeserializeOnlySerializerwas created. It MUST NOT be used to serialize messages
 - 
Update of description
 - 
Make
Gameobject a little bit more standartizated - 
Gamenow is not serializable and have no additional trash, related to serialization - 
TelegramFilewas removed 
0.17.0 July 29, 2019 API Update
Libraries updates:
- Kotlin version 
1.3.31->1.3.41 - Kotlin Coroutines version 
1.2.1->1.2.2 - Kotlin Serialization version 
0.11.0->0.11.1 - Joda Time version 
2.10.1->2.10.3 - ktor version 
1.1.4->1.2.3 
Changes according to July 29, 2019 Telegram Bot API update:
StickerandStickerSetnow have fieldisAnimatedChatPermissionsobject was added,GroupChatinterface gotpermissionsfield, requestSetChatPermissionswas addedGroupChatobject now have no fieldallMembersAreAdminsSpecialRightsChatMemberwas added for administrators and restricted members rights union, chat members abstractions was replaced intoabstractspackage and available permissions was updatedRestrictChatMemberrequest now acceptpermissionsobject instead of separated permissions- All 
GroupChatinstances have description 
Other important changes:
- Totally reworked chats hierarchy. 
Extendedabstractions was added for cases when calledGetChatrequest RawChatboilerplate was removed and replaced by serializersBotCommandMessageEntity#commandwill not contain//!parts and also will cut outside of command begin token (/or!) and username token (@) or end of command (any space character)RequestsExecutornow isCloseableTelegramAPIUrlsKeeperwas added to provide more comfortable work with file urls and other things like this
0.16.1
- Now old uncommon 
CaptionedMediaContentandCaptionedInputMediaare replaced by almost the same interfacesCaptionedInputandCaptionedOutput. They are both implementingCaptionedinterface AnimationContentnow isCaptionedInput
0.16.0 Bot API 4.3
LoginURLandLoginURLInlineKeyboardButtonhas been addedreplyMarkupfield was added to theCommonMessageobjects viaAbleToBeMarkedUpinterfaceSwitchInlineQueryCurrentChatInlineKeyboardButton#switchInlineQueryCurrentChatfield fixedInlineKeyboardButtonnow is sealed class and all its possible realisations are inside of its class fileString#asUsernamemethod renamed toString#toUsername- Several 
toChatIdextensions added 
0.15.0
- Old 
UpdatesPollerremoved (was deprecated) UpdatesPollerrenamed toKtorUpdatesPoller- Now 
KtorUpdatesPollerdo not use additional delay between requests and await answer from Telegram all timeout time - Added abstraction 
UpdatesPoller - Changed signature of the most count of 
startGettingOfUpdates:- They are not 
suspendfor now - They are return 
UpdatesPoller - They are using 
timeoutMillisinstead ofrequestsDelayMillis 
 - They are not 
 - Added 
CIOktor client engine as lightweight default engine for long-polling 
0.14.2 MediaGroups edit hotfixes
convertWithMediaGroupUpdatesextension added- All media group converting extensions are internal for now
 - Fixes according to updates in converting of updates to media group updates
 
0.14.1
- Replace 
UpdatesFilterandUpdatesPollerinto another package - Replace 
WebhookPrivateKeyConfig - Added 
FlowsUpdatesFilter UpdatesFilternow have additional callback for pollsStopPoll#replyMarkupnow is optional
0.14.0
- Now library have no default engine for both webhooks and requests executor. It is required for clients to set some default library
 - All proxy help methods was removed . They are will be replaced in separated project
 Ktorversion1.1.3->1.1.4- Requests results now always decoding as 
UTF-8 AbstractRequestCallFactorywas added with cache of methods urls to avoid memory leaks- Small refactoring of work with response in 
KtorRequestsExecutor - Kotlin version 
1.3.30->1.3.31 - Kotlin coroutines 
1.2.0->1.2.1 CommonForwardedMessagewas renamed toUserForwardedMessage- All forwarded messages are now just childs of 
ForwardedMessage:AnonymousForwardedMessage- for messages without forwarded infoUserForwardedMessage- for messages from users and groups (contains not message id)ForwardedFromChannelMessage- for messages from channels
 - Changed logic of forwarded messages preparing
 
0.13.0 Telegram Polls
- Type 
PollOptionandAnonymousPollOptionadded - Type 
Polladded - Type 
PollUpdateadded and implemented inRawUpdate. NowPollUpdatecan be retrieved fromRawUpdate - Type 
PollContentadded - now it can be a value ofContentMessage#content - Request 
SendPolladded andPollContent#createResendnow use it ByInlineMessageIdis deprecated (useInlineMessageActioninstead)ByMessageIdis deprecated (useMessageActioninstead)- Most part of requests which are working with identifiers of messages now implement 
MessageActiondirectly or by their parents StopPollimplemented- All current 
Chatabstractions are deprecated and rewritten as typealiases. UseChatabstractions fromcom.github.insanusmokrassar.TelegramBotAPI.types.chat.abstractspackage - Common Groups now may have pinned message
 is_memberfield added intoRestrictedChatMember- BREAK CHANGES Now 
ForwardedMessagescan beAnonymousForwardedMessageandPublicForwardedMessage. Old implementations now extendPublicForwardedMessage 
0.12.7 Hotfix version
- Now temporary all requests of input media will contains 
filefield 
0.12.6 Libraries updates
kotlinversion1.3.21->1.3.30kotlin coroutinesversion1.1.1->1.2.0kotlin serializationversion0.10.0->0.11.0ktorversion1.1.2->1.1.3- Added 
DeleteWebhookrequest - All default 
startGettingOfUpdates(in fact - methodstartofUpdatesPoller) are suspend and will try to delete webhook 
0.12.5 MediaContent improvements
- Now 
MediaGroupContentisMediaContent - All 
MedaContentnow have no generics and have basicTelegramMediaFilemedia field 
0.12.4
- Optimized preparing of media group in 
UpdatesPoller - Add 
CommonLimiter - Add 
MessageEntity#asHtmlSourceandString#toHtml - Add tools for work with html captions and texts
 MessageContentwhich using captions or text now have default parse modeHTMLParseModedue to issue with escaping of]in links titles- Added 
MarkdownandHTMLtype aliases which actually meansMarkdownParseModeandHTMLParseMode ChatIdnow have extensionlinkwhich will automatically create link liketg://user?id=<chatId>- Created a few of methods for all supported formats of text like bold, italic, links and others
 - Rewritten 
MessageEntitiesto use new formatting options 
0.12.3 Cleaning
- Refactor, optimizing and cleaning of code
 - Removed deprecated method 
T#toJsonWithoutNulls() - Renamed instances of 
MediaGroupMessages and refactored their interfaces.ChannelMediaGroupMessagewill not containuserfield (butCommonMediaGroupMessagewill have) - Now 
MediaCollectionContentisMediaContent(classes of this interface must choose best media for present out)PhotoContentnow choose biggest photo size from its collection asmedia
 - Fix in order of media group messages which was received by webhooks
 
0.12.2
- New in 
MediaGroupUpdate:- It is subtype of 
Updateand can be use as regular update with list of messages - Data now is list with 
MediaGroupMessage - Added field 
originswhich represent origin updates forMediaGroupMessage updateIdnow represent LAST id of origins updates
 - It is subtype of 
 UpdatesFilterand other objects now work withUpdateReceiver<Update>as common supertype for receivers.
0.12.1 Hotfix for media groups
- Added additional media group types (like 
MessageMediaGroupUpdate) - Fixed handling of media group updates in 
UpdatesFilter 
0.12.0 Webhooks
- Added 
DataRequestinterface which replaceDatainterface MultipartRequestImplnow useDataRequest- All requests which implements 
Datanow implementDataRequest - Added class 
SetWebhookand its factory - Added class 
UpdatesFilterwhich can help to filter updates by categories - Added function 
accumulateByKeywhich work as debounce for keys and send list of received values - Added webhooks functions and workaround for 
Reverse Proxymode - Added new type of updates 
MediaGroupUpdate, which can be received only from filters UpdatesFilternow use new type of updates for mediagroups- Add 
GetWebhookInforequest andWebhookInfotype - Replace updates types into separated place in types
 - Now default 
RequestExceptionwill contain plain answer from telegram - Added 
UnauthorizedException RequestExceptionnow is sealed- Rename 
ReplyMessageNotFoundtoReplyMessageNotFoundException - Added 
List<BaseMessageUpdate>#mediaGroupIdextension - Added utility 
T#asReference(): WeakReference(T)extension - Added 
UpdatesPollerclass which can be instantiated for manage updates polling - Separated execute extensions (now they are in file 
Executes) and poller creating extensions BaseMessageUpdate#toMediaGroupUpdate()will also check condition when update-receiver already isMediaGroupUpdate
0.11.0
- Kotlin 
1.3.11->1.3.21 - Kotlin coroutines 
1.1.0->1.1.1 - Kotlin serialization 
0.9.1->0.10.0 - Ktor 
1.1.1->1.1.2 
0.10.3
- Hotfix for username data class
 
0.10.2
- Fixes in 
Username- Now you can create username object using string which is not starting with 
@ - Now 
Usernamecorrectly comparing with strings, which are not starting with@ 
 - Now you can create username object using string which is not starting with 
 - Now most part of usernames in library have type 
Username - Fix 
replyMarkupinInlineQueryResultArticle 
0.10.1
- Change algorithm of 
executeUnsafe: now it use loop instead of recursive calling - Add additional 
startGettingUpdateswith better management of received updates for media groups - Now 
MediaGroupMessageisCommonMessagewithMediaGroupContentcontent - Added extensions 
replyTo,forwardedandchatforList<BaseMessageUpdated>for comfortable work with media groups lists - Fix 
parseModeofInputTextMessageContent 
0.10.0
- Most part of abstractions was replaced from 
requestsandtypeson more high level - Added abstraction 
CommonVenueData - Added abstraction 
CommonContactData - Added 
InputMessageContent - Update some types and requests according to abstractions replacing
 - Add all 
InlineQueryResult,InputMessageContentand other inline mode types - Fixes in edition of inline messages and their result types
 - Replace basic exception and add 
ReplyMessageNotFoundexception 
0.9.3
KtorRequestsExecutornow can use customJSONstring formatter (by default - non strict)ResponseParametersrenamed toResponse- Add 
RequestErrorsealed class and described in documentation known errors - Add 
ResponseParametersRawwhich can create error based on input parameters - Add 
parametersfield inResponseand remove useless fields fromResponse - Add 
leftToRetryparameter inRetryAfterError - Add handling of 
RetryAfterErrorinKtorRequestsExecutor 
0.9.2
RequestsExecutor#executeAsync(Request, CoroutineScope)now will returnDeferredfor cases when you need resultRequestsExecutor#executeUnsafewill automatically retry request if it was unsuccessful and retries > 0
0.9.1
- Updated built-in lengths restrictions
 - Apply restrictions of text limit for sending messages
 - Add 
RegularTextMessageEntitywhich is useful for representing regular text message entity - Add 
convertToFullMessageEntityListwhich create list of entities withRegularTextMessageEntityon places where must be regular text - Change signature of 
createMarkdownText: now it will return list of strings - Deprecate old signatures of 
createMarkdownText,toMarkdownCaption,toMarkdownText - Add 
ResendableContent#createResendswhich create adapted list of resends for content - Add 
TextContentowncreateResendsrealisation 
0.9.0
- Old extension 
OkHttpClient.Builder#useWithnow deprecated and must be replaced by the same incom.github.insanusmokrassar.TelegramBotAPI.bot.Ktorpackage - Replace 
ProxySettingsdata class insettingspackage, deprecate old link BaseRequestsExecutornow have no it's own scope- Add 
RequestLimiterand base realisations - Now 
KtorRequestsExecutorcan receive as one of parametersRequestLimiter(by default -EmptyLimiter) 
0.8.5
- Add extension 
String#toMarkdown - Fix of inserting of text when create Markdown-adapted text from text and text entities
 - Fix default realisation of MessageEntity#asMarkdownSource
 
0.8.4
- Added 
createMarkdownTextand extensions forCaptionedMediaContentandTextContent - Added 
ResendableContentand realize in different contents- Animation
 - Audio
 - Document
 - Photo
 - Sticker
 - Video
 - VideoNote
 - Voice
 
 MessageContentnow isResendableContent- Now all media sending factories which contains 
thumbhave defaultnullvalue ChatIdentifierclasses now aredataclasses- Now 
MediaGroupContentinterface containstoMediaGroupMemberInputMediamethod for easily creating mirror input media - Change signature of 
Update- Now 
Updateis untyped and data isAny 
 - Now 
 - Media groups now are separated type of updates and you can subscribe on that receiving directly
 - Now 
AdministratorChatMemberis interface andCreatorChatMemberimplement it 
0.8.3
- Now 
ForwardedMessagecontains nullablefrom 
0.8.2
- Add 
FromUserMessagewhich must be implemented in all messages realisations which haveuserfield - Add 
CommonMediaGroupMessagewhich in fact extension ofMediaGroupMessagewith implementation ofFromUserMessage CommonMessageImplnow implementingFromUserMessage
0.8.1
- Update 
MediaGroupMessageinterface - Add implementation of 
MediaGroupMessage - Add generating of 
MediaGroupMessageinRawMessage