Move league into route.

debian-sid
Tom Payne 15 years ago
parent e2e5c58da0
commit d6b6363e84

@ -21,7 +21,7 @@ from __future__ import with_statement
import datetime
import fileinput
from pprint import pprint
import optparse
import re
import sys
try:
@ -63,6 +63,7 @@ class RtePt(object):
class Rte(object):
def __init__(self):
self.league = None
self.name = None
self.distance = None
self.multiplier = None
@ -74,6 +75,7 @@ class Rte(object):
with tag(tb, 'rte'):
with tag(tb, 'name'): tb.data(self.name)
with tag(tb, 'extensions'):
with tag(tb, 'league'): tb.data(self.league)
with tag(tb, 'distance'): tb.data(str(self.distance))
with tag(tb, 'multiplier'): tb.data('%.2f' % self.multiplier);
with tag(tb, 'score'): tb.data(str(self.score))
@ -104,7 +106,7 @@ CIRCUITS = set(['FREE_TRIANGLE', 'FAI_TRIANGLE'])
class XC(object):
def __init__(self, file):
def __init__(self, file, league):
self.rtes = []
date = last_time = None
for line in file:
@ -117,6 +119,7 @@ class XC(object):
m = OUT_TYPE_RE.match(line)
if m:
rte = Rte()
rte.league = league
rte.name = PRETTY_NAME[m.group(1)]
rte.circuit = m.group(1) in CIRCUITS
self.rtes.append(rte)
@ -149,21 +152,25 @@ class XC(object):
last_time = time
continue
def toxml(self, tb, league):
def toxml(self, tb):
with tag(tb, 'gpx', {'version': '1.1', 'creator': 'http://github.com/twpayne/igc2kmz/master/tree'}):
with tag(tb, 'metadata'):
with tag(tb, 'extensions'):
with tag(tb, 'league'): tb.data(league)
for rte in self.rtes:
rte.toxml(tb)
return tb
def main(argv):
e = XC(fileinput.input()).toxml(xml.etree.ElementTree.TreeBuilder(), 'Online Contest').close()
sys.stdout.write('<?xml version="1.0" encoding="UTF-8"?>')
xml.etree.ElementTree.ElementTree(e).write(sys.stdout)
parser = optparse.OptionParser(description='olc2002 to GPX converter')
parser.add_option('-l', '--league', metavar='STRING')
parser.add_option('-o', '--output', metavar='FILENAME')
parser.set_defaults(league='OLC')
options, args = parser.parse_args(argv)
xc = XC(fileinput.input(args), options.league)
e = xc.toxml(xml.etree.ElementTree.TreeBuilder()).close()
output = open(options.output, 'w') if options.output else sys.stdout
output.write('<?xml version="1.0" encoding="UTF-8"?>')
xml.etree.ElementTree.ElementTree(e).write(output)
if __name__ == '__main__':
main(sys.argv)

@ -293,7 +293,7 @@ class Flight(object):
folder.add(globals.stock.invisible_none_folder)
for rank, rte in enumerate(sorted(self.xc.rtes, key=operator.attrgetter('score'), reverse=True)):
rows = []
rows.append(('League', self.xc.league))
rows.append(('League', rte.league))
rows.append(('Type', rte.name))
if rte.circuit:
if len(rte.rtepts) == 4:

@ -37,6 +37,7 @@ class Rte(object):
def __init__(self, etree):
self.name = etree.findtext('name').encode('utf_8')
self.league = etree.findtext('extensions/league').encode('utf_8')
self.distance = float(etree.findtext('extensions/distance'))
self.multiplier = float(etree.findtext('extensions/multiplier'))
self.score = float(etree.findtext('extensions/score'))
@ -48,5 +49,4 @@ class XC(object):
def __init__(self, file):
etree = xml.etree.ElementTree.parse(file)
self.league = etree.findtext('/metadata/extensions/league').encode('utf_8')
self.rtes = [Rte(rte) for rte in etree.findall('/rte')]

Loading…
Cancel
Save