Generate a discord status icon below the image provided.

        This function is a coroutine.

        Parameters:
            status: str - a discord status, must be online, idle, dnd, or streaming
            avatar: str - http/s url pointing to an avatar, has to have proper headers and be a direct link to an image
                    (Note, this url is encoded by the wrapper itself, so you don't have to worry about encoding it ;))

        Return Type: image data

async def generate_status(self, status, avatar=None):
        """Generate a discord status icon below the image provided.

        This function is a coroutine.

        Parameters:
            status: str - a discord status, must be online, idle, dnd, or streaming
            avatar: str - http/s url pointing to an avatar, has to have proper headers and be a direct link to an image
                    (Note, this url is encoded by the wrapper itself, so you don't have to worry about encoding it ;))

        Return Type: image data"""
        if not isinstance(status, str):
            raise TypeError("type of 'status' must be str.")
        if avatar and not isinstance(avatar, str):
            raise TypeError("type of 'avatar' must be str.")
        url = f'https://api.weeb.sh/auto-image/discord-status?status={status}' + (f'&avatar={urllib.parse.quote(avatar, safe="")}' if avatar else '')
        async with aiohttp.ClientSession() as session:
            async with session.get(url, headers=self.__headers) as resp:
                if resp.status == 200:
                    return await resp.read()
                else:
                    raise Exception((await resp.json())['message'])