{"id":13458807,"url":"https://github.com/joinemm/miso-bot","last_synced_at":"2025-03-24T16:31:04.356Z","repository":{"id":37555669,"uuid":"175997530","full_name":"joinemm/miso-bot","owner":"joinemm","description":":robot: Discord bot with too many features","archived":false,"fork":false,"pushed_at":"2024-04-30T14:24:13.000Z","size":7860,"stargazers_count":116,"open_issues_count":1,"forks_count":31,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-05-02T03:18:50.868Z","etag":null,"topics":["bot","discord","discord-api","discord-bot","discord-py","kpop","lastfm","lastfm-api","miso","misobot"],"latest_commit_sha":null,"homepage":"https://misobot.xyz","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/joinemm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"Joinemm","patreon":"Joinemm","ko_fi":"Joinemm"}},"created_at":"2019-03-16T16:40:05.000Z","updated_at":"2024-05-17T11:49:01.994Z","dependencies_parsed_at":"2023-02-18T06:00:50.599Z","dependency_job_id":"c0c55d36-9455-46f5-8ae6-5a02d7aa21f4","html_url":"https://github.com/joinemm/miso-bot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joinemm%2Fmiso-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joinemm%2Fmiso-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joinemm%2Fmiso-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joinemm%2Fmiso-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joinemm","download_url":"https://codeload.github.com/joinemm/miso-bot/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221987345,"owners_count":16912302,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bot","discord","discord-api","discord-bot","discord-py","kpop","lastfm","lastfm-api","miso","misobot"],"created_at":"2024-07-31T09:00:57.606Z","updated_at":"2024-10-29T04:30:17.466Z","avatar_url":"https://github.com/joinemm.png","language":"Python","funding_links":["https://github.com/sponsors/Joinemm","https://patreon.com/Joinemm","https://ko-fi.com/Joinemm","https://github.com/sponsors/joinemm"],"categories":["Python","Example Bots"],"sub_categories":["Miscellaneous"],"readme":"[![noai](https://notbyai.fyi/img/written-by-human-not-by-ai-white.svg)](https://notbyai.fyi/)\n\n[![License](https://img.shields.io/github/license/joinemm/miso-bot)](https://img.shields.io/github/license/joinemm/miso-bot)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n[![Codacy Badge](https://api.codacy.com/project/badge/Grade/84479f7c0f4c44a6aa2ba435e0215436)](https://app.codacy.com/manual/joinemm/miso-bot?utm_source=github.com\u0026utm_medium=referral\u0026utm_content=joinemm/miso-bot\u0026utm_campaign=Badge_Grade_Dashboard)\n[![DeepSource](https://deepsource.io/gh/joinemm/miso-bot.svg/?label=active+issues\u0026show_trend=true\u0026token=0E1BBh1I4k_HkqRvfRy86yMc)](https://deepsource.io/gh/joinemm/miso-bot/?ref=repository-badge)\n[![Discord](https://img.shields.io/discord/652904322706833409.svg?label=\u0026logo=discord\u0026logoColor=ffffff\u0026color=7389D8\u0026labelColor=6A7EC2)](https://discord.gg/RzDW3Ne)\n[![Sponsor](https://img.shields.io/github/sponsors/joinemm?color=%23db61a2)](https://github.com/sponsors/joinemm)\n\n\n* * *\n\n# Miso Bot\n\nMiso is a multipurpose Discord bot with over 100 commands and features.\n\nFor more information and command reference, visit \u003chttps://misobot.xyz\u003e\n\n## Development\n\nA Nix development shell is included, using [devenv](https://github.com/cachix/devenv)\n\nThis environment installs poetry and some useful packages.\n\n```sh\nnix develop --impure\n```\n\nThe dependencies are managed using [Poetry](https://python-poetry.org/)\n\n```sh\npoetry install\n```\n\nCopy/rename `.env.example` to `.env` and fill the api keys you need, most importantly the discord bot token.\nThe bot can then be run with\n\n```sh\npoetry run python main.py\n# or in dev mode\npoetry run python main.py dev\n\n# if using the nix shell:\n\nrun\n# or in dev mode\nrun dev\n```\n\nbut it will not function without a MariaDB database.\nThe database can be bootstrapped with\n\n```sh\ndocker compose up db -d\n```\n\nAfter which the bot can be ran and easily developed.\nWhen you're done, remember to shut down the database container:\n\n```sh\ndocker compose down\n```\n\n## Contributing\n\nYour pull requests are welcome, as long as they meet the enforced code standards:\n\n- [Black](https://github.com/psf/black) and [isort](https://pycqa.github.io/isort/) for formatting.\n- [Ruff](https://github.com/astral-sh/ruff), for linting.\n- [Reuse](https://reuse.software/), for licensing.\n\nThe nix shell installs these as pre-commit hook automatically.\n\n## Deployment\n\nFirst copy/rename `.env.example` to `.env` and fill it with your own keys.\nEverything else should be handled by the dockerfile.\n\n```sh\ndocker compose --profile prod up\n```\n\nThe docker compose file bootstraps the entire miso infrastructure,\nincluding prometheus metrics, grafana dashboards and nginx reverse proxy.\n\nYou likely don't want these if you're just running the bot.\n\nThe compose file is using different profiles that start only a handful of containers: `dev`, `dev-extra` and `prod`.\n`prod` starts everything, as you might have guessed. \n`dev` starts only the db and the bot in debug mode, for fast testing. \n`dev-extra` starts extra services used by some commands, but not the infra containers.\n\n```sh\ndocker compose --profile dev up\ndocker compose --profile dev-extra up\n```\n\n## Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=joinemm/miso-bot\u0026type=Date)](https://star-history.com/#joinemm/miso-bot\u0026Date)\n\n## Contributor wall\n\n[![Contributors](https://contrib.rocks/image?repo=joinemm/miso-bot)](https://github.com/joinemm/miso-bot/graphs/contributors)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoinemm%2Fmiso-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoinemm%2Fmiso-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoinemm%2Fmiso-bot/lists"}