package-manager-analytics/expand-mirrors.py

36 lines
1.3 KiB
Python

#! /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