-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpreprocess.py
76 lines (66 loc) · 1.86 KB
/
preprocess.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
import json
import datetime
import time
files = ["client/src/data/report_2.json", "client/src/data/report_3.json", "client/src/data/report_6.json"]
categories = [
"BULLYING",
"VIOLENCE",
"RELATIONSHIP_SEXUAL_CONTENT",
"VULGARITY",
"DRUGS_ALCOHOL",
"IN_APP",
"ALARM",
"FRAUD",
"HATE_SPEECH",
"RELIGIOUS",
"WEBSITE",
"CHILD_GROOMING",
"PUBLIC_THREAT",
"EXTREMISM",
"SUBVERSIVE",
"SENTIMENT",
"POLITICS"]
nameMap = json.load(open("client/src/data/name_map.json"))["name"]
for file in files:
data = json.load(open(file))
newData = []
flaggedMessage = None
for message in data:
newMessage = {
"id": str(message["index"]),
"content": message["raw_message"],
"author": nameMap[message["account_id"]],
"timestamp": datetime.datetime.strptime(message["timestamp"][:15], "%Y%m%dT%H%M%S").timestamp() * 1000
}
maxRisk = -1
c = None
for category in categories:
if message[category] > maxRisk:
maxRisk = message[category]
c = category
if maxRisk >= 5 and flaggedMessage is None:
flaggedMessage = newMessage
newMessage["flag"] = {
"category": c,
"severity": maxRisk
}
newData.append(newMessage)
context = {
"id": "12345678",
"user": flaggedMessage["author"],
"reports": 2,
"game": "Clash Royale",
"alliance": "TODO",
"allianceDescription": "TODO",
"created": 1580511600000,
"lastSeen": 1682114400000,
"device": "TODO",
"ip": "TODO",
"averageGameTime": 23
}
done = {
"context": context,
"messages": newData
}
json.dump(done, open(file.replace(".json", "_processed.json"), "w"))
#20230301T151638.861Z