mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2024-11-26 03:58:44 +00:00
12 KiB
12 KiB
TelegramBotAPI changelog
0.16.0 Bot API 4.3
LoginURL
andLoginURLInlineKeyboardButton
has been addedreplyMarkup
field was added to theCommonMessage
objects viaAbleToBeMarkedUp
interfaceSwitchInlineQueryCurrentChatInlineKeyboardButton#switchInlineQueryCurrentChat
field fixedInlineKeyboardButton
now is sealed class and all its possible realisations are inside of its class fileString#asUsername
method renamed toString#toUsername
- Several
toChatId
extensions added
0.15.0
- Old
UpdatesPoller
removed (was deprecated) UpdatesPoller
renamed toKtorUpdatesPoller
- Now
KtorUpdatesPoller
do 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
suspend
for now - They are return
UpdatesPoller
- They are using
timeoutMillis
instead ofrequestsDelayMillis
- They are not
- Added
CIO
ktor client engine as lightweight default engine for long-polling
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
Ktor
version1.1.3
->1.1.4
- Requests results now always decoding as
UTF-8
AbstractRequestCallFactory
was 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
CommonForwardedMessage
was 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.14.1
- Replace
UpdatesFilter
andUpdatesPoller
into another package - Replace
WebhookPrivateKeyConfig
- Added
FlowsUpdatesFilter
UpdatesFilter
now have additional callback for pollsStopPoll#replyMarkup
now is optional
0.14.2 MediaGroups edit hotfixes
convertWithMediaGroupUpdates
extension added- All media group converting extensions are internal for now
- Fixes according to updates in converting of updates to media group updates
0.13.0 Telegram Polls
- Type
PollOption
andAnonymousPollOption
added - Type
Poll
added - Type
PollUpdate
added and implemented inRawUpdate
. NowPollUpdate
can be retrieved fromRawUpdate
- Type
PollContent
added - now it can be a value ofContentMessage#content
- Request
SendPoll
added andPollContent#createResend
now use it ByInlineMessageId
is deprecated (useInlineMessageAction
instead)ByMessageId
is deprecated (useMessageAction
instead)- Most part of requests which are working with identifiers of messages now implement
MessageAction
directly or by their parents StopPoll
implemented- All current
Chat
abstractions are deprecated and rewritten as typealiases. UseChat
abstractions fromcom.github.insanusmokrassar.TelegramBotAPI.types.chat.abstracts
package - Common Groups now may have pinned message
is_member
field added intoRestrictedChatMember
- BREAK CHANGES Now
ForwardedMessages
can beAnonymousForwardedMessage
andPublicForwardedMessage
. Old implementations now extendPublicForwardedMessage
0.12.0 Webhooks
- Added
DataRequest
interface which replaceData
interface MultipartRequestImpl
now useDataRequest
- All requests which implements
Data
now implementDataRequest
- Added class
SetWebhook
and its factory - Added class
UpdatesFilter
which can help to filter updates by categories - Added function
accumulateByKey
which work as debounce for keys and send list of received values - Added webhooks functions and workaround for
Reverse Proxy
mode - Added new type of updates
MediaGroupUpdate
, which can be received only from filters UpdatesFilter
now use new type of updates for mediagroups- Add
GetWebhookInfo
request andWebhookInfo
type - Replace updates types into separated place in types
- Now default
RequestException
will contain plain answer from telegram - Added
UnauthorizedException
RequestException
now is sealed- Rename
ReplyMessageNotFound
toReplyMessageNotFoundException
- Added
List<BaseMessageUpdate>#mediaGroupId
extension - Added utility
T#asReference(): WeakReference(T)
extension - Added
UpdatesPoller
class 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.12.1 Hotfix for media groups
- Added additional media group types (like
MessageMediaGroupUpdate
) - Fixed handling of media group updates in
UpdatesFilter
0.12.2
- New in
MediaGroupUpdate
:- It is subtype of
Update
and can be use as regular update with list of messages - Data now is list with
MediaGroupMessage
- Added field
origins
which represent origin updates forMediaGroupMessage
updateId
now represent LAST id of origins updates
- It is subtype of
UpdatesFilter
and other objects now work withUpdateReceiver<Update>
as common supertype for receivers.
0.12.3 Cleaning
- Refactor, optimizing and cleaning of code
- Removed deprecated method
T#toJsonWithoutNulls()
- Renamed instances of
MediaGroupMessage
s and refactored their interfaces.ChannelMediaGroupMessage
will not containuser
field (butCommonMediaGroupMessage
will have) - Now
MediaCollectionContent
isMediaContent
(classes of this interface must choose best media for present out)PhotoContent
now choose biggest photo size from its collection asmedia
- Fix in order of media group messages which was received by webhooks
0.12.4
- Optimized preparing of media group in
UpdatesPoller
- Add
CommonLimiter
- Add
MessageEntity#asHtmlSource
andString#toHtml
- Add tools for work with html captions and texts
MessageContent
which using captions or text now have default parse modeHTMLParseMode
due to issue with escaping of]
in links titles- Added
Markdown
andHTML
type aliases which actually meansMarkdownParseMode
andHTMLParseMode
ChatId
now have extensionlink
which 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
MessageEntities
to use new formatting options
0.12.5 MediaContent
improvements
- Now
MediaGroupContent
isMediaContent
- All
MedaContent
now have no generics and have basicTelegramMediaFile
media field
0.12.6 Libraries updates
kotlin
version1.3.21
->1.3.30
kotlin coroutines
version1.1.1
->1.2.0
kotlin serialization
version0.10.0
->0.11.0
ktor
version1.1.2
->1.1.3
- Added
DeleteWebhook
request - All default
startGettingOfUpdates
(in fact - methodstart
ofUpdatesPoller
) are suspend and will try to delete webhook
0.12.7 Hotfix version
- Now temporary all requests of input media will contains
file
field
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.0
- Most part of abstractions was replaced from
requests
andtypes
on more high level - Added abstraction
CommonVenueData
- Added abstraction
CommonContactData
- Added
InputMessageContent
- Update some types and requests according to abstractions replacing
- Add all
InlineQueryResult
,InputMessageContent
and other inline mode types - Fixes in edition of inline messages and their result types
- Replace basic exception and add
ReplyMessageNotFound
exception
0.10.1
- Change algorithm of
executeUnsafe
: now it use loop instead of recursive calling - Add additional
startGettingUpdates
with better management of received updates for media groups - Now
MediaGroupMessage
isCommonMessage
withMediaGroupContent
content - Added extensions
replyTo
,forwarded
andchat
forList<BaseMessageUpdated>
for comfortable work with media groups lists - Fix
parseMode
ofInputTextMessageContent
0.10.2
- Fixes in
Username
- Now you can create username object using string which is not starting with
@
- Now
Username
correctly 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
replyMarkup
inInlineQueryResultArticle
0.10.3
- Hotfix for username data class
0.9.0
- Old extension
OkHttpClient.Builder#useWith
now deprecated and must be replaced by the same incom.github.insanusmokrassar.TelegramBotAPI.bot.Ktor
package - Replace
ProxySettings
data class insettings
package, deprecate old link BaseRequestsExecutor
now have no it's own scope- Add
RequestLimiter
and base realisations - Now
KtorRequestsExecutor
can receive as one of parametersRequestLimiter
(by default -EmptyLimiter
)
0.9.1
- Updated built-in lengths restrictions
- Apply restrictions of text limit for sending messages
- Add
RegularTextMessageEntity
which is useful for representing regular text message entity - Add
convertToFullMessageEntityList
which create list of entities withRegularTextMessageEntity
on 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#createResends
which create adapted list of resends for content - Add
TextContent
owncreateResends
realisation
0.9.2
RequestsExecutor#executeAsync(Request, CoroutineScope)
now will returnDeferred
for cases when you need resultRequestsExecutor#executeUnsafe
will automatically retry request if it was unsuccessful and retries > 0
0.9.3
KtorRequestsExecutor
now can use customJSON
string formatter (by default - non strict)ResponseParameters
renamed toResponse
- Add
RequestError
sealed class and described in documentation known errors - Add
ResponseParametersRaw
which can create error based on input parameters - Add
parameters
field inResponse
and remove useless fields fromResponse
- Add
leftToRetry
parameter inRetryAfterError
- Add handling of
RetryAfterError
inKtorRequestsExecutor
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
createMarkdownText
and extensions forCaptionedMediaContent
andTextContent
- Added
ResendableContent
and realize in different contents- Animation
- Audio
- Document
- Photo
- Sticker
- Video
- VideoNote
- Voice
MessageContent
now isResendableContent
- Now all media sending factories which contains
thumb
have defaultnull
value ChatIdentifier
classes now aredata
classes- Now
MediaGroupContent
interface containstoMediaGroupMemberInputMedia
method for easily creating mirror input media - Change signature of
Update
- Now
Update
is untyped and data isAny
- Now
- Media groups now are separated type of updates and you can subscribe on that receiving directly
- Now
AdministratorChatMember
is interface andCreatorChatMember
implement it
0.8.3
- Now
ForwardedMessage
contains nullablefrom
0.8.2
- Add
FromUserMessage
which must be implemented in all messages realisations which haveuser
field - Add
CommonMediaGroupMessage
which in fact extension ofMediaGroupMessage
with implementation ofFromUserMessage
CommonMessageImpl
now implementingFromUserMessage
0.8.1
- Update
MediaGroupMessage
interface - Add implementation of
MediaGroupMessage
- Add generating of
MediaGroupMessage
inRawMessage