Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/joinemm/miso-bot
:robot: Discord bot with too many features
https://github.com/joinemm/miso-bot
bot discord discord-api discord-bot discord-py kpop lastfm lastfm-api miso misobot
Last synced: 7 days ago
JSON representation
:robot: Discord bot with too many features
- Host: GitHub
- URL: https://github.com/joinemm/miso-bot
- Owner: joinemm
- License: mpl-2.0
- Created: 2019-03-16T16:40:05.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-04-30T14:24:13.000Z (6 months ago)
- Last Synced: 2024-05-02T03:18:50.868Z (6 months ago)
- Topics: bot, discord, discord-api, discord-bot, discord-py, kpop, lastfm, lastfm-api, miso, misobot
- Language: Python
- Homepage: https://misobot.xyz
- Size: 7.5 MB
- Stars: 116
- Watchers: 2
- Forks: 31
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- awesome-discordpy - joinemm/miso-bot - Miso is a multipurpose Discord bot with over 100 commands and features. (Example Bots / Miscellaneous)
- starred - joinemm/miso-bot - :robot: Discord bot with too many features (Python)
README
[![noai](https://notbyai.fyi/img/written-by-human-not-by-ai-white.svg)](https://notbyai.fyi/)
[![License](https://img.shields.io/github/license/joinemm/miso-bot)](https://img.shields.io/github/license/joinemm/miso-bot)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/84479f7c0f4c44a6aa2ba435e0215436)](https://app.codacy.com/manual/joinemm/miso-bot?utm_source=github.com&utm_medium=referral&utm_content=joinemm/miso-bot&utm_campaign=Badge_Grade_Dashboard)
[![DeepSource](https://deepsource.io/gh/joinemm/miso-bot.svg/?label=active+issues&show_trend=true&token=0E1BBh1I4k_HkqRvfRy86yMc)](https://deepsource.io/gh/joinemm/miso-bot/?ref=repository-badge)
[![Discord](https://img.shields.io/discord/652904322706833409.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/RzDW3Ne)
[![Sponsor](https://img.shields.io/github/sponsors/joinemm?color=%23db61a2)](https://github.com/sponsors/joinemm)* * *
# Miso Bot
Miso is a multipurpose Discord bot with over 100 commands and features.
For more information and command reference, visit
## Development
A Nix development shell is included, using [devenv](https://github.com/cachix/devenv)
This environment installs poetry and some useful packages.
```sh
nix develop --impure
```The dependencies are managed using [Poetry](https://python-poetry.org/)
```sh
poetry install
```Copy/rename `.env.example` to `.env` and fill the api keys you need, most importantly the discord bot token.
The bot can then be run with```sh
poetry run python main.py
# or in dev mode
poetry run python main.py dev# if using the nix shell:
run
# or in dev mode
run dev
```but it will not function without a MariaDB database.
The database can be bootstrapped with```sh
docker compose up db -d
```After which the bot can be ran and easily developed.
When you're done, remember to shut down the database container:```sh
docker compose down
```## Contributing
Your pull requests are welcome, as long as they meet the enforced code standards:
- [Black](https://github.com/psf/black) and [isort](https://pycqa.github.io/isort/) for formatting.
- [Ruff](https://github.com/astral-sh/ruff), for linting.
- [Reuse](https://reuse.software/), for licensing.The nix shell installs these as pre-commit hook automatically.
## Deployment
First copy/rename `.env.example` to `.env` and fill it with your own keys.
Everything else should be handled by the dockerfile.```sh
docker compose --profile prod up
```The docker compose file bootstraps the entire miso infrastructure,
including prometheus metrics, grafana dashboards and nginx reverse proxy.You likely don't want these if you're just running the bot.
The compose file is using different profiles that start only a handful of containers: `dev`, `dev-extra` and `prod`.
`prod` starts everything, as you might have guessed.
`dev` starts only the db and the bot in debug mode, for fast testing.
`dev-extra` starts extra services used by some commands, but not the infra containers.```sh
docker compose --profile dev up
docker compose --profile dev-extra up
```## Star History
[![Star History Chart](https://api.star-history.com/svg?repos=joinemm/miso-bot&type=Date)](https://star-history.com/#joinemm/miso-bot&Date)
## Contributor wall
[![Contributors](https://contrib.rocks/image?repo=joinemm/miso-bot)](https://github.com/joinemm/miso-bot/graphs/contributors)