62 lines
1.7 KiB
Python
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))
|
|
|