<div align="center">
  <img src="https://jamesfrench.fr/dispy/logo_horizon.png" width="250">
  </br></br>
  With the power of asynchronous and without its complexity.
  </br>
  <strong>Discord Bot Library</strong>
  </br></br>
  
  [![License: GPLv3](https://img.shields.io/badge/license-GPLv3-blue)](https://www.gnu.org/licenses/gpl-3.0.fr.html)
  ![PyPI - Downloads](https://img.shields.io/pypi/dm/dispy-bot)
  ![Made with Heart](https://img.shields.io/badge/Made_with-%F0%9F%A4%8D-green)
  </br>
  ![Static Badge](https://img.shields.io/badge/Made_using-Python-yellow?logo=python&logoColor=white)
  ![GitHub forks](https://img.shields.io/github/forks/JamesMinoucha/Dispy?style=flat)
</div>

# <p align="center"></p>

**Dispy** is a Python library that simplifies Discord bot development by handling all the complexities of asynchronous programming and API interactions. Unlike discord.py and discord.js, Dispy allows users to write straightforward Python code without worrying about intents, event loops, or async functions. The library runs everything asynchronously in the background, ensuring high performance without requiring the developer to manage any of it.

Dispy lets bot developers focus on their ideas and the structure of their bots instead of getting lost in the complexities of learning a library. It simplifies the development process, making it easier to bring creative concepts to life without the usual hassle.

### Built With
- [Python](https://www.python.org/)
- [Asyncio](https://docs.python.org/fr/3/library/asyncio.html)
- [AioHttp](https://docs.aiohttp.org/en/stable/)
- [Discord API](https://discord.com/developers/docs/intro#explore-the-apis)

### Links
- [Documentation](https://jamesfrench.gitbook.io/dispy)
- [Discord Server](https://discord.gg/z53TEUwZaE)


## <div align="center">Roadmap</div>
**Current Stat:** Beta</br>
**Current Version:** 0.1.05</br>
**Current Stability:** Stable</br>

- [x] Gateway & Events
  - [x] Separated & Customized Arguments ^
  - [x] API Support
  - [ ] Resume/Crash Handler
- [x] Intents Calculation
- [x] Rest API Support
  - [x] Generic Functions ^
  - [x] Custom Functions ^
  - [ ] Rate Handler (Rate Limit)
  - [ ] Full Exception Support
- [x] Autocompletion
  - [x] Dispatched Events ~
  - [x] API Output ^
  - [x] Bot User Object
  - [ ] API Input
- [x] Asynchronous
  - [x] Hidden
  - [x] A way of awaiting output
- [ ] Sharding Handler
- [ ] Auto-connect & Exception ignore (for linux machine)
- [ ] Logging

> `^` mean it is ready and coded into dispy but isn't complete. [Contribute](https://jamesfrench.gitbook.io/dispy/informations/contribute) to finish it!</br>
> `~` mean it is experimental and may be changed. (This can mean `^` too)

The list is incomplete, go see the full list on the [documentation](https://jamesfrench.gitbook.io/dispy/informations/roadmap).</br>

## <div align="center">Contributing</div>
We truly appreciate any contributions! If you have suggestions for improvement, you can follow this [guide](https://jamesfrench.gitbook.io/dispy/informations/contribute) on the documentation!

If you'd like to suggest an improvement without coding, feel free to open an issue and tag it with "enhancement". And don’t forget to star the project if you find it helpful!

Thanks!

## <div align="center">License</div>

Dispy - Python Discord API library for discord bots.</br>
Copyright (C) 2024  James French

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.

## <div align="center">Contact Us</div>

If you have any questions or suggestions, feel free to reach out to me:
- Email: **jamesfrench.contact@gmail.com**
- Discord: **Jamesfrench_**