# Buggy code
def search(self, search_strings, age=0, ep_obj=None):
    """
    Search indexer using the params in search_strings, either for latest releases, or a string/id search.

    :return: list of results in dict form
    """
    results = []
    if not self._check_auth():
        return results

    # For providers that don't have caps, or for which the t=caps is not working.
    if not self.caps and all(
        provider not in self.url for provider in self.providers_without_caps
    ):
        self.get_newznab_categories(just_caps=True)
        if not self.caps:
            return results

    for mode in search_strings:
        self.torznab = False
        search_params = {
            "t": "search",
            "limit": 100,
            "offset": 0,
            "cat": self.cat_ids.strip(", ") or "5030,5040",
            "maxage": app.USENET_RETENTION,
        }

        if self.needs_auth and self.key:
            search_params["apikey"] = self.key

        if mode != "RSS":
            match_indexer = self._match_indexer()
            search_params["t"] = (
                "tvsearch" if match_indexer and not self.force_query else "search"
            )

            if search_params["t"] == "tvsearch":
                search_params.update(match_indexer)

                if ep_obj.show.air_by_date or ep_obj.show.sports:
                    date_str = str(ep_obj.airdate)
                    search_params["season"] = date_str.partition("-")[0]
                    search_params["ep"] = date_str.partition("-")[2].replace("-", "/")
                else:
                    search_params["season"] = ep_obj.scene_season
                    search_params["ep"] = ep_obj.scene_episode

            if mode == "Season":
                search_params.pop("ep", "")

        items = []
        log.debug("Search mode: {0}", mode)

        for search_string in search_strings[mode]:
            if mode != "RSS":
                # If its a PROPER search, need to change param to 'search' so it searches using 'q' param
                if any(
                    proper_string in search_string
                    for proper_string in self.proper_strings
                ):
                    search_params["t"] = "search"

                log.debug(
                    "Search show using {search}",
                    {
                        "search": "search string: {search_string}".format(
                            search_string=search_string
                            if search_params["t"] != "tvsearch"
                            else "indexer_id: {indexer_id}".format(
                                indexer_id=match_indexer
                            )
                        )
                    },
                )

                if search_params["t"] != "tvsearch":
                    search_params["q"] = search_string

            time.sleep(cpu_presets[app.CPU_PRESET])

            response = self.get_url(
                urljoin(self.url, "api"), params=search_params, returns="response"
            )
            if not response or not response.text:
                log.debug("No data returned from provider")
                continue

            with BS4Parser(response.text, "html5lib") as html:
                if not self._check_auth_from_data(html):
                    return items

                try:
                    self.torznab = "xmlns:torznab" in html.rss.attrs
                except AttributeError:
                    self.torznab = False

                if not html("item"):
                    log.debug(
                        "No results returned from provider. Check chosen Newznab search categories"
                        " in provider settings and/or usenet retention"
                    )
                    continue

                for item in html("item"):
                    try:
                        title = item.title.get_text(strip=True)
                        download_url = None
                        if item.link:
                            if validators.url(item.link.get_text(strip=True)):
                                download_url = item.link.get_text(strip=True)
                            elif validators.url(item.link.next.strip()):
                                download_url = item.link.next.strip()

                        if not download_url and item.enclosure:
                            if validators.url(item.enclosure.get("url", "").strip()):
                                download_url = item.enclosure.get("url", "").strip()

                        if not (title and download_url):
                            continue

                        seeders = leechers = -1
                        if "gingadaddy" in self.url:
                            size_regex = re.search(
                                r"\d*.?\d* [KMGT]B", str(item.description)
                            )
                            item_size = size_regex.group() if size_regex else -1
                        else:
                            item_size = (
                                item.size.get_text(strip=True) if item.size else -1
                            )
                            for attr in item("newznab:attr") + item("torznab:attr"):
                                item_size = (
                                    attr["value"]
                                    if attr["name"] == "size"
                                    else item_size
                                )
                                seeders = (
                                    try_int(attr["value"])
                                    if attr["name"] == "seeders"
                                    else seeders
                                )
                                peers = (
                                    try_int(attr["value"])
                                    if attr["name"] == "peers"
                                    else None
                                )
                                leechers = peers - seeders if peers else leechers

                        if not item_size or (
                            self.torznab and (seeders is -1 or leechers is -1)
                        ):
                            continue

                        size = convert_size(item_size) or -1
                        pubdate_raw = item.pubdate.get_text(strip=True)
                        try:
                            pubdate = (
                                parser.parse(pubdate_raw, fuzzy=True)
                                if pubdate_raw
                                else None
                            )
                        except ValueError:
                            pubdate = None

                        item = {
                            "title": title,
                            "link": download_url,
                            "size": size,
                            "seeders": seeders,
                            "leechers": leechers,
                            "pubdate": pubdate,
                        }
                        if mode != "RSS":
                            if seeders == -1:
                                log.debug("Found result: {0}", title)
                            else:
                                log.debug(
                                    "Found result: {0} with {1} seeders and {2} leechers",
                                    title,
                                    seeders,
                                    leechers,
                                )

                        items.append(item)
                    except (
                        AttributeError,
                        TypeError,
                        KeyError,
                        ValueError,
                        IndexError,
                    ):
                        log.error(
                            "Failed parsing provider. Traceback: {0!r}",
                            traceback.format_exc(),
                        )
                        continue

            # Since we arent using the search string,
            # break out of the search string loop
            if "tvdbid" in search_params:
                break

        results += items

    # Reproces but now use force_query = True
    if not results and not self.force_query:
        self.force_query = True
        return self.search(search_strings, ep_obj=ep_obj)

    return results


# Traceback (IndexError)
2016-11-26 00:56:40 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [DOGnzb] :: [617ad17] Creating UNIQUE URL index for dognzb
2016-11-26 00:56:42 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [DOGnzb] :: [617ad17] GET URL: https://api.dognzb.cr/api?apikey=**********&t=caps [Status: 200]
2016-11-26 00:56:44 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [DOGnzb] :: [617ad17] Search mode: Episode
2016-11-26 00:56:44 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [DOGnzb] :: [617ad17] Search show using search string: indexer_id: {u'tvdbid': 279271}
2016-11-26 00:56:45 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [DOGnzb] :: [617ad17] GET URL: https://api.dognzb.cr/api?apikey=**********&tvdbid=279271&season=2&maxage=3000&cat=5000%2C5020%2C5030%2C5040%2C5045%2C5050%2C5060%2C5080&limit=100&t=tvsearch&offset=0&ep=10 [Status: 200]
2016-11-26 00:56:45 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [DOGnzb] :: [617ad17] Search mode: Episode
2016-11-26 00:56:45 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [DOGnzb] :: [617ad17] Search show using search string: Cordon S02E10
2016-11-26 00:56:45 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [DOGnzb] :: [617ad17] GET URL: https://api.dognzb.cr/api?apikey=**********&maxage=3000&cat=5000%2C5020%2C5030%2C5040%2C5045%2C5050%2C5060%2C5080&q=Cordon+S02E10&limit=100&t=search&offset=0 [Status: 200]
2016-11-26 00:56:45 INFO     SEARCHQUEUE-BACKLOG-279271 :: [Pretome] :: [617ad17] Performing episode search for Cordon
2016-11-26 00:56:45 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [Pretome] :: [617ad17] Creating UNIQUE URL index for pretome
2016-11-26 00:56:46 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [Pretome] :: [617ad17] POST URL: https://pretome.info/takelogin.php [Status: 302]
2016-11-26 00:56:46 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [Pretome] :: [617ad17] With post data: username=**********&password=**********&login_pin=**********
2016-11-26 00:56:47 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [Pretome] :: [617ad17] GET URL: https://pretome.info/index.php [Status: 200]
2016-11-26 00:56:47 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [Pretome] :: [617ad17] Search mode: Episode
2016-11-26 00:56:47 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [Pretome] :: [617ad17] Search string: Cordon S02E10
2016-11-26 00:56:48 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [Pretome] :: [617ad17] GET URL: https://pretome.info/browse.php?search=Cordon+S02E10&cat%5B%5D=7&st=1 [Status: 200]
2016-11-26 00:56:49 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [Pretome] :: [617ad17] Data returned from provider does not contain any torrents
2016-11-26 00:56:49 INFO     SEARCHQUEUE-BACKLOG-279271 :: [T411] :: [617ad17] Performing episode search for Cordon
2016-11-26 00:56:49 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [T411] :: [617ad17] Creating UNIQUE URL index for t411
2016-11-26 00:56:49 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [T411] :: [617ad17] POST URL: https://api.t411.li/auth [Status: 200]
2016-11-26 00:56:49 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [T411] :: [617ad17] With post data: username=**********&password=**********
2016-11-26 00:56:49 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [T411] :: [617ad17] Search mode: Episode
2016-11-26 00:56:49 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [T411] :: [617ad17] Search string: Cordon S02E10
2016-11-26 00:56:49 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [T411] :: [617ad17] GET URL: https://api.t411.li/torrents/search/Cordon%20S02E10*?cid=433&limit=100 [Status: 200]
2016-11-26 00:56:49 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [T411] :: [617ad17] Data returned from provider does not contain any torrents
2016-11-26 00:56:50 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [T411] :: [617ad17] GET URL: https://api.t411.li/torrents/search/Cordon%20S02E10*?cid=637&limit=100 [Status: 200]
2016-11-26 00:56:50 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [T411] :: [617ad17] Data returned from provider does not contain any torrents
2016-11-26 00:56:50 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [T411] :: [617ad17] GET URL: https://api.t411.li/torrents/search/Cordon%20S02E10*?cid=455&limit=100 [Status: 200]
2016-11-26 00:56:50 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [T411] :: [617ad17] Data returned from provider does not contain any torrents
2016-11-26 00:56:50 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [T411] :: [617ad17] GET URL: https://api.t411.li/torrents/search/Cordon%20S02E10*?cid=639&limit=100 [Status: 200]
2016-11-26 00:56:50 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [T411] :: [617ad17] Data returned from provider does not contain any torrents
2016-11-26 00:56:50 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [T411] :: [617ad17] Fallback season pack search initiate
2016-11-26 00:56:50 INFO     SEARCHQUEUE-BACKLOG-279271 :: [T411] :: [617ad17] Performing season pack search for Cordon
2016-11-26 00:56:50 INFO     SEARCHQUEUE-BACKLOG-279271 :: [TransmitTheNet] :: [617ad17] Performing episode search for Cordon
2016-11-26 00:56:50 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [TransmitTheNet] :: [617ad17] Creating UNIQUE URL index for transmitthenet
2016-11-26 00:56:51 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [TransmitTheNet] :: [617ad17] POST URL: https://transmithe.net/login.php [Status: 302]
2016-11-26 00:56:51 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [TransmitTheNet] :: [617ad17] With post data: username=**********&login=Login&password=**********&keeplogged=on
2016-11-26 00:56:51 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [TransmitTheNet] :: [617ad17] GET URL: https://transmithe.net/index.php [Status: 200]
2016-11-26 00:56:51 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [TransmitTheNet] :: [617ad17] Search mode: Episode
2016-11-26 00:56:51 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [TransmitTheNet] :: [617ad17] Search string: Cordon S02E10
2016-11-26 00:56:51 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [TransmitTheNet] :: [617ad17] GET URL: https://transmithe.net/torrents.php?filter_freeleech=0&searchtext=Cordon+S02E10&order_by=seeders&order_way=desc [Status: 200]
2016-11-26 00:56:53 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [TransmitTheNet] :: [617ad17] Data returned from provider does not contain any torrents
2016-11-26 00:56:53 INFO     SEARCHQUEUE-BACKLOG-279271 :: [Usenet-Crawler] :: [617ad17] Performing episode search for Cordon
2016-11-26 00:56:53 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [Usenet-Crawler] :: [617ad17] Creating UNIQUE URL index for usenet_crawler
2016-11-26 00:56:53 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [Usenet-Crawler] :: [617ad17] GET URL: https://www.usenet-crawler.com/api?apikey=**********&t=caps [Status: 200]
2016-11-26 00:56:56 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [Usenet-Crawler] :: [617ad17] Search mode: Episode
2016-11-26 00:56:56 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [Usenet-Crawler] :: [617ad17] Search show using search string: indexer_id: {u'tvdbid': 279271}
2016-11-26 00:56:56 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [Usenet-Crawler] :: [617ad17] GET URL: https://www.usenet-crawler.com/api?apikey=**********&tvdbid=279271&season=2&maxage=3000&cat=5000%2C5080%2C5020%2C5040%2C5050%2C5030%2C5060&limit=100&t=tvsearch&offset=0&ep=10 [Status: 200]
2016-11-26 00:56:56 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [Usenet-Crawler] :: [617ad17] Search mode: Episode
2016-11-26 00:56:56 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [Usenet-Crawler] :: [617ad17] Search show using search string: Cordon S02E10
2016-11-26 00:56:56 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [Usenet-Crawler] :: [617ad17] GET URL: https://www.usenet-crawler.com/api?apikey=**********&maxage=3000&cat=5000%2C5080%2C5020%2C5040%2C5050%2C5030%2C5060&q=Cordon+S02E10&limit=100&t=search&offset=0 [Status: 200]
2016-11-26 00:56:56 INFO     SEARCHQUEUE-BACKLOG-279271 :: [Speedcd] :: [617ad17] Performing episode search for Cordon
2016-11-26 00:56:56 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [Speedcd] :: [617ad17] Creating UNIQUE URL index for speedcd
2016-11-26 00:56:59 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [Speedcd] :: [617ad17] POST URL: https://speed.cd/takeElogin.php [Status: 302]
2016-11-26 00:56:59 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [Speedcd] :: [617ad17] With post data: username=**********&password=**********
2016-11-26 00:57:00 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [Speedcd] :: [617ad17] GET URL: https://speed.cd/ [Status: 200]
2016-11-26 00:57:00 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [Speedcd] :: [617ad17] Search mode: Episode
2016-11-26 00:57:00 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [Speedcd] :: [617ad17] Search string: Cordon S02E10
2016-11-26 00:57:05 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [Speedcd] :: [617ad17] GET URL: https://speed.cd/browse.php?c55=1&c52=1&search=Cordon+S02E10&c41=1&c50=1&c2=1&c30=1&c49=1 [Status: 200]
2016-11-26 00:57:06 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [Speedcd] :: [617ad17] Data returned from provider does not contain any torrents
2016-11-26 00:57:07 INFO     SEARCHQUEUE-BACKLOG-279271 :: [TorrentLeech] :: [617ad17] Performing episode search for Cordon
2016-11-26 00:57:07 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [TorrentLeech] :: [617ad17] Creating UNIQUE URL index for torrentleech
2016-11-26 00:57:07 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [TorrentLeech] :: [617ad17] POST URL: https://torrentleech.org/user/account/login/ [Status: 302]
2016-11-26 00:57:07 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [TorrentLeech] :: [617ad17] With post data: username=**********&remember_me=on&login=submit&password=**********
2016-11-26 00:57:07 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [TorrentLeech] :: [617ad17] GET URL: https://torrentleech.org/ [Status: 200]
2016-11-26 00:57:07 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [TorrentLeech] :: [617ad17] Search mode: Episode
2016-11-26 00:57:07 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [TorrentLeech] :: [617ad17] Search string: Cordon S02E10
2016-11-26 00:57:08 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [TorrentLeech] :: [617ad17] GET URL: https://torrentleech.org/torrents/browse?query=Cordon+S02E10&categories=2%2C7%2C35%2C26%2C32 [Status: 200]
2016-11-26 00:57:08 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [TorrentLeech] :: [617ad17] Data returned from provider does not contain any torrents
2016-11-26 00:57:08 INFO     SEARCHQUEUE-BACKLOG-279271 :: [LimeTorrents] :: [617ad17] Performing episode search for Cordon
2016-11-26 00:57:08 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [LimeTorrents] :: [617ad17] Creating UNIQUE URL index for limetorrents
2016-11-26 00:57:08 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [LimeTorrents] :: [617ad17] Search mode: Episode
2016-11-26 00:57:08 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [LimeTorrents] :: [617ad17] Search string: Cordon S02E10
2016-11-26 00:57:09 DEBUG    SEARCHQUEUE-BACKLOG-279271 :: [LimeTorrents] :: [617ad17] GET URL: https://www.limetorrents.cc/search/tv/Cordon%20S02E10/ [Status: 200]
2016-11-26 00:57:09 ERROR    SEARCHQUEUE-BACKLOG-279271 :: [LimeTorrents] :: [617ad17] Unknown exception while searching LimeTorrents. Error: 'list index out of range'
Traceback (most recent call last):
  File "/home/home/SickRage/**********/search/core.py", line 560, in searchProviders
    down_cur_quality, manual_search, manual_search_type)
  File "/home/home/SickRage/**********/providers/generic_provider.py", line 193, in find_search_results
    items_list += self.search(search_string, ep_obj=episode)
  File "/home/home/SickRage/**********/providers/torrent/html/limetorrents.py", line 98, in search
    results += self.parse(response.text, mode)
  File "/home/home/SickRage/**********/providers/torrent/html/limetorrents.py", line 121, in parse
    torrent_table = torrent_table[0 if mode == 'RSS' else 1]
IndexError: list index out of range

# Fixed code
def search(self, search_strings, age=0, ep_obj=None):
    """
    Search indexer using the params in search_strings, either for latest releases, or a string/id search.

    :return: list of results in dict form
    """
    results = []
    if not self._check_auth():
        return results

    # For providers that don't have caps, or for which the t=caps is not working.
    if not self.caps and all(
        provider not in self.url for provider in self.providers_without_caps
    ):
        self.get_newznab_categories(just_caps=True)
        if not self.caps:
            return results

    for mode in search_strings:
        self.torznab = False
        search_params = {
            "t": "search",
            "limit": 100,
            "offset": 0,
            "cat": self.cat_ids.strip(", ") or "5030,5040",
            "maxage": app.USENET_RETENTION,
        }

        if self.needs_auth and self.key:
            search_params["apikey"] = self.key

        if mode != "RSS":
            match_indexer = self._match_indexer()
            search_params["t"] = (
                "tvsearch" if match_indexer and not self.force_query else "search"
            )

            if search_params["t"] == "tvsearch":
                search_params.update(match_indexer)

                if ep_obj.show.air_by_date or ep_obj.show.sports:
                    date_str = str(ep_obj.airdate)
                    search_params["season"] = date_str.partition("-")[0]
                    search_params["ep"] = date_str.partition("-")[2].replace("-", "/")
                else:
                    search_params["season"] = ep_obj.scene_season
                    search_params["ep"] = ep_obj.scene_episode

            if mode == "Season":
                search_params.pop("ep", "")

        items = []
        log.debug("Search mode: {0}", mode)

        for search_string in search_strings[mode]:
            if mode != "RSS":
                # If its a PROPER search, need to change param to 'search' so it searches using 'q' param
                if any(
                    proper_string in search_string
                    for proper_string in self.proper_strings
                ):
                    search_params["t"] = "search"

                log.debug(
                    "Search show using {search}",
                    {
                        "search": "search string: {search_string}".format(
                            search_string=search_string
                            if search_params["t"] != "tvsearch"
                            else "indexer_id: {indexer_id}".format(
                                indexer_id=match_indexer
                            )
                        )
                    },
                )

                if search_params["t"] != "tvsearch":
                    search_params["q"] = search_string

            time.sleep(cpu_presets[app.CPU_PRESET])

            response = self.get_url(
                urljoin(self.url, "api"), params=search_params, returns="response"
            )
            if not response or not response.text:
                log.debug("No data returned from provider")
                continue

            with BS4Parser(response.text, "html5lib") as html:
                if not self._check_auth_from_data(html):
                    return items

                try:
                    self.torznab = "xmlns:torznab" in html.rss.attrs
                except AttributeError:
                    self.torznab = False

                if not html("item"):
                    log.debug(
                        "No results returned from provider. Check chosen Newznab search categories"
                        " in provider settings and/or usenet retention"
                    )
                    continue

                for item in html("item"):
                    try:
                        title = item.title.get_text(strip=True)
                        download_url = None
                        if item.link:
                            if validators.url(item.link.get_text(strip=True)):
                                download_url = item.link.get_text(strip=True)
                            elif validators.url(item.link.next.strip()):
                                download_url = item.link.next.strip()

                        if not download_url and item.enclosure:
                            if validators.url(item.enclosure.get("url", "").strip()):
                                download_url = item.enclosure.get("url", "").strip()

                        if not (title and download_url):
                            continue

                        seeders = leechers = -1
                        if "gingadaddy" in self.url:
                            size_regex = re.search(
                                r"\d*.?\d* [KMGT]B", str(item.description)
                            )
                            item_size = size_regex.group() if size_regex else -1
                        else:
                            item_size = (
                                item.size.get_text(strip=True) if item.size else -1
                            )
                            for attr in item("newznab:attr") + item("torznab:attr"):
                                item_size = (
                                    attr["value"]
                                    if attr["name"] == "size"
                                    else item_size
                                )
                                seeders = (
                                    try_int(attr["value"])
                                    if attr["name"] == "seeders"
                                    else seeders
                                )
                                peers = (
                                    try_int(attr["value"])
                                    if attr["name"] == "peers"
                                    else None
                                )
                                leechers = peers - seeders if peers else leechers

                        if not item_size or (
                            self.torznab and (seeders is -1 or leechers is -1)
                        ):
                            continue

                        size = convert_size(item_size) or -1
                        pubdate_raw = item.pubdate.get_text(strip=True)
                        pubdate = self._parse_pubdate(pubdate_raw)

                        item = {
                            "title": title,
                            "link": download_url,
                            "size": size,
                            "seeders": seeders,
                            "leechers": leechers,
                            "pubdate": pubdate,
                        }
                        if mode != "RSS":
                            if seeders == -1:
                                log.debug("Found result: {0}", title)
                            else:
                                log.debug(
                                    "Found result: {0} with {1} seeders and {2} leechers",
                                    title,
                                    seeders,
                                    leechers,
                                )

                        items.append(item)
                    except (
                        AttributeError,
                        TypeError,
                        KeyError,
                        ValueError,
                        IndexError,
                    ):
                        log.error(
                            "Failed parsing provider. Traceback: {0!r}",
                            traceback.format_exc(),
                        )
                        continue

            # Since we arent using the search string,
            # break out of the search string loop
            if "tvdbid" in search_params:
                break

        results += items

    # Reproces but now use force_query = True
    if not results and not self.force_query:
        self.force_query = True
        return self.search(search_strings, ep_obj=ep_obj)

    return results