code: async def get_image(self, imgtype=None, tags=None, nsfw=None, hidden=None, filetype=None):
          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'])