+ def _str_vessel(self, vn, v):
+ s = ' vessel %s\n' % vn
+ s += ' '*20 + "%-*s %13s\n" % (
+ max_pirate_namelen, '#lastaboard',
+ v['#lastaboard'])
+ for pn in sorted(v.keys()):
+ if pn.startswith('#'): continue
+ pa = v[pn]
+ assert pa.v == v
+ assert self._pl[pn] == pa
+ s += ' '*20 + "%s %-*s %13s %-30s %13s %s\n" % (
+ (' ','G')[pa.gunner],
+ max_pirate_namelen, pn,
+ pa.last_time, pa.last_event,
+ pa.last_chat_time, pa.last_chat_chan)
+ return s
+
+ def __str__(self):
+ s = '''<ChatLogTracker
+ myself %s
+ vessel %s
+''' % (self._myself.name, self._vessel)
+ assert ((self._v is None and self._vessel is None) or
+ (self._v is self._vl[self._vessel]))
+ if self._vessel is not None:
+ s += self._str_vessel(self._vessel, self._v)
+ for vn in sorted(self._vl.keys()):
+ if vn == self._vessel: continue
+ s += self._str_vessel(vn, self._vl[vn])
+ for p in self._pl:
+ pa = self._pl[p]
+ assert pa.v[p] is pa
+ assert pa.v in self._vl.values()
+ s += '>\n'
+ return s
+