Releases: MajMcCloud/TelegramBotFramework
Releases · MajMcCloud/TelegramBotFramework
4.0.2 AutoCleanForm Deadlock FIX
- fixes an issue in the cleanup method which can lead in specific circumstances to a dead lock
4.0.1 AutoCleanForm FIX
- adding MessageDeleted event to AutoCleanForm for catching messages getting deleted outside of AutoCleanForm
- added OnMessageDelete invoke to DeleteMessage in DeviceSession
4.0.0 Major Updates
- improved MessageCleanup on AutoCleanForm
- introduce NavigationController for linear navigation
- adding more examples to test project
- FIX: reply keyboard flicker on ButtonGrid fixed
- ButtonGrid: adding DeleteReplyMessage property
- works now with latest TelegramBot framework (>=16)
- adding CheckAllTags and UncheckAllTags method to TaggedButtonGrid
- change Localization class
- introducing a dynamic data source class (IDataSource)
- introducing a ButtonRow class for better managability
- replacing that List with ButtonRow object
- introducing ButtonFormDataSource with special methods for ButtonGrid controls
- updating ButtonGrid and refactoring of the Load/Action methods
- updating CheckButtonList and refactoring of the Load/Action methods
- updating TaggedButtonGrid and refactoring of the Load/Action methods
- adding example to the Test project
- adding MultiToggleButton
- API optimizations within DeviceSession
- adding DownloadDocument and DownloadRAWTextDocument into DataResult
- adding MessageDeleted event
- adding extensions for AddStartCommand, AddHelpCommand and AddSettingsCommand
- adding ChannelCreated case to GroupForm
- adding Tag property to ArrayPromptDialog and PromptDialog
- additional conversion checks on session deserilization
- allow basic methods of FormBase to become overridden
- adding Get/SetObject to custom session serialization
- FIX: Calendar picker localization and range checks (#NTDV 36fb40b)
- improved server error handling for 429 errors
- FIX: change userid type from int to long
- other small fixes
Updates and fixes for Modal Dialogs + Session Serialization
- adding additional checks to promptdialog
- adding additional checks to ConfirmDialog
- adding AutoCloseOnClick property, to close this modal form after button click
- Adding await keyword inside ModalDialog
- Add method to save session states directly without stopping the Bot
Bugfixes and new features.
- Fix for async event timings, button click got sometimes fired after Render event
- IgnoreState and SaveState addings for better session serialization
- adding IgnoreState to all ModalDialogs to prevent them get saved.
- adding SaveState to AutoCleanForm to keep state
- change OldMessages property of AutoCleanForm to public
- adding RemoveAllControls method to FormBase
- adding ChangedString variable for custom message to ToggleButton
- adding Unban method to DeviceSession
- Adding DynamicButton for Button with dynamic Text updates, For use, call the ButtonGrid.Updated() method
- adding method to create a ButtonForm duplicate and filter the single buttons, used for ButtonGrid
- adding filter functionality to ButtonGrid
- Simplifiy AutoCleanForm, improving serialization by replacing the message with just the ID
- Adding Enum deserialization, fixing issue in SessionBase where it does not correctly deserialize Enum's
Localizations , SystemSettings and BotCommands
- some class refactorings
- system call changed to bot command
- Bot commands are now able to be synced with BotFather UploadBotCommands or GetBotCommands/SetBotCommands of the client
- refactoring of BotBase constructors
- adding localizations and enabling english and german translations
- adding Paging to ButtonGrid
- changing SystemSettings to add more options
- adding Console handler to "AutoSave" Sessions on application exit (depends on SystemSettings)
- adding Get/SetSettings methods to BotBase for settings handling
- adding FallbackStateForm to have a "default form" after saving a form with the [IgnoreState] attribute
Session Serialization and better State management
- adding StateMachine and Session Serialization (example classes for JSON and XML)
- Bugfixes
- adding more Send methods (like SendVideo or SendTextFile) to DeviceSession
- improved Form management
- additions to ButtonGrid like HideKeyboardOnCleanup or DeletePreviousMessage
- refactoring all EventArgs structures to Args namespace
- renaming Results Datatypes to EventArgs
- adding Hidden method to ControlBase to get invoked before controls gets hidden
- adding IsFirstHandler to allow controls to skip Actions which has been invoked already (i.e. due to navigation)
- changed NavigateTo and OpenModal to virtual to allow override (i.e. to copy a userid which is store inside the form itself on navigation automatically)
- Constants update
- Markdown generator fixes and adding MarkDownV2 escape methods
- adding Edited method on FormBase and BotBase to work with user edites
- and much more
Groups, modal forms and more
- PromptDialog has been changed to ConfirmDialog
- PromptDialog is now (like in JavaScript) for text inputs
- adding OpenModal/CloseModal features to leave a form open and "just…" show a prompt and get back
- added new "ModalDialog" class to present modal forms
- updating examples for prompt dialog to use the modal feature
- adding better Keyboard support
- making Events property of FormBase public, for use in sub classes
- making ResultBase derive from Eventargs
- adding messagetype to messageresult
- addes SplitterForm to switch between "normal" chats and group chats
- adding useful tasks for groups
- adding base class for group management
Custom Exceptions and fixes
- added a custom exception for maximum length messages, saves to time to sent to API
- added a constants file, for have constants to work with
- catching maximum message length
- Added simple Markdown/HTML Generator
- added some forms to obsolete, cause their use is bad for ram management
New ToggleButton control ! (v1.5.1.0)
- Added ToggleButton as an easy switch control (i.e. for settings page)
- added control id, for easier separating of controls in one form
- added automatic event selection for specific controls, to not raise an event for other controls who has invoked it
- changed Action method
- added example