import json class Output: name = None needsFilename = False def __init__(self, name): super().__init__() self.name = name def open(self, file: str = None): pass def close(self): pass def print(self, stats, msgcount, dialog): pass class STDOUT(Output): def __init__(self, name: str = "stdout"): super().__init__(name) def print(self, stats, msgcount, dialog): for stat in stats: print(stat.name, ': ', stat.getValue(msgcount), sep='') class jsonOut(Output): file = None needsFilename = True outbuff = [] def __init__(self, name: str = "json"): super().__init__(name) def open(self, file): if file is None: file = "out.json" self.file = open(file, "w") def close(self): json.dump(self.outbuff, self.file, indent=4) self.file.close() def print(self, stats, msgcount, dialog): jsonpre = {"count": msgcount, 'chatid': dialog.id, 'chatname': dialog.name} for stat in stats: jsonpre[stat.name] = stat.getAll(msgcount) self.outbuff.append(jsonpre)