- Covered Tg API
10.0: guest-mode (answerGuestQuery,User.supportsGuestQueries,Message.guestQueryId/guestBotCallerUser/guestBotCallerChat,Update.guestMessage,SentGuestMessage); live photos (sendLivePhoto,LivePhoto,InputMedia.LivePhoto,PaidMedia.LivePhoto,InputPaidMedia.LivePhoto,Message.livePhoto,ExternalReplyInfo.livePhoto); reaction management (deleteMessageReaction,deleteAllMessageReactions,ChatPermissions.canReactToMessages,ChatMember.Restricted.canReactToMessages); poll media (PollMedia,InputPollMedia,InputPollOptionMedia,InputMediaSticker/Location/Venue,Poll.media/explanationMedia/membersOnly/countryCodes,PollOption.media,InputPollOption.media); managed-bot access (getManagedBotAccessSettings,setManagedBotAccessSettings,BotAccessSettings); plusgetUserPersonalChatMessagesandreturnBotsparameter ongetChatAdministrators. - Added sessions — to keep per-user/per-chat state with automatic incoming-message tracking, a pluggable storage backend (in-memory by default), a configurable key strategy, and
@SessionQualifier("name")to inject multiple independent sessions into the same handler. - Added
MessageKind— every message-bearing update now exposes amessageKindproperty (photo, video, text, service events, etc.) so you can route on the message kind instead of inspecting nullable fields yourself. - Added option to filter
@UpdateHandlerwithMessageKind. - Renamed
Identifier.String→Identifier.LiteralandIdentifier.Long→Identifier.Numericto avoid shadowing Kotlin built-ins.Identifier.from(...)keeps working unchanged; update direct references if you construct these types by name.
- Covered Tg API
9.6. - Fixed
@CommonHandlerduplicate issue #471. - Added catching exceptions in
Guardchecks. - Added
iconCustomEmojiIdtoInlineKeyboardMarkupBuilderbuttons and genericbuttonfunction.
- Added
skipPersisttoTransition.JumpToto give control over persisting. - Fixed parsing of parameters with default arg parser.
- Covered Tg API
9.5.
- Fixed
@Injectableresolving in generated code
- Added logging of activities registry context.
- Added an option to pass reason in
WizardStep. - Renamed
ImplicitFile.Str->ImplicitFile.FileId,ImplicitFile.InpFile->ImplicitFile.FileData, to avoid confusion. - Fixed the wrong constraint issue with
sendMediaGroup. - Covered Tg API
9.4
- Fixed error when using
WizardStateManagerindirectly.
- Changed resolvable context type from
AdditionalContexttoProcessingContext. - Added option to define custom context in
AdditionalContext. - Removed
InputChainin favor of newWizardHandler.
- Updated TgApi support to version
9.3. - Unified functional DSL and annotation-based declarations. Both approaches are now behaviorally identical and differ only in how functionality is described. To use the Functional DSL, simply call
bot.setFunctionality. - Refactored generated code to use more robust entities, providing a duplicate-free solution when the same function has multiple handlers.
- Introduced a new interceptor mechanism for update handling, replacing the previous middleware system.
- Removed built-in log level handling. A fallback via
logLevelinBotConfigurationremains for Logback users, and a custom logging factory can now be supplied via configuration. - Added support for multiple filters in
CommonHandler. - Added support for defining multiple update-type handlers.
- Introduced the
@WizardHandlerannotation and a new input chaining mechanism. - Renamed the KSP plugin to
ktnip(you need to update your build only if you use manual configuration). - Removed
botctx-redisandaidemodules due to low adoption.
- Fixed
Middlewareinterface and corrected behaviour.
- Fixed
classDataclearing in not only user-related changes. - Fixed the Regex options-related bug.
- Added
Chatas resolvable type similar toUser. - Added experimentally processing context, where can be accessed some processing related information.
Scope of context can be changed through config parameterprocessingCtxTargets. - Added support of middlewares, you can extend
Middlewareand add it through configmiddlewaresparameter.
- Try to fix broken release.
- Supported Telegram API 9.2.
- Added general
methodNameparameter toTgAction.
- Supported Telegram API 9.1.
- Removed
kotlinx-datetimefrom dependencies since required parts of it moved to stdlib.
- Fixed
NoSuchMethodErrorfromIrBodyin Kotlin2.2.0. - Bumped versions.
- Fir plugin (additional warnings) is removed in favor of KT-71188 (Unused return value checker)
- Aide is disabled by default
- Fixed parameter parsing for
@InputHandler.
- Supported Telegram API 9.0.
- Improve Aide checks.
- Fix callback query auto answer through plugin options.
- Improved method extensions from
ktgram-utilsmodule forTelegramBot, automatically chain send calls. - Added parameters parsing to
@InputHandlerto make it fit the general approach. - Fix Context picking through
@CtxProvider.
- Reorganized project structure (imports may be broken).
- Removed deprecated methods, sendAsync > sendReturning.
- Removed deprecated annotation parameters (rateLimits, guard, etc.) use separate annotations.
- Added
dicemethod withDiceEmojiparameter. - Fixed non-latin text parsing #346.
- Added new plugin parameter
autoAnswerCallbackto control auto-answering of callback queries by default. - Added compiler plugin that helps to autocomplete with
send()actions from function context parameters. - Changed
Actioninterface from chains toChainActionto distinguish betweenChainActionandAction.
- Supported Telegram API 8.3.
- Added
isAccessibleandaccessibleOrNull()toMaybeInaccessibleMessageto make easier handling. - Added
handleLoggingProviderparameter to plugin, to give option to disable handling of logging provider. - Added warnings when helper annotations used for inappropriate handlers.
- Supported Telegram API 8.2.
- Deprecated
sendAsyncmethods in favor ofsendReturning(they are the same).
- Added max handling retries to spring starter configuration.
- Fixed wrong name of
UpdateType.EDIT_MESSAGEtoEDITED_MESSAGE(thanks @KillWolfVlad) #319. - Fixed a bug when using a provider other than logback.
- Added
ktorJvmEngineparameter to plugin with option to choose ktor engine. - Added
onHandlerExceptionfor spring starter bot configuration, to cover exceptions thrown by update handler. - Added extension for
Stringfor escaping formatting,escapeFormatting(parseMode),escapeMarkdown,escapeMarkdownV2,escapeHTML.
- Move all sealed structure serialization to unified approach.
- Fixed
ChatMemberUpdatedserde issue.
- Supported Telegram API 8.1.
- Fixed
InlineQueryResultcached and usual results serde clashing issue. - Fixed
savePreparedInlineMessageoptions serde issue. - Added option to disable automatically cleaning class data through plugin's
autoCleanClassDataparameter.
- Supported Telegram API 8.0.
- Extend/add annotations for utility handler mechanisms (guard, rateLimits, argParser), add ability to tag a class to affect all methods within it.
- Added
autoAnswerto@CommandHandler.CallbackQuery, to answer callback queries automatically before handler. - Logging has been moved to the ktor logging utility (nothing much has changed, just removed some unnecessary dependencies).
WebApp.initDatacheckStringextension function moved toktgram-utilsmodule.
- Fixed KSP processor exception that was caused by new
KotlinPoetversion update.
- Supported Telegram API 7.11.
- Removed
onCommand(Regex)from FunctionalDSL sincecommonis already covering its case and the functionality was removed anyway and the feature remained by chance :) - Exposed updates flow
bot.update.flow[🔬]. - Little improvements to logging process.
- Added
linuxX64+mingwX64targets tobotctx-redismodule.
- Add missing
userandtextreferences forPurchasedPaidMediaUpdate.
- Supported Telegram API 7.10.
- Added option to auto clean state in
@InputChainas annotation parameter [🔬]. - Added option to set chaining strategy for
@InputChainlinks, to have more control over flow. - Added option to set custom argument parser for specific activities (
@CommandHandler,@CommonHandler). - Removed special deeplink case handling, now will need to use the basic mechanism (can be caught by ordered parameters).
- Added an option to define custom keys for stateful links.
- Fixed KSP applying flow in the plugin.
- Introduced a new plugin for more convenient library installation.
- Transitioned from
ChainStateManagertoStatefulLinkflow for improved convenience.
- Supported Telegram API 7.9.
- Added
ChainStateManager.getStateextension to retrieve state via a link.
- Fixed KSP generation artifact.
- Reorganized internal structure (mostly interfaces and some types), potentially breaking imports.
- Added experimental method
TelegramBot.getInstanceto obtain an instance throughClassManager. - Removed
EnvConfigLoaderfrom the main module due to low demand. - Added bot parameter to
spring-starter'sonInithook. - Exposed companion objects for
TelegramBotandTgUpdateHandlerfor static custom extensions. - Upgraded JVM target version from
11to17.
- Reworked base methods of
BotContextfor stronger typing. - Renamed
chatDatatoclassDatafor functional appropriateness. - Decoupled
BotContext(userData,classData) from the bot. New annotation@CtxProviderallows custom implementation. - Added operator extensions
getandsetforUserclass withuserData, enabling usage likeuser["key"] = "value".
- Added
exceptionHandlingStrategytoconfigurationfor more control over exception handling. - Added
throwExOnActionsFailuretoconfigurationto throw exceptions on API request failures. - Added
retryOnTooManyRequests()to httpClientconfiguration, offering aRetryStrategyfor API requests with status429.
- Updated method extensions to
TelegramBotfromktgram-utilsmodule, removingScpostfix and adding all variations. - Added experimental module (jvmOnly)
ktgram-botctx-redis, aRedisimplementation ofBotContext(userData,classData). - Added experimental module
ktgram-config-env, similar to the removedEnvConfigLoaderbut for all supported platforms. - Added experimental module
ktgram-config-toml, allowingTelegramBotconfiguration through a TOML file.
- Added
loggertoLoggingConfigurationfor anyLoggerinterface implementation. - Added
@InputChainstate manager for automatic state selection from updates. - Enhanced API validation across the project and corrected parameter typos.
- Supported Telegram API 7.8.
- Fixed
httpClientinitialization exception in the spring starter.
- Added
button(...)function for defining a button inanswerInlineQueryoptions. - Added
toWebhookResponsemethod to actions for webhook responses. - Added separate
bot.update.parse(...)for webhook responses. - Fixed incorrect request URL resolution with multiple bot instances.
- Enabled
httpClientsharing between instances in ktor starter; spring starter also useshttpClientif a bean is defined.
- Fixed
SuccessfulPaymentorderInfonullability bug.
- Changed a request URL forming scheme, allowing protocol setting and adding
isTestEnvparameter for testing environments. - Added
bot.update.runExceptionHandler {}for exception handling loops. - Added secondary constructors for
ImplicitFilewithStringandInputFileoptions. - Added
.sendReturning()method (similar tosendAsync()) for clearer flow. - Moved
user_idparameter to constructor in methods likecreateNewStickerSet, reflecting Telegram API more accurately. - Improved optional
thumbnailpassing for media actions (photo, document, etc.).
- Fixed
webapponEvent handling. - Changed
Updateusage toProcessedUpdatein processes (also inbot.handleUpdates(),bot.update.caughtExceptions). - Changed
replyKeyboardMarkup {}webApp right operand to URL string.
- Supported Telegram API 7.7.
- Supported Telegram API 7.6.
- Added
onInithook in spring-boot starter. - Fixed a rare issue with sealed structure serialization.
- Changed
ProcessedUpdatesource update parameter fromupdatetoorigin; the old one remains but is deprecated.
- Fixed
Stringnon-nullability issue in KSP processor. - Fixed
chatDataclearing behavior within the same class. - Changed
datetype from long toInstantinRevenueWithdrawalStateandStarTransaction. - Changed
TransactionPartner.UsertoTransactionPartner.UserPartnerto avoid confusion with baseUserresolution. - Added experimental
Collection<>.joinToInlineKeyboardfunction for basic pagination.
- Supported Telegram API 7.5.
- Fixed webapp
setParamsimmutability. - Fixed KSP
UpdateTyperesolution problem. - Fixed
photoHeightmissing inInlineQueryResult.
- Introduced
@CommonHandlerwith nested annotations@CommonHandler.Textand@CommonHandler.Regexfor rich configuration. - Removed
@RegexCommandHandler, replaced by@CommonHandler.Regex. - Changed guard interface from
FiltertoGuarddue to@CommonHandlerfiltering mechanics.
- Added new guard mechanism to
@CommandHandler(+@CallbackQuery) and@InputHandlerfor pre-processing checks. - Added
beforeActionandafterActionhooks toChainLink. #153 - Added
ksp2support; enable withksp.useKSP2=truein gradle.properties. - Fixed missing
chatIdinBusinessExtaction. - Fixed
TgUpdateHandlerlogging level mismatch. #149 - Fixed
replyKeyboardMarkupmissing option changes. #152 - Supported Telegram API 7.4.
- Supported Telegram API 7.3.
- Enabled custom
ChainLinkimplementation inInputChain. - Improved Spring starter configuration.
- Removed old
ListingBuildermethods for multiple elements; useaddAll(). - Added new builder for
sendPoll/polloptions.
- Fixed
EntitiesContextualBuilderbug.
- Fixed incorrect class manager in spring starter configuration.
- Enabled manual instance configuration.
- Fixed exception throwing bug in
ActionExt(Inline, Business). - Added parameter to
@RegexCommandHandlerfor regex options. - Introduced experimental Spring starter.
- Added
ktor-startermodule for quick webhook server setup. - Added
identifierparameter forTelegramBotinstance. - Changed
kotlinx-datetimeto transitive dependency due to its use in parameters. - Restored a missing inline mode action extension for
getGameHighScoresmethod. - Added
inputAutoRemovalparameter to configuration for preciseinputListenerflow control. - Added missing 7.2 API
BiometricManagerto webapps.
- Fixed redundant quotation in multipart requests.
- Restored
logbackas logger for JVM target. - Moved inline mode methods to extension interface from separate
InlinableAction. - Added
Anyupper bounds forAutowiringinterface to prevent incorrect behavior. - Supported Telegram API 7.2 changes.
- Fixed nullable type resolution issue in
Autowiringmechanics. - Changed default Ktor engine to java-http.
- Removed lazy structures causing performance issues.
- Fixed missing
userparameter in functional handlers.
- Fixed KSP processor for regex handlers. #106
- Fixed KSP processor
InputHandlerandRegexHandlerrate limits collection.
- Changed internal modifier for
context {}config section. #103 - Fixed annotation processing error in KSP processor for non-JVM modules.
- Added basic
ClassManagerfor Kotlin Native target.
- Transitioned a library to Kotlin Multiplatform with
jvm/js/nativegoals (experimental). - Replaced a serialization library with
kotlinx-serialization. - Updated logging utility.
- Added webapp module.
- Moved message-related methods to a separate package (imports may be broken).
- Fixed coroutines space overconsumption bug.
- Renamed internal components:
Action(annotated entities) is nowActivity, to avoid confusion with request-forming actions.ManualHandlingis nowFunctionalHandlingfor clarity.
- Added
onFailureshortcut method onDeferredfor consistency. - Logged
Activitylist during initialization. - Improved internal structure of
FunctionalHandling. - Enhanced coroutine flow in long polling mode; added request timeout in configuration (
updatesListenerblock). - Improved retry processing in a client to avoid unnecessary request repetition (e.g., status 400).
- Changed
messageThreadIdparameter type toIntfor better data representation. - Simplified base scope of commands to
UpdateType.Messagefor beginner friendliness.
- Removed unnecessary
bot.addAutowiringObjectmethod. - Enhanced
userData/chatDataget method with generic wrapping for safety. - Added
allowedUpdatesfor long-polling to receive special updates. - Fixed
giveawayMessageIdtype:InttoLong. - Added
replyParameters(messageId, block: ReplyParameters.() -> Unit)shortcut for modifying reply parameters. - Optimized internal type inference for actions.
- Added
sendmethod forChattoAction<>. - Renamed ambiguous
User/Chatnames:MessageOrigin(UsertoUserOrigin,ChattoChatOrigin)BotCommandScope.ChattoBotCommandScope.ChatScope
- Enhanced
linkPreviewOptions: IntroduceddisableWebPagePreview()andlinkPreviewOptions{}for lambda setting. - Improved sealed class structure for better accessibility to general parameters (
MaybeInaccessibleMessage,MessageOrigin,ChatBoostSource,ChatMember). - Removed
ReflectionHandlerasCodegenHandleris effective. - Separated updates collection and handling in long-polling.
- Restored
coroutinesdependency as transitive forsendAsyncmethods. - Added
getOrNull()method forDeferred<Response<T>>to reduce verbosity. - Set default names for media methods using
ByteArrayandFileto prevent incorrect API behavior. - Changed
botLogLeveltype to new proxy enumLogLvlsincelogbackis not transitive.
- Introduced
@CommandHandler.CallbackQueryshortcut annotation (or import without a prefix). - Changed all date fields representing timestamps to
Instantand periods toDuration. - Changed
caughtExceptionsevent structure fromPairtoFailedUpdate. - Changed
logbackandcoroutinesfrom API dependency to implementation-dependency (non-transitive). - Supported Telegram API 7.0.
- Fixed parsing annotations bug with unordered parameters.
- Enable an action collection at compile time.
- Enhanced support for input chains in annotation mode.
- Supported all command scopes.
- Allowed all
ProcessedUpdatesubclasses in new codegen update handler. - Improved signatures of methods like
copyMessage,forwardMessage,banChatSenderChat,unbanChatSenderChat.
- Added infix functions to
EntitiesBuilder(used incaption {}andentities {}). - Added infix function to builder used in
setMyCommandsfor easier command addition. - Changed methods like
answerInlineQuery,answerShippingQuery,poll,setPassportDataErrorsto useListingBuilderfor convenience. - Added
Usershortcuts whereuserIdis used in function-methods. - Added method shortcuts where the
send*keyword was omitted. - Refactored internal structure of actions and features.
- Added
InputChainingin annotation mode as an experimental feature. - Added
additionalHeadersfor requests inHttpConfiguration(useful for socks proxy authorization). - Added
Deffered<Response<T>>.foldResponse()function for async responses.
- Enabled proxy usage. See
httpClient{}section in bot configuration.
- Fixed missing media in an input handling process.
- Consolidated rate limit mechanism settings into
rateLimiter{}configuration; set rate exceeded action in configuration. - Added convenient shortcuts for
InputListenerandBotContextinterfaces. - Minor internal code optimizations and library version updates.
- Added
fromRequestandfromAttachmentMenufields toWriteAccessAllowed. - Added new admin privileges
canPostStories,canEditStories, andcanDeleteStoriestoChatMember.AdministratorandChatAdministratorRights. - Added
canPostStories,canEditStories, andcanDeleteStoriesparameters topromoteChatMember().
- Changed
AutowiringandClassManagerinterfaces to functional interfaces. - Added extensions to
ProcessedUpdateclass:userOrNullreturnsUserornull.getUserreturnsUseror throws NPE (nullable in rare cases; use with caution).
- Added shortcut functions to
Markupinterfaces forInlineKeyboardMarkup,ReplyKeyboardMarkup,ForceReply.
- Improved signatures of some sticker-set and chat-related methods.
- Reworked multipart actions logic and fixed related bugs.
- Aligned manual handling flow with annotation regarding regex processing.
- Fixed behavior when no action was found, and regex processing threw an exception if the message did not match.
- Enabled lib to catch actions in top-level and object functions.
- Fixed wrong action bugs in forum-related actions.
- Fixed
GetGameHighScores,GetMyShortDescriptionmethods. - Changed
Recipientclass toIdentifier. - Supported
6.8version of Telegram API:- Added
unpinAllGeneralForumTopicMessagesmethod. - Added
storyfield toMessage. - Added
emojiStatusExpirationDatetoChat. - Added
voterChattoPollAnswer.
- Added
- Added
RegexCommandHandlerannotation for regex commands. - Changed
MagicObjecttoAutowiringfor clarity. - Enabled passing
MessageUpdateandCallbackQueryUpdateinto function (in addition toProcessedUpdate).
- Updated dependencies versions.
- Minor internal logic improvements.
- Changed
switchPmTextandswitchPmParametertobuttonwithInlineQueryResultsButtoninanswerInlineQuery. - Added
webAppNamefield toWriteAccessAllowed. - Enabled setting different bot names for different user languages using
setMyName. - Added method
getMyNameto retrieve current bot name in a given language asBotName. - Added
switchInlineQueryChosenChatfield toInlineKeyboardButton. - Added
viaChatFolderInviteLinkfield toChatMemberUpdated.
- Removed deprecated
Bot*prefix from Context interfaces. #22 - Added default implementation for context interfaces based on
ConcurrentHashMap. #25 - Made
MagicObject.getfunction suspendable. #19 - Added scope parameter for manual commands. #20
- Added additional parsing for deeplink cases.
- Fixed
Voicewrong parameter type. - Fixed
ForceReplywrong parameter name.
- Swapped parameters in
chatActionmethod for better interface. - Exposed
Update.processUpdate()method. - Enhanced logging (better layer separation, error notification even in silent mode).
- Made
restrictSpacesInCommandsfalseby default. - Added missing
switchInlineQueryCurrentChatparameter toInlineKeyboardButton. - Fixed
ManualDsl.whenNotHandled. - Fixed
InputChaininglogic. - Refactored and improved command parsing logic.
- Reworked
ProcessedUpdateto a sealed structure for consistency. - Deprecated
Bot*prefix for contextual interfaces. - Added new
scopeparameter to@CommandHandlerannotation for isolated processing.
- Added
ConfigLoaderinterface and ability to initialize aTelegramBotinstance through it. - Lowered reflection library version due to action-finding issues in some environments.
- Added methods
setMyDescription,getMyDescription,setMyShortDescription,getMyShortDescription. - Added
emojiparameter tosendSticker. - Added sticker set related methods and
webpformat support. - Renamed
thumbtothumbnailwhere applicable.
- Added new contextual entities building.
- Renamed
CallbackParamannotation toParamMapping. - Reorganized types structure (some imports may be broken).
- Hid unnecessary elements (parameters, options, etc.) from the user interface.
- Added
KeyboardButtonRequestUserclass andrequestUserfield toKeyboardButton. - Added
KeyboardButtonRequestChatclass andrequestChatfield toKeyboardButton. - Added
UserShared,ChatSharedclasses anduserShared,chatSharedfields toMessage. - Replaced
canSendMediaMessagesinChatMemberRestrictedandChatPermissionswith separate fields for different media types. - Added
useIndependentChatPermissionsparameter torestrictChatMemberandsetChatPermissions. - Added
userChatIdfield toChatJoinRequest.
- Added
UpdateHandlerannotation for update events. - Improved command parsing mechanism for flexibility and configurability (see
commandParsingin bot configuration). - Updated dependencies:
Jackson:2.14.1->2.14.2Ktor:2.2.1->2.2.3Kotlin:1.8.0->1.8.10
- Fixed and improved
inputChainlogic.
- Added repeat parameter for
InputChain.breakIf().
- Added method for update processing behavior definition to avoid redefinition in webhook processing.
- Added text button method to
replyKeyboardButton()builder. - Fixed
isPersistentparameter passing inreplyKeyboardMarkup()builder. - Passed
Updatenext to exception inTelegramUpdateHandler.caughtExceptions.
- Added
isPersistentfield toReplyKeyboardMarkup. - Added
hasSpoilertophoto(),video(),animation()options andInputMedia.Photo,InputMedia.Video,InputMedia.Animation. Also addedhasMediaSpoilertoMessage. - Added
hasHiddenMembers,hasAggressiveAntiSpamEnabledparameters toChat. - Added
messageThreadIdparameter tochatAction(). - Added
forumTopicEdited,generalForumTopicHidden,generalForumTopicUnhidden,writeAccessAllowedtoMessage. - Added topic management methods.
- Deleted verbose
ReplyKeyboardMarkupconstructors. - Created
replyKeyboardMarkup()DSL for markup creation, similar to an inline keyboard version (see wiki for examples). - Introduced
TelegramUpdateHandler.caughtExceptionsfor centralized error handling. - Changed
invoice()(sendInvoice) andcreateInvoiceLink(createInvoiceLink) parameters to lambda for convenience. - Changed
createNewStickerSet()(createNewStickerSet) parameters to lambda. - Improved entity definition in
EntitiesBuilderby moving optional parameters to lambda. - Added generics to
BotContext(chatData,userData) interfaces. - Deleted private
Updateextensions for handling and createdTelegramUpdateHandler.parseAndHandle. - Added update listener configuration variables to
TelegramBot.botConfiguration-updatesListener(). - Moved
BotContext(chatData,userData) configuration toTelegramBot.botConfiguration-context(). - Updated dependencies:
Gradle:7.5.0->7.6.0Jackson:2.14.0->2.14.1Ktor:2.1.3->2.2.1Kotlin:1.7.21->1.8.0
- Fixed the media request bug where additional options violated the query.
- Refactored
MediaGroupaction, implementing separate processing for different attachment types (string, bytearray, file).
- Fixed annotation limits not working.
- Introduced a request limiting mechanism for both general and specific command/input requests in both modes ( annotations, manual).
- Replaced long data types with shorter aliases.
- Updated dependencies:
Logback:1.4.4->1.4.5Kotlin:1.7.20->1.7.21
- Fixed class initialization bug.
- Restored
inputListenerparameter to bot instance. - Added
HttpLogLevelproxy class for HTTP log management.
-
Added
messageThreadId,isTopicMessage,forumTopicCreated,forumTopicClosed,forumTopicReopenedtoMessage. -
Created related types
ForumTopicCreated,ForumTopicClosed,ForumTopicReopened. -
Added
isForum,activeUsernames,emojiStatusCustomEmojiIdtoChat. -
Added
canManageTopicstoPromoteChatMemberOptions,ChatAdministratorRights,ChatMember,ChatPermissions. -
Added
messageThreadIdtoOptionsCommoninterface and related options. -
Fixed
IllegalArgumentExceptioninClassManagerImpl. -
Improved memory handling by saving instances in
ClassManagerImpl. -
Made
ChatPermissionsmutable to fix logic issues. -
Handled commands with
@character, e.g.,/command@bot. -
Expanded and moved
TelegramBotinstance configuration toBotConfiguration(see docs). -
Updated dependencies:
Logback:1.4.0->1.4.4Jackson:2.13.4->2.14.0Ktor:2.1.0->2.1.3Kotlin:1.7.10->1.7.20
- Changed
ActionRecipientRefclass toRecipientand added universalfrommethod. - Fixed
forwardMessageandcopyMessagemethods; added requiredchatIdparameters.
- Processed actions from callback requests in manual mode.
- Updated dependencies:
Logback:1.2.11->1.4.0Jackson:2.13.3->2.13.4Ktor:2.0.3->2.1.0
- Fixed error response parameter name and optionality bug.
- Moved parameters from
Featureinterface toParametersBaseto avoid unnecessary entities. - Removed
isInlineparameter fromsendmethods; moved toInlineModeinterface for necessary methods. - Made
ManualHandlingBehaviourparameter lazy for optimization when only annotation processing is used. - Move an option saving mechanism to mapper for consistency.
- Optimized
MediaActionmechanism for verbosity reduction. - Moved samples to a separate repository.
- Removed
containMasksand addedstickerTypetoStickerSetandCreateNewStickerSet. - Added
CustomEmojitoEntityType. - Added
customEmojiIdtoMessageEntity. - Added
hasRestrictedVoiceAndVideoMessagestoChat. - Added new API method
getCustomEmojiStickers. - Fixed
InputMediabug with non-nullability ofthumbandparseModeinStringtype.
- Updated
Kotlin:1.6.21->1.7.10.Dokka:1.6.21->1.7.10.
- Updated
kotlinx-coroutines-core:1.6.2->1.6.4. - Changed
ManualHandlingDslinput context fromUpdatetoInputContext.
- Renamed annotations:
TelegramCommandtoCommandHandlerTelegramInputtoInputHandlerTelegramUnhandledtoUnprocessedHandlerTelegramParametertoCallbackParam
- Changed
bot.inputtobot.inputListener. - Renamed
BotWaitingInputtoBotInputListener. - Moved serde logic from Ktor setting to manual.
- Improved and reworked
ManualHandlingDslwith input chaining. - Introduced contexts to manual processing.
- Restored single update parsing method.
- Improved
Responsetype structure. - Fixed
List<>serialization error.
- Deleted deprecated methods.
- Added shortcuts for processing updates:
handleUpdates()(annotation handling) andhandleUpdates{}(manual handling). - Made action search path nullable for manual-only bot usage.
- Added
sendertoChatType. - Optimized
MediaActionmechanism. - Added
ImplicitFiletype to avoid double input parameter constructors. - Fixed optional parameters sending bug in media requests.
- Made coroutines dependency transitive.
- Fixed parameter name in
VideoNoteOptions.
- Added new API method
createInvoiceLink. - Renamed interfaces
IOptionsCommonandIFileOptiontoOptionsCommonandFileOptions. - Changed
fileSizetype fromInttoLongdue to API changes. - Added
joinToSendMessagesandjoinByRequestparameters toChat. - Added
premiumAnimationparameter toSticker. - Added
isPremiumandaddedToAttachmentMenuparameters toUser. - Added
secretTokenparameter toSetWebhookOptions.
- Added
parseUpdatemethod inTelegramUpdateHandler. - Added async methods to
BotChatData,BotUserData,BotWaitingInput.
- Fixed media request content-type bug.
- Fixed
MediaActionwrong recipient bug.
- Publishing process fixes.
- Fixed
captionEntitiesambiguity.
- Moved package from
com.github.vendelieutoeu.vendeli. - Changed target repository from
jitpacktomavenCentral. - Added trace logging at some points.
- Improved documentation.
- Added manual request processing with
ManualHandlingDsl. - Updated
Ktor:2.0.1->2.0.2.
- Added functionality for user-defined "magic" objects.
- Improved
SetMyCommandsmethod withBotCommandsBuilderDSL. - Added method for
MessageEntityaddition throughEntityBuilder. - Updated
reflections:0.9.12->0.10.2.
- Fixed serde process of sealed classes like
BotCommandScope,ChatMember,InlineQueryResult,InputMedia,MenuButton,PassportElementError.
- Changed commands/inputs search a path from
PackagetoString. - Optimized code and made reusable parts.
- Made parameters values nullable.
- Changed
bot.updateHandlertobot.updateto avoid tautology. - Changed
bot.inputHandlertobot.input.
- Initial public version.
Before this, the library was developed for personal use, starting with a few wrapper methods and expanding as needed.