Files
2021-12-22 01:03:28 -05:00

62 lines
1.7 KiB
Python

import io
import json
import json5
if __name__ == '__main__':
"""
"""
file = "./result.json"
start = '2021-06-25T12:01:01'
end = '2021-11-02T14:01:01'
with io.open(file, mode='r', encoding="utf-8") as f:
content = f.read()
obj = json.loads(content)
with io.open('userid_to_name.json5', mode='r', encoding='utf-8') as f:
userid_to_name = json5.loads(f.read())
messages: list = obj['messages']
messages = [m for m in messages if True
# and start < m['date'] < end
and m['type'] == 'message'
# and m['from'] == 'Hykilpikonna'
]
date_data = {}
for m in messages:
date = m['date'][:10]
if date not in date_data:
date_data[date] = {}
user = m['from_id']
if user not in userid_to_name:
userid_to_name[user] = m['from']
user = userid_to_name[user]
if user not in date_data[date]:
date_data[date][user] = 0
date_data[date][user] += 1
print(userid_to_name)
user_totals = {}
lines = ['id,date,value']
for date in date_data:
users = date_data[date]
for u in users:
if u not in user_totals:
user_totals[u] = []
user_totals[u].append(users[u])
for u in user_totals:
if u not in users:
user_totals[u].append(0)
total = sum(user_totals[u][-7:])
if u in userid_to_name:
u = userid_to_name[u]
lines.append(f'{u},{date},{total}')
with io.open('output.csv', mode='w', encoding='utf-8') as f:
f.write('\n'.join(lines))