'Get the archive list from a given `title_id` and `language_code`.
:param int title_id: title id.
:param int language_code: language code.
:return: the archives.
:rtype: list of :class:`LegendasTVArchive`'

@region.cache_on_arguments(expiration_time=timedelta(minutes=15).total_seconds())
def get_archives(self, title_id, language_code):

    logger.info('Getting    archives    for    title    %d    and    language    %d', title_id, language_code)
    archives = []
    page = 1
    while True:
        url = (self.server_url + 'util/carrega_legendas_busca_filme/{title}/{language}/-/{page}'.format(title=title_id, language=language_code, page=page))
        r = self.session.get(url)
        r.raise_for_status()
        soup = ParserBeautifulSoup(r.content, ['lxml', 'html.parser'])
        for archive_soup in soup.select('div.list_element    >    article    >    div'):
            archive = LegendasTVArchive(archive_soup.a['href'].split('/')[2], archive_soup.a.text, ('pack' in archive_soup['class']), ('destaque' in archive_soup['class']), (self.server_url + archive_soup.a['href'][1:]))
            data_text = archive_soup.find('p', class_='data').text
            archive.downloads = int(downloads_re.search(data_text).group('downloads'))
            match = rating_re.search(data_text)
            if match:
                archive.rating = int(match.group('rating'))
            time_data = {k: int(v) for (k, v) in timestamp_re.search(data_text).groupdict().items()}
            archive.timestamp = pytz.timezone('America/Sao_Paulo').localize(datetime(**time_data))
            if (archive.timestamp > datetime.utcnow().replace(tzinfo=pytz.utc)):
                raise ProviderError('Archive    timestamp    is    in    the    future')
            archives.append(archive)
        if (soup.find('a', attrs={'class': 'load_more'}, string='carregar    mais') is None):
            break
        page += 1
    logger.debug('Found    %d    archives', len(archives))
    return archives
