import dbl import asyncio import logging from essentials.settings import SETTINGS class DiscordBotsOrgAPI: """Handles interactions with the discordbots.org API""" def __init__(self, bot): self.bot = bot self.token = SETTINGS.dbl_token self.dblpy = dbl.Client(self.bot, self.token) self.bot.loop.create_task(self.update_stats()) async def update_stats(self): """This function runs every 30 minutes to automatically update your server count""" while True: logger.info('attempting to post server count') try: await self.dblpy.post_server_count() logger.info('posted server count ({})'.format(len(self.bot.servers))) except Exception as e: logger.exception('Failed to post server count\n{}: {}'.format(type(e).__name__, e)) await asyncio.sleep(1800) def setup(bot): global logger logger = logging.getLogger('bot') bot.add_cog(DiscordBotsOrgAPI(bot))