Metadata-Version: 2.1
Name: aiocord
Version: 2.0.0
Summary: A modern API wrapper for Discord.
Home-page: https://github.com/Exahilosys/aiocord
License: MIT
Requires: yarl    (>= 1.9.1, < 2.0.0)
Requires: aiohttp (>= 3.8.4, < 4.0.0)
Requires: vessel  (>= 4.2.0, < 5.0.0)
Requires: pynacl  (>= 1.5.0, < 2.0.0)
Requires-Python: >=3.11
License-File: LICENSE
Provides-Extra: docs
Requires-Dist: sphinx ; extra == 'docs'
Requires-Dist: sphinx-paramlinks ; extra == 'docs'
Requires-Dist: sphinx-autodoc-typehints ; extra == 'docs'

A modern API wrapper for Discord.

Installation
------------

.. code-block:: bash
   
      pip install aiocord

Features
--------

- **Complete**: Implements the entirety of Discord's services.
- **Asynchronous**: Written in pure ``asyncio`` for native parallelism.
- **Modular**: Any component (such as HTTP) can be used in isolation.
- **Ergonomic**: Comes with extreme purpose-driven data reception and cacehing.
- **Interactive**: Supports slash-commands and related utilities out of the box.

Example
-------

Create a ``widget/__init__.py`` file.

.. code-block:: python

    import aiocord

    @aiocord.widget.callback(aiocord.events.CreateMessage)
    async def handle(info, event):
        if (message := event.message).author.id == info.client.cache.user.id:
            return
        await info.client.create_message(message.channel_id, content = f'{message.author.mention()} said {message.content}!')

And run the following in your terminal:

.. code-block:: bash

    aiocord --token <TOKEN> start widget

This is a simple example to get you started in seconds, but the library covers a vast wealth tools to fit any scenario.

Check out the `Documentation <aiocord.readthedocs.io>`_'s `Examples <aiocord.readthedocs.io/pages/examples.html>`_ section for more, 
such as how to use `Commands <aiocord.readthedocs.io/pages/examples.html#commands>`_ and `Interactions <aiocord.readthedocs.io/pages/examples.html#interactions>`_.
