def load_extensions(self): for extension in self.config.extensions: extensions = resolve_extensions(self, extension) for extension in extensions: try: self.load_extension(extension) except: Logger.error(f'Error in extension {extension}\n' + traceback.format_exc()) else: Logger.debug(f'Loaded extension {extension}')
def dump(self, filename): os.system(f'pg_dump {self._config["url"]} > {filename}') Logger.debug(f'Dumped database to {filename}')
async def setup(self, file='setup.psql'): Logger.debug('Initializing database...') with open(file, mode='r', encoding='utf-8') as file: for line in file.readlines(): await self.execute(line) Logger.info('Database initialized')
async def connect(self): if self.connection: return Logger.debug(f'Connecting to database...') self.connection = await asyncpg.create_pool(self._config['url']) Logger.info(f'Connected to database')
def run(self): Logger.debug('Starting...') self.load_extensions() super().run(self.config.token)
async def on_connect(self): Logger.info(f'Connected to Discord API as {self.user} ({self.user.id})') await self.db.connect() await self.change_presence(activity=self.config.activity)
async def on_ready(self): Logger.info('Ready')