TelegramStats/src/out.py

54 lines
1010 B
Python

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)