#! /usr/bin/env python import sys, json, subprocess, logging, urlparse class Translator: def __init__(self): with open('mirrors.json') as mirrors: self.mirrors = json.load(mirrors) def interpret(self, url): parsed_url = urlparse.urlparse(url) if parsed_url.scheme == 'mirror': if parsed_url.netloc in self.mirrors: pidgin = [] for mirror in self.mirrors[parsed_url.netloc]: parsed_mirror = urlparse.urlparse(mirror) expansion = urlparse.ParseResult( parsed_mirror.scheme, parsed_mirror.netloc, parsed_url.path, parsed_url.params, parsed_url.query, parsed_url.fragment) pidgin.append(expansion.geturl()) return pidgin else: logging.warning("Unhandled mirror {} ({})".format(parsed_url.netloc, url)) return [] else: return [ url ] if __name__ == '__main__': translator = Translator() for line in sys.stdin: for translation in translator.interpret(line.strip()): print translation