televerse 1.11.1
televerse: ^1.11.1 copied to clipboard
Televerse lets you create your own efficient Telegram bots with ease in Dart. Supports latest Telegram Bot API - 6.9!
1.11.1 #
- π€ Telegram Bot API 6.9 (September 22, 2023)
- Examples are now moved to the Examples Repo
- Updated Example files.
1.11.0 #
- π€ Telegram Bot API 6.8 (August 18, 2023)
- Possibly breaking: The
PollAnswer.userproperty is now returns a nullableUserobject.
1.10.12 #
- Using
LoggerOptionsunknowingly caused the bot to crash. This is now fixed. - Thanks to @iamcosmin for raising #148.
- Fixed an issue with the Http client that caused the bot to crash when an exception is received from the Telegram Bot API.
- Thanks to @OttomanDeveloper for raising #151.
- Added
Televerse.onCommandmethod to listen to all commands - #150 by @Defuera.
1.10.10 #
- Added
LoggerOptionsclass to configure the logger. - Now the
Televerseclass accepts aLoggerOptionsobject to setup logging requests and responses to and from the Telegram Bot API. - Added the
APIMethodenum to represent the Telegram Bot API methods. - You can pass the List of
APIMethodto theLoggerOptionsclass to log only the specified methods. By default all methods will be logged.
1.10.9 #
- Added
Televerse.setNextStepmethod which can be used to set next step handler. - Catches
DioExceptionsand throws meaningful exceptions.
1.10.8 #
- β οΈ BREAKING CHANGES
- Added
BotErrorclass that will be passed to theTeleverse.onErrorhandler - β οΈ
Televerse.onErrorwill now only accept one parameter which is instance ofBotError - β οΈ Made the
InputFileconstructor private. UseInputFile.fromFileorInputFile.fromBytesorInputFile.fromUrlorInputFile.fromFileIdto create anInputFileinstance. - π Added the
InputFile.fromBytesconstructor to create anInputFileinstance from aUint8Listobject. - βοΈ Migrated to
dioinstead ofhttppackage. - Refactors & tets
1.10.7 #
- Fixed a minor formatting issue
1.10.6 #
- Fix #135 - Methods in
MessageContextfailed to work when message is in a General Topic of a Forum. - Improved error handling.
- All exceptions thrown inside handler methods will now be caught and passed to the
onErrormethod. - That is no more unexpected crashes even if you don't handle the exceptions inside the handler methods.
- Removed some unnecessary code.
- Updated long polling error handling.
1.10.4 #
1.10.3 #
- Introducing
Televerse Menu. - Added
InlineMenuandKeyboardMenuclasses to represent an inline menu and a keyboard menu respectively. - Added
bot.attachMenumethod to attach a menu to the bot. - Added
bot.removeMenumethod to remove a menu listeners from from the bot. - Usage of
Televerse Menuis demonstrated in /example/menu_bot.dart. - Fixed an issue with the
MessageContextandMessageMixin- #124 - Improved code quality.
- Fixed the incorrect type of
messagThreadIdparameter in multiple methods. - Updated
ChatMemberUpdatedContextclass to support bothchat_memberandmy_chat_memberupdates. - Added
bot.megetter to get the information about the bot. (Thanks to @GiuseppeFn) - Added
bot.getMemethod to get the information about the bot and set it to thebot.megetter.
1.10.2 #
1.10.1 #
- Fixed an issue with the
commandmethod that crashed the bot when setting up the listener. - Thanks to @GiuseppeFn for reporting this issue.
- Refactored code for better performance.
1.10.0 #
- Introducing the
Televerse Conversation! π - The conversation API lets you create straight forward conversations with the users.
- Added
Conversationclass to represent a conversation. - Added
waitForTextMessage,waitForPhotoMessage,waitForVideoMessage,waitForVoiceMessage,waitForDocumentMessage,waitForContactMessage,waitForLocationMessage,waitForVenueMessage,waitForPollMessage,waitForDiceMessage,waitForGameMessage,waitForStickerMessage,waitForVideoNoteMessage,waitToStartVideoChat,waitToEndVideoChat&waitForCallbackQuerymethods toConversationclass. - Added an example to demonstrate the usage of Televerse conversations in /example/conversation_example.dart.
- Added
MessageContext.argsgetter to get the arguments passed to the command. Thanks to @GiuseppeFn for the contribution. #115 - Removed
MessageContext.startParametergetter as it's no longer needed. - Refactored examples to make it easier to understand.
1.9.14 #
- Fixed a critical issue that caused bots to crash when an exception other than
TelegramExceptionis thrown. - The weird thing was that the
onErrormethod was able to catch the exception but it rethrows it again. - This is now fixed and the
onErrormethod will not rethrow the exception. - Thanks to @GiuseppeFn for raising this.
1.9.13 #
- Added a whole bunch of helper methods to listen to updates.
- Namely added:
onAudio,onDocument,onPhoto,onSticker,onVideo,onVideoNote,onVoice,onContact,onDice,onGame,onPollMessage,onVenue,onLocation,onLiveLocation,onNewChatTitle,onNewChatPhoto,onDeleteChatPhoto,onPinnedMessage,onUsrShared,onChatShared,whenVideoChatScheduled,whenVideoChatStarted,whenVideoChatEnded,onVideoChatParticipantsInvited,onForumTopicCreated,onForumTopicEdited,onForumTopicClosed,onForumTopicReopened,onWebAppData,onAnimation,onText,onCaption - All of these methods are available on
Televerseclass and can make it easier to listen to variousMessageupdates.
1.9.12 #
- Fixes the issue which caused the crash of bots when a
ChatJoinRequestupdate is received. - Thanks to @iamcosmin for taking effort to fix this issue. #109
- The
messageThreadIdparameter noww be defaulted to themessageThreadIdparameter in the incomingContextobject onreplymethod. - This is to make it easier to reply to a message when the discussion is on a Forum Topic. (Fixes #110)
1.9.11 #
1.9.10 #
- Fix #104
- When
onMessagelistener is attached it stopped all other listeners from working. This is now fixed. - Updated README (some typos).
1.9.9 #
- Fix #102
- Commands that tagged with
@botnamewill now be matched. - Minor changes on README & Session example.
1.9.8 #
- Televerse now can support handling updates passed to it as JSON data (without using a fetcher).
- This can be useful when you want to run bot on a serverless environment like AWS Lambda or Google Cloud Functions.
- Thanks to @rohitsangwan01 for the contribution. #99
onErrorcan now catch errors on the Long Polling.- Replaced all
ExceptionwithTelegramExceptionin the library. - Replaced the
Televerse.onlogic to an extension onTeleverseclass.
1.9.7 #
- Fix around
onErrormethod.
1.9.6 #
- Added
Televerse.onStopto listen when the bot is stopped. (Fix #95) - Added
delayDurationparameter toLongPollingclass to set the delay duration between each long polling request. - Moved all methods in
SessionFileExtensionandSessionsSavertoSessionandSessionsManagerclasses respectively. - This is to simplify the API and to make it easier to use.
- Updated
httpdependency to^1.0.0.
1.9.4 #
- Added
SessionFileExtensionclass to represent a file extension. - Added
SessionsSaverextension onSessionsManagerclass to save all sessions to a directory. - Updated /example/session_bot.dart file to reflect the changes.
- Minor breaking change: the initializer function now should accept a
intas parameter.
1.9.3 #
- Fixed an issue with sessions that caused crash when not initialized.
1.9.2 #
- Introducing the
Televerse Session! π - Televerse sessions are used to store data for chats.
- This can be used to store data for chats and to make the bot more interactive.
- Added an example to demonstrate the usage of Televerse sessions in
/example/session_bot.dart. - You should use the
Televerse.initSessionmethod to initialize the session.
1.9.1 #
- Added the
Televerse.onmethod! π - Removed the deprecation warning from the
Televerse.onmethod.
1.9.0 #
- BREAKING CHANGES! β οΈ
- Whole new
HandlerScopeclass is added to make it efficient handle updates. - All the methods in the
Televerseclass now uses theHandlerScopeclass to register handlers. - This is to fix the issue #84 and to make it efficient to handle updates.
- Completely removed the
Eventclass and related methods and getters. - The
onmethod is now Deprecated. Use the other methods in the library to listen for updates. - All the getters in the
Eventclass is now added to theTeleverseclass as methods. - Televerse now relies only on the
onUpdatestream to listen for updates. - And all the errors can now be handled using the
onErrormethod.
1.8.6 #
- Added
UserLinkclass to represent a Telegram user link. - Added
LinkTextclass. This can be used to send a link with a custom text on chats. - Fixed an issue with the
Televerse.commandthat caused to match unexpected commands.- This was because the
Televerse.commandmethod usedString.startsWithto match the command. - Thanks to GiuseppeFn for raising the Issue #85
- This was because the
- The
HttpExceptionclass is now renamed toTelegramException. - This is to include the
ResponseParametersobject in the exception hence to make it easier to handle and retry if needed. - When an exception happens in the long polling, if the error handler is set using
Televerse.onErrormethod this will now pauses the long polling till theonErrorhandler completes its execution.
1.8.5 #
- Added the
Deeplinkclass to represent a Telegram deeplink. - Made it easy to use Telegram deeplinks by adding
BotLink,GroupBotLink,ChannelBotLink,GameLink,SettingsLinksandShareLinkclasses. - Also added
PhoneNumberLink,MTProxyLink,Socks5LinkandUsernameLink.
1.8.4 #
- β¨ Simplified mentions.
- Added the new
UserMentionclass to represent a user mention. - Added an extension to
Userclass to convert it to aUserMentionobject. - Added
MessageContext.fromalias toMessage.fromproperty. - Added
CustomEmojiclass to represent a Telegram custom emoji.
1.8.3 #
- Added more helper methods on
Televerseclass to listen to updates. - Added
Televerse.onURLmethod to listen to messages that contain URLs. - Added
Televerse.onHashtagmethod to listen to messages that contain hashtags. - Added
Televerse.onMentionmethod to listen to messages that contain mentions. - Added
Televerse.onEmailmethod to listen to messages that contain email addresses. - Added
Televerse.onPhoneNumbermethod to listen to messages that contain phone numbers. - Improved the overall code quality.
- Added
Televerse.whenMentionedmethod to listen to messages that contain mentions of the bot.
1.8.2 #
- Added
PollContext,PollAnswerContextclasses to represent the context of apollandpoll_answerupdates. - Added
Televerse.pollmethod to listen topollupdates. - Added
Televerse.pollAnswermethod to listen topoll_answerupdates. - Now most of the Televerse methods return a
StreamSubscriptioninstead ofvoid. - This is to make it easier to cancel the subscription and increase the performance.
- Added
ChosenInlineResultContextclass to represent the context of achosen_inline_resultupdate andTeleverse.chosenInlineResultmethod to listen tochosen_inline_resultupdates. - Added
ChatJoinRequestContextclass to represent the context of achat_join_requestupdate andTeleverse.chatJoinRequestmethod to listen tochat_join_requestupdates. - Added
ShippingQueryContextclass to represent the context of ashipping_queryupdate andTeleverse.shippingQuerymethod to listen toshipping_queryupdates. - Added
PreCheckoutQueryContextclass to represent the context of apre_checkout_queryupdate andTeleverse.preCheckoutQuerymethod to listen topre_checkout_queryupdates.
1.8.1 #
- Added
ChatMemberUpdatedContextclass to represent the context of achat_memberandmy_chat_memberupdates. - Added
Televerse.chatMemberandTeleverse.myChatMembermethods to listen tochat_memberandmy_chat_memberupdates. - Hot fix: Fixed an issue with the
Eventclass that caused unexpected exceptions.
1.8.0 #
- ποΈ Televerse now supports listening to Local Bot API Server.
- Added
Televerse.localmethod to create a bot instance that listens to a local Bot API Server. - Added
RawAPI.localmethod that can be used to createRawAPIinstance that targets a local Bot API Server. - Added
LongPolling.allUpdatesmethod to listen to all updates. This is to simplify listening to all updates including thechat_memberupdates. - Updated
/example/test_bot.dartfile to reflect the changes.
1.7.2 #
- [BREAKING] β οΈ - The
chatgetter on theChatIDclass is now replaced to be a method of theIDclass, and renamed toget(). - This is to avoid confusion with the
chatparameter in theChatIDclass. - Also, now the
get()method is available on all theIDclasses -ChatID,SuperGroupIDandChannelID. - Fixed an issue that caused the Long Polling to fail.
- The issue was with the
Message.fromJsonmethod which was not able to parse theMessageobject when anewChatPhotowas present. - Thanks to @deargosep for reporting and fixing this issue.
1.7.1 #
- [BREAKING] β οΈ - The parameters
nameandlanguageCodeare made positional in thesetMyNamemethod and thegetMyNamemethod. - Improved documentation.
1.7.0 #
- π€ Bot API 6.7 is added!
- Read more here.
- [BREAKING] π¨π»βπ§ - The
answerInlineQuerywill no longer acceptswitchPmParameterorswitchPmTextparameters. - The example files are updated with dartdoc comments.
1.6.0 #
- βοΈ BREAKING - The
allowedUpdatesparameter in theLongPollingobject now accepts the list ofUpdateTypeinstead ofString - Added methods
requestChatandrequestUserinKeyboard - Added equality operator (
==) onID. - Added a test to check equality of two Chat IDs.
- Added missing implementation for
WebhookInfo.toJsonmethod - Added dartdoc comments for almost every bit of the library.
1.5.6 #
- Fixed an issue with
RawAPI.copyMessagemethod. - Updated the
Televerse.commandmethod to accept aStringorRegExpas thecommandparameter.
1.5.5 #
- Changed the
dataparameter to accept bothStringandRegExpusingPatterntype onTeleverse.callbackQuerymethod. - This can simplify the code when you want to listen to a callback query with a specific data.
- The test_bot.dart file in the example folder has been updated to reflect this change.
1.5.4 #
- Added new test cases in the
/testfolder. - There were some
thumbparameters even though they were changed tothumbnailin the API documentation. Fixed that. - Fixed an issue with sending media group using local files. More info on #56
- Completely removed the class
MessageOrBooleanas it was not needed. All methods that return either aMessageor aboolnow split into two methods. One forMessageand one forbool. - Updated the
ReplyKeyboardRemoveclass to reflect auto set theremove_keyboardparameter totruewhen theReplyKeyboardRemoveclass is created. - Similarly, updated the
ForceReplyclass to reflect auto set theforce_replyparameter totruewhen theForceReplyclass is created. - Fixed an issue with
addStickerToSetmethod which caused it to fail. More info on #57. - Tested all methods related to Stickers.
- Fixed an issue with
createNewStickerSetmethod which caused it to fail. More info on #58.
1.5.3 #
- Fixed an issue with
RawAPI.sendAudiomethod. - Added new test files in example folder.
1.5.2 #
- More fixes around the
RawAPIclass. - Added missing implementations for
RawAPI.getCustomEmojiStickersmethod.
1.5.1 #
- Fixed an issue with the
RawAPI.sendChatActionmethod. - More fixes around the RawAPI class.
1.5.0 #
- π€ Bot API 6.6 (March 9, 2021) π
- A bunch of changes as per the Bot API 6.6
1.4.7 #
- Added
Televerse.entitymethod to listen to entities in messages. - Improved code quality.
- Removed all the different StreamController classes and replaced them with a single
StreamController<Update>instance. - All the event streams are now based on the
onUpdatestream. - Added
Message.getEntityTextmethod to get the text of the entity. - Updated the televerse_example file to reflect the changes.
1.4.6 #
- Added
Message.isCommandgetter to check if the message is a command. - Added
Televerse.onErrormethod to listen to unexpected exceptions.
1.4.5 #
- A bunch of refactors on the
onmethod.
1.4.4 #
- Added
TeleverseEvent.commandto listen to all commands.
1.4.3 #
- Added helper methods on
Fileclass to get the file download URL, download URI, file bytes, and finally to download the file. - Added
File.downloadmethod to download the file. - Added
File.getDownloadUrlmethod to get the file download URL asString. - Added
File.getDownloadURImethod to get theUriobject of the file download URL. - Added
File.getBytesmethod to get the file bytes this returns aFuture<Uint8List>. - Added
File.downloadmethod to download the file. This returns aFuture<io.File>object. - The working example is available at examples/file_download.dart
1.4.2 #
- Fixed an issue with the webhook configuration.
- Made it easier to set a custom fetcher. You don't have to pass the
RawAPIinstance to theFetcherconstructor anymore.
1.4.1 #
- Minor formatting changes.
1.4.0 #
- π₯ This is breaking change.
- Added the
RawAPIclass to access the raw Telegram Bot API methods. - Added a
apigetter toTeleverseclass to access theRawAPIclass. - Now it's even easier to access and differentiate between the Telegram Bot API methods and Televerse methods.
- Added dartdoc comments to all the classes.
1.3.1 #
- Added shorthand methods to setup listners for
/start,/help,/settingscommands. - You can now use
Televerse.start,Televerse.help, andTeleverse.settingsto listen for these commands. - All these methods accepts a
MessageHandleras a parameter which is a type alias forFutureOr<void> Function(MessageContext). - Added
MessageHandler,CallbackQueryHandler, andInlineQueryHandlertype aliases.
1.3.0 #
- Telegram Bot API 6.5 (February 3, 2023)
- This includes addition of classes like
KeyboardButtonRequestUser,KeyboardButtonRequestChat,UserSharedandChatShared. - Added some missing implementations for Bot API 6.4
1.2.6 #
- Added
Televerse.instancegetter to get the last instance ofBotcreated. - Added
ChatID.chatgetter to get theChatobject from theChatIDobject. - Added optional
RegExp? regexparameter toTeleverse.commandmethod.
1.2.5 #
- Added
startParametergetter toMessageContextclass. This will be automatically set when the bot is started by a user clicking on a deep link such ast.me/MyBot?start=12345. - Added more tests.
- Whole lot of refactoring.
1.2.4 #
- New
InlineKeyboardclass is added. This can be very useful in creatingInlineKeyboardMarkup. - New
Keyboardclass to help with creatingReplyKeyboardMarkupeasily and quickly. - Updated
ReplyKeyboardMarkupandKeyboardButtonas per the API Documentation (some of the optional parameters were required in the previous version). - Fixed an issue that was causing
sendMessageto not work when used with any reply markup.
1.2.3 #
- Added documentation for all most all classes and Televerse things.
1.2.2 #
- Added
MessageMixinto supportMessageContext. - Added
replyWithPhoto,replyWithVideo,replyWithAudio,replyWithDocument,replyWithVideoNote,replyWithVoice,replyWithVenue,replyWithContact,replyWithPoll,replyWithDice,replyWithChatAction,replyWithGame,replyWithAnimation,replyWithSticker,editMessageText, anddeleteMessagemethods toMessageContext. - Added
ManagementMixinto supportMessageContext. - Added
banAuthor,banSenderChat,deleteChatPhoto,promoteAuthor,restrictAuthor,exportChatInviteLink,revokeChatInviteLink,pinChatMessage,unpinChatMessage,getChat,getChatAdministrators,getChatMember, andleaveChatonManagementMixin. - Both
MessageMixinandManagementMixinare now available onMessageContext. - Added
CallbackQueryMixinto supportCallbackQueryContext. CallbackQueryContextnow hasanswerandeditMessagemethods available.- Added
InlineQueryMixinto supportInlineQueryContext. InlineQueryContextnow hasanswer, andanswerWithArticlesmethods available.
1.2.1 #
- Fixed an issue with the
onmethod that it's not getting called on any filters. - Made official Televerse Wiki available at the GitHub repo.
1.2.0 #
- Added
TeleverseEventenum to make it easy to listen for particular events. - π₯ Added
onmethod accessible onTeleverseclass. This method can be used to listen for particular events as listed inTeleverseEventenum. - Edited method
Televerse.callbackQueryto acceptRegExp? regexas an optional parameter. This can be used to listen for callback queries that match the passed regex. - Updated RAW API to return
Messageinstead ofMessageContext. - Updated
Contextclass to have the associatedUpdateobject with it. - Update
MessageContextOrBooleanclass to beMessageOrBooleanin places a method sending eitherMessageorbool, such aseditMessageLiveLocationetc.
1.1.0 #
- Added a lot new methods to
Televerseclass:command- Can be used to listen for Messages that contain the passed commandtext- This is a very basic method, which can be used to listen to messages that contain particular text content in itcallbackQuery- Can be used to listen for callbackQuery updates.chatTypeandchatTypes- Can be used to register callbacks for messages received on particular chat types.filter- Filter is an advanced method that can be used to listen for messages that pass a given predicate condition.hears- One of the best picks. Users can pass a RegEx pattern and listen for messages that contain a match.
- Added
MessageContext.idto get the Chat ID easily - Improved examples
1.0.1 #
- Initial release
- We're live at Bot API 6.4
MessageContextclass added withreplymethod
0.0.1 #
- On development release. Completely new project.