An API wrapper for Discord written in Python.

Overview

Disnake Banner

disnake

Discord server invite PyPI version info PyPI supported Python versions Commit activity

A modern, easy to use, feature-rich, and async ready API wrapper for Discord written in Python.

About disnake

All the contributors and developers, associated with disnake, are trying their best to add new features to the library as soon as possible. We strive to revive the greatest Python wrapper for Discord API and keep it up to date.

Key Features

  • Modern Pythonic API using async and await.
  • Added features for ease of coding
  • Proper rate limit handling.
  • Optimised in both speed and memory.

Installing

Python 3.8 or higher is required

To install the library without full voice support, you can just run the following command:

# Linux/macOS
python3 -m pip install -U disnake

# Windows
py -3 -m pip install -U disnake

Otherwise to get voice support you should run the following command:

# Linux/macOS
python3 -m pip install -U "disnake[voice]"

# Windows
py -3 -m pip install -U disnake[voice]

To install the development version, do the following:

$ git clone https://github.com/DisnakeDev/disnake
$ cd disnake
$ python3 -m pip install -U .[voice]

Optional Packages

Please note that on Linux installing voice you must install the following packages via your favourite package manager (e.g. apt, dnf, etc) before running the above commands:

  • libffi-dev (or libffi-devel on some systems)
  • python-dev (e.g. python3.6-dev for Python 3.6)

Quick Example

import disnake

class MyClient(disnake.Client):
    async def on_ready(self):
        print('Logged on as', self.user)

    async def on_message(self, message):
        # don't respond to ourselves
        if message.author == self.user:
            return

        if message.content == 'ping':
            await message.channel.send('pong')

client = MyClient()
client.run('token')

Bot Example

import disnake
from disnake.ext import commands

bot = commands.Bot(command_prefix='>')

@bot.command()
async def ping(ctx):
    await ctx.send('pong')

bot.run('token')

Slash Commands Example

import disnake
from disnake.ext import commands

bot = commands.Bot(command_prefix='>', test_guilds=[12345])

@bot.slash_command()
async def ping(inter):
    await inter.response.send_message('pong')

bot.run('token')

Context Menus Example

import disnake
from disnake.ext import commands

bot = commands.Bot(command_prefix='>', test_guilds=[12345])

@bot.user_command()
async def avatar(inter):
    embed = disnake.Embed(title=str(inter.target))
    embed.set_image(url=inter.target.avatar.url)
    await inter.response.send_message(embed=embed)

bot.run('token')

You can find more examples in the examples directory.

Links

Comments
  • cogs

    cogs

    Summary

    The slash commands in cogs dont work. It used to work fine

    Reproduction Steps

    just loading the cogs

    Minimal Reproducible Code

    No response

    Expected Results

    shows the slash commands in the (test_guilds)

    Actual Results

    The commands work fine but slash commands dont even show up in the specific guild (test_guilds)

    Intents

    members

    System Information

    - Python v3.10.2-final
    - disnake v2.5.1-final
        - disnake pkg_resources: v2.5.1
    - aiohttp v3.7.4.post0
    - system info: Windows 10 10.0.19044
    

    Checklist

    • [X] I have searched the open issues for duplicates.
    • [X] I have shown the entire traceback, if possible.
    • [X] I have removed my token from display, if visible.

    Additional Context

    No response

    unconfirmed bug 
    opened by Saadelamali 18
  • New colour (invisible)

    New colour (invisible)

    Summary

    Adds a new colour (invisible) to disnake.Colour which blends in with the embed's colour

    Checklist

    • [ x] If code changes were made then they have been tested
      • [ ] I have updated the documentation to reflect the changes
      • [ ] I have formatted the code properly by running black .
    • [ ] This PR fixes an issue
    • [x ] This PR adds something new (e.g. new method or parameters)
    • [ ] This PR is a breaking change (e.g. methods or parameters removed/renamed)
    • [ ] This PR is not a code change (e.g. documentation, README, ...)
    t: enhancement 
    opened by Kraots 16
  • feat(client)!: Make kwargs for 'public api' Client classes explicit, disallow superfluous kwargs

    feat(client)!: Make kwargs for 'public api' Client classes explicit, disallow superfluous kwargs

    Summary

    This PR aims to improve two things. Firstly, passing 'incorrect'/unused kwargs to Client or any of its subclasses will now error. For example,

    bot = commands.Bot("!", sync_command_debug=True)
    

    would run fine in the current version of disnake but do nothing, as the actual kwarg is sync_commands_debug. With the changes in this PR, this would raise an error instead.

    Furthermore, disnake.Client, disnake.AutoShardedClient, disnake.Bot, dinake.AutoShardedBot, disnake.InteractionBot and disnake.AutoShardedInteractionBot now all have their __init__s set in such a way that all possible kwargs display (unless I missed any, though I don't believe I did).

    Checklist

    • [x] If code changes were made, then they have been tested
      • [ ] I have updated the documentation to reflect the changes
      • [x] I have formatted the code properly by running task lint or pre-commit run --all-files
    • [x] This PR fixes an issue
    • [ ] This PR adds something new (e.g. new method or parameters)
    • [x] This PR is a breaking change (e.g. methods or parameters removed/renamed)
    • [ ] This PR is not a code change (e.g. documentation, README, ...)
    t: enhancement breaking change 
    opened by Chromosomologist 15
  • button / select decorator support for Button & Select subclasses

    button / select decorator support for Button & Select subclasses

    Summary

    This PR adds support to button & select decorators for custom Button & Select subclasses

    Checklist

    • [x] If code changes were made, then they have been tested
      • [x] I have updated the documentation to reflect the changes
      • [x] I have formatted the code properly by running task lint or pre-commit run --all-files
    • [ ] This PR fixes an issue
    • [x] This PR adds something new (e.g. new method or parameters)
    • [ ] This PR is a breaking change (e.g. methods or parameters removed/renamed)
    • [ ] This PR is not a code change (e.g. documentation, README, ...)
    t: enhancement p: medium 
    opened by Enegg 14
  • feat: pass deserialization exceptions in gateway event handler to loop exception handler

    feat: pass deserialization exceptions in gateway event handler to loop exception handler

    Summary

    Changes DiscordWebSocket.received_message to pass payload deserialization exceptions to the running loop's exception handler instead of letting them propagate up and crash the shard/bot.

    This prevents bots from just outright crashing if an event couldn't be parsed; Ideally, deserializing the payloads should always work, but history has shown that unannounced API changes unfortunately happen from time to time (even if accidental, like text-in-voice in December :^) ), and the library can't always perfectly account for that.

    note that this is really more of a proposal, feel free to suggest alternative implementations or ideas

    Checklist

    • [x] If code changes were made, then they have been tested
      • [ ] I have updated the documentation to reflect the changes
      • [x] I have formatted the code properly by running task lint
      • [x] I have type-checked the code by running task pyright
    • [ ] This PR fixes an issue
    • [x] This PR adds something new (e.g. new method or parameters)
    • [x] This PR is a breaking change (e.g. methods or parameters removed/renamed)
    • [ ] This PR is not a code change (e.g. documentation, README, ...)
    t: enhancement breaking change 
    opened by shiftinv 13
  • docs: clarify `disnake.Embed` re-using `disnake.File` objects when editing messages

    docs: clarify `disnake.Embed` re-using `disnake.File` objects when editing messages

    Summary

    • Closes GH-748

    Checklist

    • [ ] If code changes were made, then they have been tested
      • [ ] I have updated the documentation to reflect the changes
      • [ ] I have formatted the code properly by running task lint
      • [ ] I have type-checked the code by running task pyright
    • [ ] This PR fixes an issue
    • [ ] This PR adds something new (e.g. new method or parameters)
    • [ ] This PR is a breaking change (e.g. methods or parameters removed/renamed)
    • [x] This PR is not a code change (e.g. documentation, README, ...)
    t: documentation 
    opened by Snipy7374 10
  • docs: split changelog to current and legacy versions

    docs: split changelog to current and legacy versions

    Summary

    Unlinks the v1.0 migration page from the main index (keeping the only reference in the changelog), and moves the 0.x/1.x changelogs to a separate page.

    Checklist

    • [ ] If code changes were made, then they have been tested
      • [ ] I have updated the documentation to reflect the changes
      • [ ] I have formatted the code properly by running task lint
      • [ ] I have type-checked the code by running task pyright
    • [ ] This PR fixes an issue
    • [ ] This PR adds something new (e.g. new method or parameters)
    • [ ] This PR is a breaking change (e.g. methods or parameters removed/renamed)
    • [x] This PR is not a code change (e.g. documentation, README, ...)
    t: documentation p: low 
    opened by shiftinv 10
  • feat: implement `clean_history_duration` parameter for bans

    feat: implement `clean_history_duration` parameter for bans

    Summary

    Implements delete_message_seconds through a new clean_history_duration parameter, while keeping backward compatibility with delete_message_days.

    ~~It doesn't seem like deleting a few minutes' worth of messages works as expected, which could indicate that the lower bound isn't actually 0. Might be a bug though, see the referenced api-docs issue.~~

    Resolves #657.

    Checklist

    • [x] If code changes were made, then they have been tested
      • [x] I have updated the documentation to reflect the changes
      • [x] I have formatted the code properly by running task lint
      • [x] I have type-checked the code by running task pyright
    • [ ] This PR fixes an issue
    • [x] This PR adds something new (e.g. new method or parameters)
    • [ ] This PR is a breaking change (e.g. methods or parameters removed/renamed)
    • [ ] This PR is not a code change (e.g. documentation, README, ...)
    t: enhancement t: api support 
    opened by shiftinv 10
  • feat: auto moderation

    feat: auto moderation

    Summary

    Implements routes/objects/events related to the new auto moderation feature. Still a bunch of TODOs, particularly regarding naming (would love some input on that).

    ref: https://github.com/discord/discord-api-docs/pull/4860

    Full list of changes:

    • updated AuditLogEntry and AuditLogDiff
    • added new AuditLogAction enum values
    • new types: auto_moderation.AutoModAction, .AutoModTriggerMetadata, .AutoModRule, .AutoModActionExecution
    • new types: enums.AutoModTriggerType, .AutoModEventType, .AutoModActionType
    • new type: flags.AutoModKeywordPresets (including new flags.ListBaseFlags)
    • two new intents (+ one alias for both)
    • new methods: Guild.fetch_automod_rule, Guild.fetch_automod_rules, .create_automod_rule
    • gateway events: on_auto_moderation_rule_create, on_auto_moderation_rule_update, on_auto_moderation_rule_delete, on_auto_moderation_action_execution
    • guild feature: AUTO_MODERATION
    • ~~probably new bugs~~
    • documentation for everything

    blocked by

    • #532
    • #540, currently included through https://github.com/DisnakeDev/disnake/pull/530/commits/db5e3d77dd354ad15ff0a29892b51cf751a7c3bb

    Checklist

    • [x] If code changes were made, then they have been tested
      • [x] I have updated the documentation to reflect the changes
      • [x] I have formatted the code properly by running task lint
      • [x] I have type-checked the code by running task pyright
    • [ ] This PR fixes an issue
    • [x] This PR adds something new (e.g. new method or parameters)
    • [ ] This PR is a breaking change (e.g. methods or parameters removed/renamed)
    • [ ] This PR is not a code change (e.g. documentation, README, ...)
    t: enhancement t: api support p: high 
    opened by shiftinv 10
  • Add attachment descriptions

    Add attachment descriptions

    Summary

    This implements attachment descriptions; they are already available, but gated behind an experiment in clients (2021-09_inline_attachment_uploads).

    There is a change in the attachment handling, which would've generally resulted in previous attachments not being kept by default on edit anymore, if new files are also being uploaded. This would affect types that don't contain information about existing attachments, i.e. all types except Message and InteractionMessage. To fix this, the original message will be fetched for those types and existing attachments will carry over from that, if new files are being added and the developer didn't explicitly provide the attachments kwarg.

    Providing existing and new attachments in the attachments list like this when new files are being uploaded will be required for API v10 at the latest. API v8 itself doesn't require it yet, however it is already needed when using attachment descriptions.

    TODO

    • ~~[ ] Check if attachment:// filenames in embeds keep working as intended~~

    Checklist

    • [x] If code changes were made then they have been tested.
      • [x] I have updated the documentation to reflect the changes.
    • [ ] This PR fixes an issue.
    • [x] This PR adds something new (e.g. new method or parameters).
    • [ ] This PR is a breaking change (e.g. methods or parameters removed/renamed)
    • [ ] This PR is not a code change (e.g. documentation, README, ...)
    t: enhancement 
    opened by shiftinv 10
  • fix(misc): ignore `lib/` created by virtualenv

    fix(misc): ignore `lib/` created by virtualenv

    Summary

    virtualenv creates lib/ folder, which is not ignored by Git yet it's not included in MANIFEST.in, making check-manifest complain. This PR updates .gitignore to ignore lib/ folder, too.

    Checklist

    • [x] If code changes were made, then they have been tested
      • [ ] I have updated the documentation to reflect the changes
      • [ ] I have formatted the code properly by running task lint
      • [ ] I have type-checked the code by running task pyright
    • [ ] This PR fixes an issue
    • [ ] This PR adds something new (e.g. new method or parameters)
    • [ ] This PR is a breaking change (e.g. methods or parameters removed/renamed)
    • [ ] This PR is not a code change (e.g. documentation, README, ...)
    t: meta skip news 
    opened by ItsAleph 9
  • adds support for events enums

    adds support for events enums

    Summary

    • Closes GH-895

    Any suggestion or help is appreciated about events enums groups and for the wording in the changelog entry.


    Note:

    • I still need to document the new enumerations on api.rst, though i was thinking that we could maybe automate something to use the already existing docstrings

    Checklist

    • [x] If code changes were made, then they have been tested
      • [ ] I have updated the documentation to reflect the changes
      • [x] I have formatted the code properly by running task lint
      • [x] I have type-checked the code by running task pyright
    • [ ] This PR fixes an issue
    • [x] This PR adds something new (e.g. new method or parameters)
    • [ ] This PR is a breaking change (e.g. methods or parameters removed/renamed)
    • [ ] This PR is not a code change (e.g. documentation, README, ...)
    t: enhancement s: in progress s: needs review t: refactor/typing/lint 
    opened by Snipy7374 0
  • Add feature: new property `snowflake` to `Hashable` class.

    Add feature: new property `snowflake` to `Hashable` class.

    Summary

    Checklist

    • [x] If code changes were made, then they have been tested
      • [x] I have updated the documentation to reflect the changes
      • [x] I have formatted the code properly by running task lint
      • [x] I have type-checked the code by running task pyright
    • [ ] This PR fixes an issue
    • [x] This PR adds something new (e.g. new method or parameters)
    • [ ] This PR is a breaking change (e.g. methods or parameters removed/renamed)
    • [ ] This PR is not a code change (e.g. documentation, README, ...)
    t: enhancement s: needs review 
    opened by yatochka-dev 0
  • `Cog.add_command`, `.remove_command`, etc.

    `Cog.add_command`, `.remove_command`, etc.

    Summary

    see title.

    What is the feature request for?

    disnake.ext.commands

    The Problem

    There's currently no proper way of dynamically adding/removing commands from cogs, other than directly messing around with internal fields like __cog_commands__.

    The Ideal Solution

    New methods like Cog.add_command, .remove_command, as well as complementary ones for slash/user/message application commands.

    The Current Solution

    modifying __cog_commands__, which isn't documented

    Additional Context

    suggested here: https://canary.discord.com/channels/808030843078836254/913779868985090089/1058180711095484416

    feature request 
    opened by shiftinv 0
  • feat(Guild): add support for raid alerts

    feat(Guild): add support for raid alerts

    Summary

    https://github.com/discord/discord-api-docs/pull/5778

    Checklist

    • [x] If code changes were made, then they have been tested
      • [x] I have updated the documentation to reflect the changes
      • [x] I have formatted the code properly by running task lint
      • [x] I have type-checked the code by running task pyright
    • [ ] This PR fixes an issue
    • [x] This PR adds something new (e.g. new method or parameters)
    • [ ] This PR is a breaking change (e.g. methods or parameters removed/renamed)
    • [ ] This PR is not a code change (e.g. documentation, README, ...)
    t: enhancement t: api support s: needs review s: waiting for api/docs 
    opened by Victorsitou 0
  • feat(AutoMod): add support for `mention_raid_protection_enabled`

    feat(AutoMod): add support for `mention_raid_protection_enabled`

    Summary

    Implements https://github.com/discord/discord-api-docs/pull/5778.

    Checklist

    • [x] If code changes were made, then they have been tested
      • [x] I have updated the documentation to reflect the changes
      • [x] I have formatted the code properly by running task lint
      • [x] I have type-checked the code by running task pyright
    • [ ] This PR fixes an issue
    • [x] This PR adds something new (e.g. new method or parameters)
    • [ ] This PR is a breaking change (e.g. methods or parameters removed/renamed)
    • [ ] This PR is not a code change (e.g. documentation, README, ...)
    t: enhancement t: api support s: needs review s: waiting for api/docs 
    opened by Victorsitou 0
  • Support for localizations of various text fields

    Support for localizations of various text fields

    Summary

    Add support for the existing localizations protocol to be easily used anywhere user visible text appears.

    What is the feature request for?

    The core library

    The Problem

    Currently, the library only provides means to handle localizations automatically for descriptions and parameters of application commands. The localizations protocol is exposed as a part of the API, but the use of it is cumbersome. Additionally, it does not natively support strings where substitution/formatting with dynamic values needs to occur.

    The Ideal Solution

    Allow for the use of Localized anywhere text is rendered on the user's end: content param of .send methods; Embed's title, description and fields; labels, placeholders etc. of components.

    await inter.response.send_message(Localized("Example text.", key="EXAMPLE_RESPONSE"))
    

    As an extension of current functionality, a way to provide values for a supposed template string could be added, since unlike app command descriptions and params, many strings are bound to have dynamic values. This could be done possibly by adding a keyword to Localized's constructor, or a method like .format:

    message = Localized("Example template: {}.", key="EXAMPLE_RESPONSE", values=(1,)) # tuple or dict
    # or
    message = Localized("Example template: {}.", key="EXAMPLE_RESPONSE").format(1)
    await inter.response.send_message(message)
    

    The Current Solution

    One has to write boilerplate code like this

    locs = inter.bot.i18n.get("EXAMPLE_RESPONSE") or {}
    await inter.response.send_message(locs.get(str(inter.locale), "Example text."))
    

    or write some sort of wrapper function, which would always need to be passed the i18n store, as well as the current locale. The upside of this way is it natively supports template strings, since we directly access said string and can format it afterwards.

    Additional Context

    No response

    feature request 
    opened by Enegg 0
Releases(v2.7.0)
  • v2.7.0(Nov 1, 2022)

    What's Changed

    This release adds support for python 3.11 and the new selects released by Discord.

    See the docs for how to use these new selects.

    Breaking Changes

    • Properly document that Message.system_content may return None. While this is documented as a breaking change, this function always could return None if the message type was not recognised. (#766)
    • Rename InteractionDataResolved.get() to get_by_id(). (#814)

    Deprecations

    New Features

    Bug Fixes

    • Add the missing attributes for PermissionOverwrite: use_application_commands and use_embedded_activities. (#777)
    • Ensure that embed fields are copied properly by Embed.copy() and that the copied embed is completely separate from the original one. (#792)
    • Fix an issue with Member.ban() erroring when the delete_message_days parameter was provided. (#810)
    • Try to get threads used in interactions (like threads in command arguments) from the cache first, before creating a new instance. (#814)
    • Fix creation of threads in text channels without Permissions.manage_threads. (#818)
    • Fix off-by-one error in AutoModKeywordPresets values. (#820)
    • Update event loop handling to avoid warnings when running on Python 3.11. (#827)
    • [ext.commands] Fix a case where optional variadic arguments could have infinite loops in parsing depending on the user input. (#825)

    Documentation

    • Speed up page load by changing hoverxref tooltips to be lazily loaded. (#393)
    • Remove reference to the v1.0 migration guide from the main index page, and move legacy changelogs to a separate page. (#697)
    • Update sphinx from version 5.1 to 5.3. (#764, #821)Add a note warning mentioning that using a disnake.File object as file kwarg makes a disnake.Embed not reusable. (#786)
    • Update broken Discord API Docs links, add :ddocs: role for easily creating links to the API documentation. (#793)
    • Add a custom 404 page for when the navigated page does not exist. (#797)

    Miscellaneous

    • Increase the upper bound for the aiohttp dependency from <3.9 to <4. (#789)
    • Use importlib.metadata instead of the deprecated pkg_resources in the cli for displaying the version. (#791)
    • [ext.commands] Add missing py.typed marker. (#784)
    • [ext.tasks] Add missing py.typed marker. (#784)

    Full changelog: https://docs.disnake.dev/en/stable/whats_new.html#v2-7-0 Git history: https://github.com/DisnakeDev/disnake/compare/v2.6.0...v2.7.0

    Source code(tar.gz)
    Source code(zip)
    disnake-2.7.0-py3-none-any.whl(1015.07 KB)
    disnake-2.7.0.tar.gz(951.05 KB)
  • v2.6.2(Nov 1, 2022)

    Bug Fixes


    Full changelog: https://docs.disnake.dev/en/v2.6.2/whats_new.html#v2-6-2 Git history: https://github.com/DisnakeDev/disnake/compare/v2.6.1...v2.6.2

    Source code(tar.gz)
    Source code(zip)
    disnake-2.6.2-py3-none-any.whl(997.54 KB)
    disnake-2.6.2.tar.gz(941.05 KB)
  • v2.6.1(Oct 20, 2022)

    Bug Fixes

    • Ensure that embed fields are copied properly by Embed.copy() and that the copied embed is completely separate from the original one. (#792)
    • Fix an issue with Member.ban() erroring when the delete_message_days parameter was provided. (#810)

    Full changelog: https://docs.disnake.dev/en/v2.6.1/whats_new.html#v2-6-1 Git history: https://github.com/DisnakeDev/disnake/compare/v2.6.0...v2.6.1

    Source code(tar.gz)
    Source code(zip)
  • v2.6.0(Sep 29, 2022)

    This release adds support for new forum channel features (like tags) as well as auto moderation, among other things. See below for more.

    Also note the breaking changes listed below, which may require additional code changes.

    Full changelog: https://docs.disnake.dev/en/stable/whats_new.html#v2-6-0 Git history: https://github.com/DisnakeDev/disnake/compare/v2.5.0...v2.6.0

    New Contributors

    • @thehaffk made their first contribution in https://github.com/DisnakeDev/disnake/pull/516
    • @davids-tips made their first contribution in https://github.com/DisnakeDev/disnake/pull/541
    • @toolifelesstocode made their first contribution in https://github.com/DisnakeDev/disnake/pull/566
    • @ResetXD made their first contribution in https://github.com/DisnakeDev/disnake/pull/571
    • @Skelmis made their first contribution in https://github.com/DisnakeDev/disnake/pull/576
    • @EmreTech made their first contribution in https://github.com/DisnakeDev/disnake/pull/612
    • @filefly made their first contribution in https://github.com/DisnakeDev/disnake/pull/620
    • @vcokltfre made their first contribution in https://github.com/DisnakeDev/disnake/pull/623
    • @Enegg made their first contribution in https://github.com/DisnakeDev/disnake/pull/281
    • @zachnieto made their first contribution in https://github.com/DisnakeDev/disnake/pull/567
    • @ItsAleph made their first contribution in https://github.com/DisnakeDev/disnake/pull/661
    • @ChristopherJHart made their first contribution in https://github.com/DisnakeDev/disnake/pull/636
    • @Snipy7374 made their first contribution in https://github.com/DisnakeDev/disnake/pull/730
    Source code(tar.gz)
    Source code(zip)
    disnake-2.6.0-py3-none-any.whl(997.46 KB)
    disnake-2.6.0.tar.gz(940.22 KB)
  • v2.5.3(Sep 29, 2022)

  • v2.4.2(Sep 2, 2022)

    Includes a backport of a fix relating to the message content intent always being requested by the client.

    Changelog: https://docs.disnake.dev/en/v2.4.x/whats_new.html#v2-4-2

    Source code(tar.gz)
    Source code(zip)
  • v2.5.2(Jul 27, 2022)

    Includes several bug fixes and documentation updates.

    More details and full changelog: https://docs.disnake.dev/en/v2.5.x/whats_new.html#v2-5-2

    Source code(tar.gz)
    Source code(zip)
  • v2.4.1(Jul 27, 2022)

    Includes several bug fixes and documentation updates.

    More details and full changelog: https://docs.disnake.dev/en/v2.4.x/whats_new.html#v2-4-1

    Source code(tar.gz)
    Source code(zip)
  • v2.5.1(May 10, 2022)

    Small patch release to fix an issue with the @slash.autocomplete(...) decorator in v2.5.0.

    Changelog: https://docs.disnake.dev/en/latest/whats_new.html#v2-5-1

    Source code(tar.gz)
    Source code(zip)
  • v2.5.0(May 7, 2022)

    This version adds support for API v10 (which comes with a few breaking changes), forum channels, localizations, permissions v2, improves API coverage by adding support for previously missing features like guild previews, widgets, or welcome screens, and contains several miscellaneous enhancements and bugfixes.

    Regarding the message content intent: Note that earlier versions will continue working fine after the message content intent deadline (August 31st 2022), as long as the intent is enabled in the developer portal. However, from this version (2.5.0) onward, the intent needs to be enabled in the developer portal and your code. See this page of the guide for more information. If you do not have access to the intent yet, you can temporarily continue using API v9 by calling disnake.http._workaround_set_api_version(9) before connecting, which will keep sending message content before the intent deadline, even with the intent disabled.

    More details and full changelog: https://docs.disnake.dev/en/latest/whats_new.html#v2-5-0

    Source code(tar.gz)
    Source code(zip)
  • v2.4.0(Feb 14, 2022)

  • v2.3.2(Feb 11, 2022)

  • v2.2.3(Feb 11, 2022)

  • v2.3.1(Feb 5, 2022)

  • v2.3.0(Dec 21, 2021)

  • v2.2.2(Nov 16, 2021)

  • v2.2.1(Nov 3, 2021)

  • v2.2.0(Nov 1, 2021)

  • v2.1.5(Oct 25, 2021)

    What's new:

    • min_value, max_value (float) kwargs in disnake.Option
    • min_value, max_value, gt, lt, ge, le (float) kwargs in disnake.ext.commands.Param (here gt and ge are aliases of min_value, lt and le are aliases of max_value)
    • disnake.InteractionReference
    • disnake.Message.interaction attribute (an instance of InteractionReference)
    • disnake.UnresolvedGuildApplicationCommandPermissions
    • owner (bool) kwarg in disnake.ext.commands.guild_permissions decorator

    Fixed:

    • Command deletions on reconnections
    • Unfinished sync tasks on loop termination

    Notes:

    • In v2.1.4 we fixed a a bug with permissions sync
    Source code(tar.gz)
    Source code(zip)
  • v2.1.3(Oct 17, 2021)

    Changelog: https://disnake.readthedocs.io/en/latest/whats_new.html#v2-1-2

    Summary:

    • Slash commands
    • Context menus
    • Application command permissions
    • Role icons
    Source code(tar.gz)
    Source code(zip)
A GUI Weather Application written with Python

weather-box - A GUI Weather Application written with Python Made with ❀️ by Suresh Mishra

Suresh Mishra 2 Dec 18, 2021
Photogrammetry Web API

OpenScanCloud Photogrammetry Web API Overview / Outline: The OpenScan Cloud is intended to be a decentralized, open and free photogrammetry web API. T

Thomas 86 Jan 05, 2023
A Discord Bot that tracks and displays cryptocurrencies using the CoinMarketCap API

PyBo - A Crypto Inspired Discord Bot Pybo (paΙͺ boʊ) is a Discord bot that utilizes the discord.py API wrapper to run the bot. Pybo also integrates the

0 Nov 17, 2022
Google Sheets Python API v4

pygsheets - Google Spreadsheets Python API v4 A simple, intuitive library for google sheets which gets your work done. Features: Open, create, delete

Nithin Murali 1.4k Jan 08, 2023
Telegram Client and Bot that use Artificial Intelligence to auto-reply to scammers and waste their time

scamminator Blocking a scammer is not enough. It is time to fight back. Wouldn't be great if there was a tool that uses Artificial Intelligence to rep

Federico Galatolo 6 Nov 12, 2022
TON Miner from TON-Pool.com

TON-Pool Miner Miner from TON-Pool.com

21 Nov 18, 2022
Automated crypto trading bot as adapted from Algovibes.

crypto-trading-bot Automated crypto trading bot as adapted from Algovibes. Pre-requisites Ensure that you have created a Binance API key before procee

Kai Koh 33 Nov 01, 2022
Example app to be deployed to AWS as an API Gateway / Lambda Stack

Disclaimer I won't answer issues or emails regarding the project anymore. The project is old and not maintained anymore. I'm not sure if it still work

Ben 123 Jan 01, 2023
A userbot made for telegram

πšƒπ™·π™΄ π™Όπ™°π™΅π™Έπ™°π™±π™Ύπšƒ This is a userbot made for telegram. I made this userbot with help of all other userbots available in telegram. All credits go

MafiaBotOP 8 Apr 08, 2022
Python library for RetroMMO related stuff, including API wrapper

python library for RetroMMO related stuff, including API wrapper.

1 Nov 25, 2021
API kumpulan doa-doa sesuai al-qur'an dan as-sunnah

API kumpulan doa-doa sesuai al-qur'an dan as-sunnah

Miftah Afina 4 Nov 26, 2022
Scripts to help you win the Pizza Express

Slice of the Prizes Slice of the Prizes is a Python Script designed to enter the "Slice of the Action" competition hosted by Pizza Express the competi

Luke Bendall 1 Nov 04, 2021
A Python wrapper for the tesseract-ocr API

tesserocr A simple, Pillow-friendly, wrapper around the tesseract-ocr API for Optical Character Recognition (OCR). tesserocr integrates directly with

Fayez 1.7k Jan 03, 2023
A discord bot to assist you when playing phasmophobia.

phasbot A discord bot to assist you when playing phasmophobia. Add phasbot to your server here! Bot Commands ?help - shows commands ?info [ghost name]

1 Dec 22, 2021
Code for "Multimodal Trajectory Prediction Conditioned on Lane-Graph Traversals," CoRL 2021.

Multimodal Trajectory Prediction Conditioned on Lane-Graph Traversals This repository contains code for "Multimodal trajectory prediction conditioned

Nachiket Deo 113 Dec 28, 2022
A Flask & Twilio Secret Santa app.

πŸŽ„ ✨ Secret Santa Twilio ✨ πŸ“± A contactless Secret Santa game built with Python, Flask and Twilio! Prerequisites πŸ“ A Twilio account. Sign up here ngr

Sangeeta Jadoonanan 5 Dec 23, 2021
A Python SDK for connecting devices to Microsoft Azure IoT services

V2 - We are now GA! This repository contains code for the Azure IoT SDKs for Python. This enables python developers to easily create IoT device soluti

Microsoft Azure 381 Dec 30, 2022
Reverse engineering multi-device WhatsApp Web.

whatsapp-web-multi-device-reveng In this repository, the research for reverse engineering multi-device WhatsApp Web takes place, see here for a descri

84 Jan 01, 2023
Catware - A powerful grabber with a built in bot control system

catware A powerful grabber with a built in bot control system PLEASE NOTE THAT I

4 Feb 04, 2022
A library for demo trading | backtest and forward test simulation

Trade Engine a library for demo trading | backtest and forward test simulation Features Limit/Market orders: you can place a Limit or Market order in

Ali Moradi 7 Jul 02, 2022