from webby import attrsort from parseHistory import computeFilename def unparseOther(demo): r = [] if demo.filename is None: r.append('*') elif demo.filename != computeFilename(demo): r.append('{%s}'%(demo.filename,)) if demo.optimal: r.append('++') return ' '.join(r) def unparseNormalSection(config, cat): output = [] levels = attrsort(config.levels.values(), "seqno") ppad = max([len(p.name) for p in config.players.itervalues()]) for level in levels: demos = level.demos.get(cat, []) if demos: p = level.name + max(16 - len(level.name), 2)*" " for d in demos: assert len(d.players) == 1 pname = d.players[0].name.encode('latin-1') pname += (ppad - len(pname))*" " l = "%s %s %s %s"%(d.date, pname, d.time, unparseOther(d)) output.append(p + l) p = " "*16 return output def unparseHistory(config): output = [] output.append("**** Easy runs ****") output.extend(unparseNormalSection(config, "ER")) return output