Request an image from weeb.sh.

        This function is a coroutine.

        Parameters:
            imgtype: str - the type of image to get. (If not specified, needs at least one tag)
            tags: list - the tags to search by. (If not specified, needs type)
            nsfw: str - whether or not the images recieved are nsfw. (Optional)
            hidden: bool - whether you only get public images or hidden images uploaded by yourself. (If not specified, both are supplied)
            filetype: str - the file type to get. Supported are jpg,jpeg,png,gif. (If not specified, all filetypes are grabbed)

        Return Type: `list` (returns as [url, id, filetype])

async def get_image(self, imgtype=None, tags=None, nsfw=None, hidden=None, filetype=None):
        """Request an image from weeb.sh.

        This function is a coroutine.

        Parameters:
            imgtype: str - the type of image to get. (If not specified, needs at least one tag)
            tags: list - the tags to search by. (If not specified, needs type)
            nsfw: str - whether or not the images recieved are nsfw. (Optional)
            hidden: bool - whether you only get public images or hidden images uploaded by yourself. (If not specified, both are supplied)
            filetype: str - the file type to get. Supported are jpg,jpeg,png,gif. (If not specified, all filetypes are grabbed)

        Return Type: `list` (returns as [url, id, filetype])"""
        if not imgtype and not tags:
            raise MissingTypeOrTags("'get_image' requires at least one of either type or tags.")
        if imgtype and not isinstance(imgtype, str):
            raise TypeError("type of 'imgtype' must be str.")
        if tags and not isinstance(tags, list):
            raise TypeError("type of 'tags' must be list or None.")
        if hidden and not isinstance(hidden, bool):
            raise TypeError("type of 'hidden' must be bool or None.")
        if nsfw and not isinstance(nsfw, bool) and (isinstance(nsfw, str) and nsfw == 'only'):
            raise TypeError("type of 'nsfw' must be str, bool or None.")
        if filetype and not isinstance(filetype, str):
            raise TypeError("type of 'filetype' must be str.")
        url = 'https://api.weeb.sh/images/random' + (f'?type={imgtype}' if imgtype else '') + (
            f'{"?" if not imgtype else "&"}tags={",".join(tags)}' if tags else '') + (
              f'&nsfw={nsfw.lower()}' if nsfw else '') + (f'&hidden={hidden}' if hidden else '') + (
              f'&filetype={filetype}' if filetype else '')
        async with aiohttp.ClientSession() as session:
            async with session.get(url, headers=self.__headers) as resp:
                if resp.status == 200:
                    js = await resp.json()
                    return [js['url'], js['id'], js['fileType']]
                else:
                    raise Exception((await resp.json())['message'])