-
Notifications
You must be signed in to change notification settings - Fork 0
/
stats.py
120 lines (100 loc) · 3.87 KB
/
stats.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
import decode
import users
def lasttalk(data):
messages = data["messages"]
last_msg = users.userdico(data)
for participant in last_msg:
for msg in messages:
if decode.string_decode(msg["sender_name"]) == participant:
last_msg[participant] = decode.timestamp_decode(msg["timestamp_ms"])
break
for participant in last_msg:
print(participant + " : " + str(last_msg[participant]))
def counttalk(data):
messages = data["messages"]
participants = users.userdico(data)
for participant in participants:
participants[participant] = 0
for msg in messages:
if not msg["is_unsent"]:
try:
participants[decode.string_decode(msg["sender_name"])] += 1
except KeyError:
participants["Autres"] += 1
for nb_talk in participants:
print(nb_talk + " : " + str(participants[nb_talk]))
def countreacts(data):
messages = data["messages"]
participants = users.userdico(data)
for participant in participants:
reactions = {}
for msg in messages:
try:
for react in msg["reactions"]:
sender = decode.string_decode(react["actor"])
react = decode.string_decode(react["reaction"])
if participant == sender:
if react in reactions:
reactions[react] += 1
else:
reactions[react] = 1
participants[participant] = reactions
except KeyError:
pass
for participant in participants:
print("\n" + participant + " : ")
for react in participants[participant]:
print(react, end=' ')
print("")
for react in participants[participant]:
print(participants[participant][react], end=' ')
print("")
def countunset(data):
messages = data["messages"]
participants = users.userdico(data)
for participant in participants:
participants[participant] = 0
for msg in messages:
if msg["is_unsent"]:
try:
participants[decode.string_decode(msg["sender_name"])] += 1
except KeyError:
participants["Autres"] += 1
for nb_unsent in participants:
print(nb_unsent + " : " + str(participants[nb_unsent]))
def countwords(data):
messages = data["messages"]
count_words = {}
for msg in messages:
try:
message = decode.string_decode(msg["content"])
message = message.replace("\'", " ")
message = message.replace("’", " ")
if ("a rejoint la discussion" not in message) and ("a rejoint l appel" not in message) and ("la discussion vidéo est terminée"):
for word in message.split():
if len(word) > 5:
if word in count_words:
count_words[word] += 1
else:
count_words[word] = 1
except KeyError:
pass
sorted_keys = sorted(count_words, key=count_words.get, reverse=True)
i = 0;
for i in range(10):
print(sorted_keys[i] + " : " + str(count_words[sorted_keys[i]]))
def countspecificword(data):
messages = data["messages"]
searched_word = input("Quel mot voulez-vous cherchez dans la conversation ? ")
count_word = 0;
for msg in messages:
try:
message = decode.string_decode(msg["content"])
message = message.replace("\'", " ")
message = message.replace("’", " ")
for word in message.split():
if word == searched_word:
count_word += 1
except KeyError:
pass
print("Le mot " + searched_word + " apparait " + str(count_word) + " fois.")