PyLav-Cogs - Audio cog alternative

Discord Name: Draper

GitHub Repository (Must be V3):

Description:
Note: The library will be usable with Red 3.5, but applying now to hold my place in the queue given the relatively large backlog - to use it not you must have a version of Red which uses Trusty Hybrid command PR or later (Add support for Hybrid commands in Red by TrustyJAID · Pull Request #5681 · Cog-Creators/Red-DiscordBot · GitHub)

The repo is a collection of audio-related cogs using the PyLav library instead of RLL.

1 Like

With the release of 3.5, we are returning to reviewing Cog Creator applications.

Since 3.5 will break every cog that was not specifically coded with it in mind, you need to ensure your repo is updated to be compatible with 3.5 prior to a review being possible. The relevant documentation you will need to update your repo is the following:
-discord.py 2.0 migration: https://discordpy.readthedocs.io/en/v2.2.3/migrating.html
-Red 3.5 breakages: https://docs.discord.red/en/stable/incompatible_changes/3.5.html#incompatible-changes-3-5

Once your repo is updated to support 3.5 on the default branch, please make a comment in this thread to confirm you are once again ready for review. We will only be reviewing repos which comment to confirm 3.5 support, but we will prioritize repos that have been in the queue for a longer period of time first.

If you wish to revoke your application, please comment accordingly so we can clean up the thread. If you need time to make changes, but are actively working on making updates, please also comment accordingly. Applications which do not see any activity within 1 month from today will be closed.

As per #1 the cogs are only supported in Red 3.5 since it has a hard dependency for d.py 2.0

Thank you for your patience.

Commit hash: b7a9620ced4f7e2b8e721c4f4dc0e4b9a5964052
Consider only bullets prefixed with :memo: to be required.

  • :memo: It seems like embed_links bot permissions are not actually checked by most commands or the wrapping logic. It exists in the permissions key of info.jsons, but that isn’t a documented key and has no effect.
  • :memo: You should add/remove context menu commands in the setup/teardown methods of your package, rather than in the __init__/cog_unload methods of your cog. The teardown method is executed if an error happens in setup, however cog_unload is not called if an error happens in __init__. This could lead to a situation where a context menu command is not properly cleaned up if an error happens during the cog loading process. An example is if a bot exceeds the limit for user context menu commands but not for message context menu command, audio would error after already adding the message command, and it would not properly clean it up when the load is rejected. (Docs)
  • Consider adding an on_error method to View subclasses to add logging output to your views if they encounter an error.