def get_latest_build_date()

in mozdownload/scraper.py [0:0]


    def get_latest_build_date(self):
        """Return date of latest available nightly build."""
        if self.application not in ('fenix'):
            url = urljoin(self.base_url, 'nightly', 'latest-%s/' % self.branch)
        elif self.application == 'fenix':
            years = self._create_directory_parser(urljoin(self.base_url, 'nightly/'))
            years.entries.sort()
            months = self._create_directory_parser(urljoin(self.base_url, 'nightly',
                                                           years.entries[-1] + '/'))
            months.entries.sort()

            url = urljoin(self.base_url, 'nightly', years.entries[-1],
                          months.entries[-1] + '/')
            parser = self._create_directory_parser(url)
            parser.entries = parser.filter(r'.*%s' % self.platform_regex)
            if not parser.entries:
                raise errors.NotFoundError('No builds have been found', url)
            parser.entries.sort()

            date = ''.join(parser.entries[-1].split('-')[:6])
            return datetime.strptime(date, '%Y%m%d%H%M%S')
        else:
            url = urljoin(self.base_url, 'nightly', 'latest-%s-%s/' %
                          (self.branch, self.platform))

        self.logger.info('Retrieving the build status file from %s' % url)
        parser = self._create_directory_parser(url)
        parser.entries = parser.filter(r'.*%s\.txt' % self.platform_regex)
        if not parser.entries:
            message = 'Status file for %s build cannot be found' % \
                      self.platform_regex
            raise errors.NotFoundError(message, url)

        # Read status file for the platform, retrieve build id,
        # and convert to a date
        headers = {'Cache-Control': 'max-age=0'}

        r = self.session.get(url + parser.entries[-1], headers=headers)
        try:
            r.raise_for_status()

            return datetime.strptime(r.text.replace('\r\n', '\n').split('\n')[0], '%Y%m%d%H%M%S')
        finally:
            r.close()