3
3
import time
4
4
import hashlib
5
5
6
- storage1 = {}
6
+ storage1 = {}
7
7
storage2 = {}
8
8
9
+
9
10
def cleanHash (toHash ):
10
11
return hashlib .sha224 (toHash ).hexdigest ()
11
12
12
- def sec_start (job ,header ):
13
+
14
+ def sec_start (job , header ):
13
15
print ('section_start\r \033 [0K' + header )
14
16
17
+
15
18
def sec_end (job ):
16
19
print ('section_end\r \033 [0K' )
17
20
18
- with open (sys .argv [1 ],'r' ) as f :
19
- data = json .load (f , encoding = 'utf-8' )
21
+ with open (sys .argv [1 ], 'r' ) as f :
22
+ data = json .load (f )
20
23
for message in data ['messages' ]:
21
24
mtyp = message ['type' ].encode ('utf-8' , 'ignore' )
22
25
murl = message ['url' ].encode ('utf-8' , 'ignore' )
23
26
mmes = message ['message' ].encode ('utf-8' , 'ignore' )
24
27
if mtyp not in storage1 .keys ():
25
- storage1 [mtyp ] = {"messages" :{}, "cnt" :0 }
26
- storage2 [mtyp ] = {"urls" :{}, "cnt" :0 }
28
+ storage1 [mtyp ] = {"messages" : {}, "cnt" : 0 }
29
+ storage2 [mtyp ] = {"urls" : {}, "cnt" : 0 }
27
30
if mmes not in storage1 [mtyp ]["messages" ].keys ():
28
- storage1 [mtyp ]["messages" ][mmes ] = {"urls" :{}, "cnt" :0 }
31
+ storage1 [mtyp ]["messages" ][mmes ] = {"urls" : {}, "cnt" : 0 }
29
32
if murl not in storage2 [mtyp ]["urls" ].keys ():
30
- storage2 [mtyp ]["urls" ][murl ] = {"messages" :{}, "cnt" :0 }
33
+ storage2 [mtyp ]["urls" ][murl ] = {"messages" : {}, "cnt" : 0 }
31
34
if murl not in storage1 [mtyp ]["messages" ][mmes ]["urls" ].keys ():
32
35
storage1 [mtyp ]["messages" ][mmes ]["urls" ][murl ] = 0
33
36
if mmes not in storage2 [mtyp ]["urls" ][murl ]["messages" ].keys ():
@@ -38,18 +41,18 @@ def sec_end(job):
38
41
storage2 [mtyp ]["urls" ][murl ]["messages" ][mmes ] += 1
39
42
storage2 [mtyp ]["urls" ][murl ]["cnt" ] += 1
40
43
storage2 [mtyp ]["cnt" ] += 1
41
- # Stats
42
- for key ,value in sorted (storage1 .items (), key = lambda x :x [1 ]['cnt' ]):
43
- print ("Type: {}, Totalfound: {}" .format (key , value ["cnt" ]))
44
- for key2 ,value2 in sorted (storage1 [key ]["messages" ].items (), key = lambda x :x [1 ]['cnt' ], reverse = True ):
44
+
45
+ for key , value in sorted (storage1 .items (), key = lambda x : x [1 ]['cnt' ]):
46
+ print ("Type: {}, Totalfound: {}" .format (key , value ["cnt" ]))
47
+ for key2 , value2 in sorted (storage1 [key ]["messages" ].items (), key = lambda x : x [1 ]['cnt' ], reverse = True ):
45
48
sec_start (key + key2 , key2 )
46
- print ("[{}] [{}%] Message: {}" .format (key , round (100 * value2 ["cnt" ]/ value ["cnt" ],2 ), key2 ))
47
- for key3 ,value3 in sorted (storage1 [key ]["messages" ][key2 ]["urls" ].items (), key = lambda x :x [1 ], reverse = True ):
48
- print ("[{}%] URL: {}" .format (round (100 * value3 / value2 ["cnt" ],2 ), key3 ))
49
+ print ("[{}] [{}%] Message: {}" .format (key , round (100 * value2 ["cnt" ]/ value ["cnt" ], 2 ), key2 ))
50
+ for key3 , value3 in sorted (storage1 [key ]["messages" ][key2 ]["urls" ].items (), key = lambda x : x [1 ], reverse = True ):
51
+ print ("[{}%] URL: {}" .format (round (100 * value3 / value2 ["cnt" ], 2 ), key3 ))
49
52
sec_end (key + key2 )
50
- for key2 ,value2 in sorted (storage2 [key ]["urls" ].items (), key = lambda x :x [1 ]['cnt' ], reverse = True ):
53
+ for key2 , value2 in sorted (storage2 [key ]["urls" ].items (), key = lambda x : x [1 ]['cnt' ], reverse = True ):
51
54
sec_start (key + key2 , key2 )
52
- print ("[{}] [{}%] URL: {}" .format (key , round (100 * value2 ["cnt" ]/ value ["cnt" ],2 ), key2 ))
53
- for key3 ,value3 in sorted (storage2 [key ]["urls" ][key2 ]["messages" ].items (), key = lambda x :x [1 ], reverse = True ):
54
- print ("[{}%] Message: {}" .format (round (100 * value3 / value2 ["cnt" ],2 ), key3 ))
55
+ print ("[{}] [{}%] URL: {}" .format (key , round (100 * value2 ["cnt" ]/ value ["cnt" ], 2 ), key2 ))
56
+ for key3 , value3 in sorted (storage2 [key ]["urls" ][key2 ]["messages" ].items (), key = lambda x : x [1 ], reverse = True ):
57
+ print ("[{}%] Message: {}" .format (round (100 * value3 / value2 ["cnt" ], 2 ), key3 ))
55
58
sec_end (key + key2 )
0 commit comments