From: Ian Jackson Date: Wed, 27 May 2009 22:57:54 +0000 (+0100) Subject: Merge branch 'keyboard' X-Git-Tag: 1.0~8 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?p=ypp-sc-tools.web-live.git;a=commitdiff_plain;h=bd2af4a72e41bdec3f416ac7cbcce93d66d74815;hp=9cec9bede40ddd31329097b6952d7a72ec005bbc Merge branch 'keyboard' --- diff --git a/yoweb-scrape b/yoweb-scrape index d2d194c..d42f427 100755 --- a/yoweb-scrape +++ b/yoweb-scrape @@ -348,7 +348,7 @@ class CrewInfo(SomethingSoupInfo): #---------- pretty-printer for tables of pirate puzzle standings ---------- class StandingsTable: - def __init__(self, use_puzzles=None, col_width=6): + def __init__(self, use_puzzles=None, col_width=6, gap_every=5): if use_puzzles is None: if opts.ship_duty: use_puzzles=duty_puzzles @@ -357,14 +357,21 @@ class StandingsTable: self._puzzles = use_puzzles self.s = '' self._cw = col_width-1 + self._gap_every = gap_every + self._linecount = 0 def _pline(self, pirate, puzstrs, extra): + if (self._linecount > 0 + and self._gap_every is not None + and not (self._linecount % self._gap_every)): + self.s += '\n' self.s += ' %-*s' % (max(max_pirate_namelen, 14), pirate) for v in puzstrs: self.s += ' %-*.*s' % (self._cw,self._cw, v) if extra: self.s += ' ' + extra self.s += '\n' + self._linecount += 1 def _puzstr(self, pi, puzzle): if not isinstance(puzzle,list): puzzle = [puzzle] @@ -391,9 +398,12 @@ class StandingsTable: spc = name.find(' ') if spc < 0: return name return name[0:min(4,spc)] + name[spc+1:] + self._linecount = -2 self._pline('', map(puzn_redact, self._puzzles), None) + self._linecount = 0 def literalline(self, line): self.s += line + '\n' + self._linecount = 0 def pirate_dummy(self, name, standingstring, extra=None): self._pline(name, standingstring * len(self._puzzles), extra) def pirate(self, pi, extra=None): @@ -878,6 +888,7 @@ def do_standings_crew_of(args, bu): tab.headings() for (rank, members) in ci.crew: if not members: continue + tab.literalline('') tab.literalline('%s:' % rank) for p in members: pi = PirateInfo(p, random.randint(900,1800)) @@ -1184,6 +1195,10 @@ display modes (for --display) apply to ship-aid: ao('--all-puzzles', action='store_false', dest='ship_duty', help='show all puzzles, not just ship duty stations') + ao('--min-cache-reuse', type='int', dest='min_max_age', + metavar='SECONDS', default=60, + help='always reuse cache yoweb data if no older than this') + (opts,args) = pa.parse_args() random.seed() @@ -1201,8 +1216,8 @@ display modes (for --display) apply to ship-aid: except KeyError: pa.error('unknown mode "%s"' % mode) # fixed parameters - opts.min_max_age = 60 - opts.expire_age = 3600 + opts.expire_age = max(3600, opts.min_max_age) + opts.ship_reboard_clearout = 3600 if opts.cache_dir.startswith('~/'):