def METHOD_NAME(self, search_params, age=0, ep_obj=None):
    results = []
    search_url = self.urls["search"]
    download_url = self.urls["download"]
    if self.custom_url:
        if validators.url(self.custom_url) != True:
            logger.warning("Invalid custom url: {0}".format(self.custom_url))
            return results
        search_url = urljoin(self.custom_url, search_url.split(self.url)[1])
        download_url = urljoin(self.custom_url, download_url.split(self.url)[1])
    if not self.login():
        return results
    for mode in search_params:
        items = []
        logger.debug(_("Search Mode: {mode}").format(mode=mode))
        for search_string in search_params[mode]:
            if mode != "RSS":
                logger.debug(_("Search String: {search_string}").format(search_string=search_string))
            get_params = {}
            get_params.update(self.categories[mode])
            get_params["q"] = search_string
            try:
                torrents = self.get_url(search_url, params=get_params, returns="json")
                # Handle empty string response or None #4304
                assert torrents
                # Make sure it is iterable #4304
                iter(torrents)
            except (TypeError, AssertionError):
                logger.debug("Data returned from provider does not contain any torrents")
                continue
            for torrent in torrents:
                title = re.sub(r"\[.*=.*\].*\[/.*\]", "", torrent["name"]) if torrent["name"] else None
                torrent_url = urljoin(download_url, "{0}/{1}.torrent".format(torrent["t"], torrent["name"])) if torrent["t"] and torrent["name"] else None
                if not all([title, torrent_url]):
                    continue
                seeders = try_int(torrent["seeders"])
                leechers = try_int(torrent["leechers"])
                # Filter unseeded torrent
                if seeders < self.minseed or leechers < self.minleech:
                    if mode != "RSS":
                        logger.debug(
                            "Discarding torrent because it doesn't meet the minimum seeders or leechers: {0} (S:{1} L:{2})".format(title, seeders, leechers)
                        )
                    continue
                torrent_size = torrent["size"]
                size = convert_size(torrent_size) or -1
                item = {"title": title, "link": torrent_url, "size": size, "seeders": seeders, "leechers": leechers, "hash": ""}
                if mode != "RSS":
                    logger.debug(
                        _("Found result: {title} with {seeders} seeders and {leechers} leechers".format(title=title, seeders=seeders, leechers=leechers))
                    )
                items.append(item)
        # For each search mode sort all the items by seeders if available
        items.sort(key=lambda d: try_int(d.get("seeders", 0)), reverse=True)
        results += items
    return results