Skip to main content

RegEx based command mapping discord BOT framework with authorization

Project description

Latest version on PyPi Supported Python versions Documentation status Code style: black discord-rebot logo

Welcome to discord-rebot (py)

discordRebot is a RegEx based command mapping discord BOT framework with authorization.


Why discordRebot?

discordRebot is easy to use, minimal, and async ready framework using discord.py

Most of the bots uses a single prefix, string to match command and args split by spaces, example !cmd arg1 arg2.

But discordRebot uses RegEx for both matching the command and capturing the arguments. It gives more control over both matching the command and parsing arguments.

Also, it provides authorization to authorize the author of the message before executing the command.

Basic Example

A minimal bot with echo command

from discordRebot import *

client = discord.Client()
key = Mapper()

@key(re.compile(r"^!echo (.*)$")) # Eg: '!echo hello' -> 'hello'
def echo(msg, string):
    return string
echo.auth = None

client.event(Manager(key).on_message)
import os; client.run(os.environ["DBToken"])

You can find more examples in the examples directory.

Features

  • It also supports

    Example:
    @key(re.compile(r"^!ticker (\d*) (\d*)$"))
    async def ticker(msg, delay, to):
        delay, to = int(delay), int(to)
        for i in range(to):
            yield i
            await asyncio.sleep(delay)
    
  • Authorizes the message author
    based on

    • user_id example:1234567890
    • user_name example:'user#1234'
    • roles server (not applicable for DM)
    • permissions of members in server (not applicable for DM)
    • custom Callable[[author], bool]
    Example:
    @key("am i authorized ?")
    def amiauthorized(msg):
        return "Authorized"
    amiauthorized.auth = {1234567890, 'user#1234'}
    # only executable by user1 (with id 1234567890) and user2 (with username 'user#1234')
    
  • Can match multiple commands with a message

    Example:
    @key(re.compile(r"^([\s\S]*)$"))
    def printmsg(msg, content):
        print(f"@{msg.author}:")
        print(content)
    
    @key("whereami")
    def whereami(msg):
        if msg.guild:
            return msg.guild.name
        else:
            return "DM"
    

Links



discordpy-ext-rebot comming soon (for full featured Discord Bot with RegEx based argparser)

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

discord-rebot-0.0.2.tar.gz (13.3 kB view details)

Uploaded Source

Built Distribution

discord_rebot-0.0.2-py3-none-any.whl (13.3 kB view details)

Uploaded Python 3

File details

Details for the file discord-rebot-0.0.2.tar.gz.

File metadata

  • Download URL: discord-rebot-0.0.2.tar.gz
  • Upload date:
  • Size: 13.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.5 CPython/3.8.3 Linux/5.4.43-1-MANJARO

File hashes

Hashes for discord-rebot-0.0.2.tar.gz
Algorithm Hash digest
SHA256 fe052dda9cb5e026b06b2a2a79dc207318626b178a0e495fc8311f2dd5ca9f9c
MD5 fd0a29d15c9e86d9c86df694e2543d16
BLAKE2b-256 ca90ad502d73330fc15170adabc150bdc47093b3646c842ba56fb535a7110ee3

See more details on using hashes here.

File details

Details for the file discord_rebot-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: discord_rebot-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 13.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.5 CPython/3.8.3 Linux/5.4.43-1-MANJARO

File hashes

Hashes for discord_rebot-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1396c27c4e62e825a9015dfccc64ec8853ac66fb7a0eab9d25fe7f2568f1d9c4
MD5 ee3a96c76316a7cad4791594d947e766
BLAKE2b-256 80178cc15384c1b7af801143c888bd484146429031c688cb5471884ddd3c45a7

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