RegEx based command mapping discord BOT framework with authorization
Project description
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')
- user_id example:
-
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | fe052dda9cb5e026b06b2a2a79dc207318626b178a0e495fc8311f2dd5ca9f9c |
|
MD5 | fd0a29d15c9e86d9c86df694e2543d16 |
|
BLAKE2b-256 | ca90ad502d73330fc15170adabc150bdc47093b3646c842ba56fb535a7110ee3 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1396c27c4e62e825a9015dfccc64ec8853ac66fb7a0eab9d25fe7f2568f1d9c4 |
|
MD5 | ee3a96c76316a7cad4791594d947e766 |
|
BLAKE2b-256 | 80178cc15384c1b7af801143c888bd484146429031c688cb5471884ddd3c45a7 |