diff options
Diffstat (limited to 'mirrorselect/selectors.py')
-rw-r--r-- | mirrorselect/selectors.py | 73 |
1 files changed, 0 insertions, 73 deletions
diff --git a/mirrorselect/selectors.py b/mirrorselect/selectors.py index 3e77221..9d718fd 100644 --- a/mirrorselect/selectors.py +++ b/mirrorselect/selectors.py @@ -47,82 +47,9 @@ else: url_open = urllib.urlopen -from mirrorselect.mirrorparser3 import MirrorParser3 from mirrorselect.output import encoder, get_encoding, decode_selection -class Extractor(object): - """The Extractor employs a MirrorParser3 object to get a list of valid - mirrors, and then filters them. Only the mirrors that should be tested, based on - user input are saved. They will be in the hosts attribute.""" - - def __init__(self, list_url, options, output): - self.output = output - filters = {} - for opt in ["country", "region"]: - value = getattr(options, opt) - if value is not None: - filters[opt] = value - self.output.print_info('Limiting test to "%s=%s" hosts. \n' - %(opt, value)) - for opt in ["ftp", "http"]: - if getattr(options, opt): - filters["proto"] = opt - self.output.print_info('Limiting test to %s hosts. \n' % opt ) - parser = MirrorParser3() - self.hosts = [] - - self.unfiltered_hosts = self.getlist(parser, list_url) - - self.hosts = self.filter_hosts(filters, self.unfiltered_hosts) - - self.output.write('Extractor(): fetched mirrors.xml,' - ' %s hosts after filtering\n' % len(self.hosts), 2) - - - @staticmethod - def filter_hosts(filters, hosts): - """Filter the hosts to the criteria passed in - Return the filtered list - """ - if not len(filters): - return hosts - filtered = [] - for uri, data in hosts: - good = True - for f in filters: - if data[f] != filters[f]: - good = False - continue - if good: - filtered.append((uri, data)) - return filtered - - - def getlist(self, parser, url): - """ - Uses the supplied parser to get a list of urls. - Takes a parser object, url, and filering options. - """ - - self.output.write('getlist(): fetching ' + url + '\n', 2) - - self.output.print_info('Downloading a list of mirrors...') - - try: - parser.parse(url_open(url).read()) - except EnvironmentError: - pass - - if len(parser.tuples()) == 0: - self.output.print_err('Could not get mirror list. ' - 'Check your internet connection.') - - self.output.write(' Got %d mirrors.\n' % len(parser.tuples())) - - return parser.tuples() - - class Shallow(object): """handles rapid server selection via netselect""" |