List_server_busy/stats.py

57 lines
1.2 KiB
Python
Raw Normal View History

2019-11-27 15:45:18 +01:00
import argparse, os, sys, glob, json
ARCH = "archives/"
def run(l):
if not l.startswith(ARCH):
l = os.path.join(ARCH, l)
if not os.path.isdir(l):
sys.exit(l + ' is not a valid archive. Aborting.')
files = [f for f in glob.glob(os.path.join(l, "*.json"))]
total_chars = 0
total_words = 0
total_lines = 0
for f in files:
with open(f) as fp:
d = json.load(fp)
# print(d['name'])
chars = 0
words = 0
lines = 0
for t in d['threads']:
chars += len(t["content"])
words += len(t["content"].split())
lines += len(t["content"].split('\n'))
# print(" chars: " + str(chars))
# print(" words: " + str(words))
# print(" lines: " + str(lines))
total_chars += chars
total_words += words
total_lines += lines
print("\n\n" + l)
print("Total chars: " + str(total_chars))
print("Total words: " + str(total_words))
print("Total lines: " + str(total_lines))
if __name__ == "__main__":
p = argparse.ArgumentParser(description='Mailinglists are dead. Long live mailinglists!')
p.add_argument('list', metavar="list", help="mailinglist to ana", nargs="+")
args = p.parse_args()
if not args.list:
sys.exit('No list(s). Aborting.')
for l in args.list:
run(l)
print("\n\n . . . . ")