mirror of
https://github.com/runyanjake/discord.git
synced 2025-10-04 23:27:29 -07:00
56 lines
2.6 KiB
Python
56 lines
2.6 KiB
Python
import logging
|
|
import re
|
|
import sys
|
|
|
|
from commands.echo import echo
|
|
from commands.hello_world import hello_world
|
|
|
|
pws_command_prefix = '/pws '
|
|
pws_command_regex = r'/pws (\S+)'
|
|
pws_command_with_args_regex = r'/pws \S+(.*)'
|
|
|
|
log_format = '%(asctime)s %(levelname)s\t%(filename)s %(message)s'
|
|
logging.basicConfig(stream=sys.stdout, level=logging.DEBUG, format=log_format)
|
|
|
|
async def handle_message(client, message):
|
|
logging.info('Observed message: "' + str(message.content) + '" from user [' + str(message.author) + '].')
|
|
|
|
#Ignore messages this bot has sent to avoid answering itself.
|
|
if message.author == client.user:
|
|
return
|
|
|
|
#Respond only to messages starting with the PWS prefix.
|
|
if message.content.startswith(pws_command_prefix):
|
|
msg = [3]
|
|
msg.append(pws_command_prefix)
|
|
msg.append(re.match(pws_command_regex, message.content)[1])
|
|
msg.append(re.match(pws_command_with_args_regex, message.content)[1])
|
|
|
|
command = msg[2]
|
|
args = msg[3]
|
|
logging.info("Received Command: " + command + ", with Args: " + args)
|
|
|
|
match command:
|
|
case 'helloworld':
|
|
if args:
|
|
logging.warn('Command ' + command + ' got unexpected arguments: ' + message.content + '.')
|
|
await message.author.send('Unexpected arguments for command: `' + message.content + '`. Check list of commands (`/pws help`) for valid usage.')
|
|
else:
|
|
await hello_world(message)
|
|
case 'echo':
|
|
if not args:
|
|
logging.warn('Command ' + command + ' did not specify argument(s): ' + message.content + '.')
|
|
await message.author.send('Did not specify argument(s) for command: `' + message.content + '`. Check list of commands (`/pws help`) for valid usage.')
|
|
else:
|
|
await echo(message, args)
|
|
case 'help' | 'commands':
|
|
if args:
|
|
logging.warn('Command ' + command + ' got unexpected arguments: ' + message.content + '.')
|
|
await message.author.send('Unexpected arguments for command: `' + message.content + '`. Check list of commands (`/pws help`) for valid usage.')
|
|
else:
|
|
await message.author.send('**Commands**\n- /pws helloworld\n- /pws echo\n- /pws help\n- /pws commands')
|
|
case _:
|
|
logging.warn('Invalid command ' + command + ' received.')
|
|
await message.author.send('Invalid command `' + command + '`. Check list of commands for valid usage.')
|
|
|