90 lines
2.6 KiB
Python
90 lines
2.6 KiB
Python
import random
|
|
import re
|
|
|
|
from discord import message
|
|
from discord.client import Client
|
|
|
|
import config as config
|
|
import db
|
|
import tts
|
|
|
|
import commands.loader as command_loader
|
|
from commands.command_base import AbstractCommand
|
|
|
|
import credentials
|
|
|
|
import discord
|
|
import discord.message
|
|
import discord.channel
|
|
|
|
class Discord_Module(discord.Client):
|
|
def __init__(self):
|
|
super().__init__()
|
|
self.dbCredential: credentials.DB_Credential
|
|
self.discordCredential: credentials.Discord_Credential
|
|
|
|
self.commands = command_loader.load_commands()
|
|
|
|
self.tts_enabled: bool = False
|
|
|
|
def main(self):
|
|
self.run(self.discordCredential.token)
|
|
|
|
async def on_ready(self):
|
|
print('Logged on as', self.user)
|
|
|
|
async def on_message(self, message: discord.Message):
|
|
print("{" + message.guild.name + "}[ " + str(message.channel) + " ](" + message.author.display_name + ")> ")
|
|
print(message.content)
|
|
#Message ID
|
|
#print(str(message.id))
|
|
#Channel ID
|
|
#print(str(message.channel.id))
|
|
if message.content == "//test":
|
|
await message.channel.send('test response')
|
|
|
|
await self.eval_commands(message)
|
|
|
|
def do_command(self):
|
|
pass
|
|
|
|
async def eval_commands(self, message: discord.Message):
|
|
# containsURL: bool = self.contains_url(message)
|
|
try:
|
|
#first_space_idx = message.text.index(' ')
|
|
|
|
# This fixes a error where if you send a command without arguments it fails because
|
|
# it cant find the substring.
|
|
if message.content.find(" ") != -1:
|
|
first_space_idx = message.content.index(' ')
|
|
else:
|
|
first_space_idx = -1
|
|
|
|
command_text = ' '
|
|
if first_space_idx > -1:
|
|
command_text = message.content[0:first_space_idx]
|
|
else:
|
|
command_text = message.content
|
|
|
|
command = self.commands[command_text]
|
|
if command is not None and command.command_type is AbstractCommand.CommandType.DISCORD:
|
|
await command.do_command(self, message)
|
|
except Exception as e:
|
|
print(e)
|
|
pass # we don't care
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
testModule = Discord_Module()
|
|
|
|
credentials_manager = credentials.Credentials_Module()
|
|
credentials_manager.load_credentials()
|
|
testModule.dbCredential = credentials_manager.find_DB_Credential("praxis_bot")
|
|
testModule.discordCredential = credentials_manager.find_Discord_Credential("praxis_bot")
|
|
testModule.main()
|
|
|
|
testModule.main()
|
|
|
|
|