DiscordRebot - это основа на основе картирования команд на основе корпорации с авторизацией .
DiscordRebot прост в использовании, минимальный и асинхронная рамка с использованием discord.py
В большинстве ботов используется один префикс, строку для сопоставления команды и ARGS, разделенные пространствами, пример !cmd arg1 arg2 .
Но DiscordRebot использует Regex как для сопоставления команды, так и для захвата аргументов. Это дает больше контроля над соответствием команды, так и аргументам анализа.
Кроме того, он предоставляет разрешение на авторизацию автора сообщения перед выполнением команды.
Минимальный бот с командой Echo
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" ])Вы можете найти больше примеров в каталоге примеров.
Это также поддерживает
@ 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 ) Разрешает автора сообщения
на основе
1234567890'user#1234' @ 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')Может сопоставить несколько команд с сообщением
@ key ( re . compile ( r"^([sS]*)$" ))
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"
Discord-Reargparse (для полного представленного Discord Bot с Argparsing на основе Regex в командах)