Skip to main content

A basic interface for Discord bots to handle receiving commands using the discord.py package.

Project description

PyPI PyPI PyPI PyPI Documentation Status

MehlBot

MehlBot is a Discord bot that responds to commands by executing (callback) functions.

It's built around the discord.Client class. This allows an easy integration to existing bots and creation of new bots.

Documentation: docs

See examples/hellow_bot.py for full source code.

# imports ... 

class HelloBot(discord.Client):  # discord.Client class

    def __init__(self, intents: Intents, **options) -> None:
        super().__init__(intents=intents, **options)

    async def on_ready(self) -> None:  # Gets called when bot is ready/started
        print("Bot started.")

    async def on_message(self, message: Message):
        if message.author == self.user:  # skip if message's author is the bot
            return

        # necessary callback command
        # bot_commands are in mehlbot.command
        command_found = await command_callback.process_command(self, bot_commands, message)

        # prefix with command if message is command
        log_msg = "" if not command_found else "command: "
        log_msg += f"{message.author.nick} ({message.author.name}): '{message.content}'"
        print(log_msg)


def main():
    hello_bot = HelloBot(discord.Intents.all())  # discord intents
    with Path("token.txt").open() as file:  # load token form file (.gitignore) or use env
        token = file.read()
    hello_bot.run(token)

And this shows how to add commands

from mehlbot.command import add_command

async def _add(message: discord.Message, client: discord.Client, args: List):
    url = args[0]
    ...

async def _export_playlist(message: discord.Message, client: discord.Client, args: List):
    playlist = args[0]
    ...
    
add_command("add", _add,
            allowed_num_args=[["url"]], # requires exactly 1 argument
            description="Adds the given YouTube url to the current playlist.")

add_command("export playlist", _export_playlist,
            allowed_num_args=[[], ["playlist_name"]], # either 0 or 1 arg
            description="Exports urls of current playlist or of given playlist.")

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mehlbot-1.1.3.tar.gz (7.8 kB view details)

Uploaded Source

Built Distribution

mehlbot-1.1.3-py3-none-any.whl (7.1 kB view details)

Uploaded Python 3

File details

Details for the file mehlbot-1.1.3.tar.gz.

File metadata

  • Download URL: mehlbot-1.1.3.tar.gz
  • Upload date:
  • Size: 7.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.0 CPython/3.11.1 Windows/10

File hashes

Hashes for mehlbot-1.1.3.tar.gz
Algorithm Hash digest
SHA256 51cc489eb77c4f2282667299e9d9d317693a5b56a440d4632108560a777b41f8
MD5 dcec83684abf14be1b4a868a98455e8b
BLAKE2b-256 b315c6afb6e6070f468a15d03e290bf6754f87e9b8ad2ca0a58a92f6cdac65a0

See more details on using hashes here.

File details

Details for the file mehlbot-1.1.3-py3-none-any.whl.

File metadata

  • Download URL: mehlbot-1.1.3-py3-none-any.whl
  • Upload date:
  • Size: 7.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.0 CPython/3.11.1 Windows/10

File hashes

Hashes for mehlbot-1.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 4a6181f2d1d1e8b3940951e0c94f39cf24c8b1e1f55b5632305d380e43f9f206
MD5 de292e11b275bf824c5b2a6585e6b0cd
BLAKE2b-256 13a5ce2a25f976662d11d69445cf1cf9bfc39706c529d3d505aa4ad84f3754c6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page