async def getwhich(self, ctx): """Gets a list of all which commands.""" items = list() monsters = [] for w in self.settings.which(): w %= 10000 nm = monster_id_to_named_monster(w) name = nm.group_computed_basename.title() result = self.settings.which()[w] if isinstance(result, list): monsters.append([name, result[1]]) else: monsters.append([name, "2000-01-01"]) tbl = prettytable.PrettyTable(['Monster', 'Timestamp']) tbl.hrules = prettytable.HEADER tbl.vrules = prettytable.NONE tbl.align = "l" for mon in sorted(sorted(monsters), key=lambda x: x[1]): tbl.add_row(mon) msg = tsutils.strip_right_multiline(tbl.get_string()) for page in pagify(msg): await ctx.send(box(page))
def patternsToTableText(self, patterns): tbl = prettytable.PrettyTable(["Rule Name", "Include regex", "Exclude regex"]) tbl.hrules = prettytable.HEADER tbl.vrules = prettytable.NONE tbl.align = "l" for value in patterns: tbl.add_row([value['name'], value['include_pattern'], value['exclude_pattern']]) return tsutils.strip_right_multiline(tbl.get_string())
def which_to_text(self): monsters = defaultdict(list) for monster_id in self.settings.which(): m = monster_id_to_monster(monster_id) if m is None: continue name = m.name_en.split(", ")[-1] grp = m.series.name monsters[grp].append(name) tbl = prettytable.PrettyTable(['Group', 'Members']) tbl.hrules = prettytable.HEADER tbl.vrules = prettytable.NONE tbl.align = "l" for grp in sorted(monsters.keys()): tbl.add_row([grp, ', '.join(sorted(monsters[grp]))]) tbl_string = tsutils.strip_right_multiline(tbl.get_string()) return tbl_string