def METHOD_NAME(self, search_strings, age=0, ep_obj=None, **kwargs):
    """
    Search a provider and parse the results.
    :param search_strings: A dict with mode (key) and the search value (value)
    :param age: Not used
    :param ep_obj: Not used
    :returns: A list of search results (structure)
    """
    results = []
    if not self.login():
        return results
    # Search Params
    search_params = {
        'app_id': app.RARBG_APPID,
        'category': 'tv',
        'min_seeders': self.minseed,
        'min_leechers': self.minleech,
        'limit': 100,
        'format': 'json_extended',
        'ranked': try_int(self.ranked),
        'token': self.token,
        'sort': 'last',
        'mode': 'list',
    }
    for mode in search_strings:
        log.debug('Search mode: {0}', mode)
        if mode == 'RSS':
            search_params['search_string'] = None
            search_params['search_tvdb'] = None
        else:
            search_params['sort'] = self.sorting if self.sorting else 'seeders'
            search_params['mode'] = 'search'
            search_params['search_tvdb'] = self._get_tvdb_id()
        for search_string in search_strings[mode]:
            if mode != 'RSS':
                log.debug('Search string: {search}',
                          {'search': search_string})
                if self.ranked:
                    log.debug('Searching only ranked torrents')
            search_params['search_string'] = search_string
            # Check if token is still valid before search
            if not self.login():
                continue
            # Maximum requests allowed are 1req/2sec
            # Changing to 5 because of server clock desync
            time.sleep(5)
            search_url = self.urls['api']
            response = self.session.get(search_url, params=search_params)
            if not response or not response.content:
                log.debug('No data returned from provider')
                continue
            try:
                jdata = response.json()
            except ValueError:
                log.debug('No data returned from provider')
                continue
            error = jdata.get('error')
            error_code = jdata.get('error_code')
            if error:
                # List of errors: https://github.com/rarbg/torrentapi/issues/1#issuecomment-114763312
                if error_code == 5:
                    # 5 = Too many requests per second
                    log_level = logging.INFO
                elif error_code not in (4, 8, 10, 12, 14, 20):
                    # 4 = Invalid token. Use get_token for a new one!
                    # 8, 10, 12, 14 = Cant find * in database. Are you sure this * exists?
                    # 20 = No results found
                    log_level = logging.WARNING
                else:
                    log_level = logging.DEBUG
                log.log(log_level, '{msg} Code: {code}', {'msg': error, 'code': error_code})
                continue
            results += self.parse(jdata, mode)
    return results