Skip to content
This repository has been archived by the owner on Aug 29, 2021. It is now read-only.

Releases: robertwayne/dpymenus

v2.1.5

02 Jun 10:42
Compare
Choose a tag to compare

[2.1.5] - 2021-2-06

Fixes a security issue in the urllib dependency for versions prior to 1.26.5. Relevant to the API documentation build.

v2.1.4

19 May 20:58
2897713
Compare
Choose a tag to compare

[2.1.4] - 2021-19-05

Changed

  • Optimized how menus handle reaction events in different channel types. This will benefit menus in Guild Channels during high-latency situations, where a reaction remove event could add an extra request on changing a page (it would make an extra delete request on the removal).

v2.1.3

15 May 15:07
d349bea
Compare
Choose a tag to compare

[2.1.3] - 2021-15-05

Changed

  • Fixed a regression where buttons weren't being handled safely in DM's.
  • Fixed an uncommon occurrence where closing menus would raise an AttributeError instead of returning.

v2.1.2

14 May 20:43
bc3a719
Compare
Choose a tag to compare

[2.1.2] - 2021-14-05

Changed

  • Fixed a bug where PaginatedMenus did not check for an existing cancel page when closing (.set_cancel_page()).

v2.1.1

13 May 20:57
bc3a719
Compare
Choose a tag to compare

[2.1.0 - 2.1.1] - 2021-13-05

Changed

  • Fixed a bug where closing out certain menus would result in trying to remove reactions on None-types (see #54).
  • Fixed a bug with input logic flow on button menus that would result in raising InvalidArgument errors.
  • Fixed a bug where session force closing would raise an InvalidArgument error.
  • Updated several book instructions in regard to installing and running examples on Windows.
  • Removed an old dev dependency carry-over from the example runner (uvloop) that caused issues on Windows.

Added

  • Session settings for users can now be set. Please note the system isn't complete yet, but you can now keep
    multiple menus alive at the same time, or have the earliest one close if there are too many. Currently, only the
    user limit applies. Please see the book for more information.

v2.0.0

13 May 06:14
0f6ae81
Compare
Choose a tag to compare

[2.0.0] - 2021-13-05

Highlight Features

  • Templates: apply styles across entire menus by using the new templating system
  • Hooks: events can now be hooked into with your own functions
  • Settings: settings are now configurable via a configuration file
  • Documentation: the API docs have been reworked, a book has been added with lots of detailed information, and several
    new examples were added (additionally, all old examples were updated).

Added

  • Session handling has been completely rewritten. This technically will not be fully functional until v2.1, but from an
    external view, it will work the exact same (without some of the common annoyances from before).
  • The new Discord reply feature is now supported by menus. This can be configured via settings.
  • Menus now support setting an initial page with a new method: .set_initial_page().
  • Examples can now be run with a built-in bot.

Changed

  • Buttons are now throttled by default to avoid filling up rate limit buckets too quickly. This was a source of much
    confusion. This can be configured via settings.
  • Destination errors now fail gracefully.
  • Fixed many bugs and optimized various logic paths.

Removed

  • .allow_multisession() no longer exists. This is the default now (as per popular request), and can be configured
    via settings.
  • Support for Python 3.7

Internal

  • Poetry is now the package and build tool.
  • Black is now the formatter.
  • Almost all the internal code was rewritten resulting in better performance and/or cleaner code. Note that this could
    mean your menus will break, if you were using any internally marked methods (prefixed with an underscore).

v2.0.0a1

12 May 04:46
4360800
Compare
Choose a tag to compare
v2.0.0a1 Pre-release
Pre-release

Minor bug fixes and default behavior changes.

  • Reply functionality is now False by default.
  • Menu timeout can now be set globally within settings.
  • Fixed a bug with timeouts in PaginatedMenus.
  • Fixed the output on some error strings.
  • Updated the book to reflect new defaults.

v2.0.0a0

07 May 00:52
4360800
Compare
Choose a tag to compare
v2.0.0a0 Pre-release
Pre-release

[2.0.0a0] - 2021-05-06

This is a pre-release version of dpymenus. It contains several breaking changes, as well as lots of improvements, performance fixes, bug fixes, and new features. This is an ALPHA version, and is not feature complete yet. This version does not contain SourcePaginatedMenus or MultipleChoiceMenus, session restore features are not completely implemented, and documentation is not complete.

Major new features that are complete include: Event hooks, templates, and settings.

This version includes a new book (incomplete), which will contain everything about the library along with the examples and API docs.

If you are testing this version, please make sure you tag your issues appropriately.

Added

  • Various settings can now be configured via a pyproject.toml file in your root directory. This includes things such as button delays, reply functionality, session handling, cache limits, and warning disables.
    • Available settings can be found here.
  • Events in the menu lifecycle can now be hooked into with your own functions. See here and here.
  • Templates have been added. All menus now accept templates, which can be used to define styles across your menu for code simplification and DRY. The chapter on this feature is incomplete, but there is a working example in the examples/ directory.
  • Session handling has been completely reworked, though it is not complete yet. In general, the defaults should not cause friction between developers and the library anymore.
  • Added MANY new examples. Some are still not implemented.
  • Added support for the new Discord reply feature.
  • Menus can now have an initial page set via set_initial_page method. See relevant example.
  • Added an example runner so users can try out all the examples easily. See here.

Removed

  • allow_multisession is now the default and the method no longer exists. It has been replaced with explicit session settings.

Changed

  • Buttons are now throttled by default to avoid filling discord.py rate limit buckets. This is adjustable via the new settings.
  • Almost all internal methods were completely rewritten. If you used any internal calls in your code, it will likely break your bot.
  • Constants can now be overridden via the new settings.
  • Destination errors now fail gracefully.
  • Many bug fixes.
  • (Internal) Poetry is now used as the package & build manager.
  • (Internal) Black is now used as the formatter.

Migration instructions have not been written yet, but in general I don't expect much to be broken unless you were overriding internals.

v1.3.1

22 Jan 18:32
4360800
Compare
Choose a tag to compare

[1.3.1] - 2021-01-22

Changed

  • Fixed a bug where ButtonMenu did not have the timeout set. (#33)
  • Fixed a bug with Poll callback validation.
  • Refactored PaginatedMenus to now use the same timeout & close handling that all menu types do.

v1.3.0

10 Jan 05:00
6f2819a
Compare
Choose a tag to compare

[1.3.0] - 2021-01-09

Changed

  • Menus now only require a single page to successfully build. The original reasoning behind having this restriction was based on the fact that a menu is generally going to consist of many pages. However, there have bene several use-cases such as reloadable pages and dynamically generated menus, that may result in just a single page.
  • Fixed reloadable_data_example.py having a missing import.
  • Updated reloadable_data_example.py to reflect the page validation change and remove the workaround requiring an empty blank page.
  • Updated dependency on discord.py to 1.6.