-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathii-stats.py
executable file
·80 lines (63 loc) · 1.94 KB
/
ii-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
#!/usr/bin/env python3
import os
from ii_functions import *
check_dirs()
def dirsize(path):
size=os.path.getsize(path)
for f in os.listdir(path):
size+=os.path.getsize(os.path.join(path, f))
return size
def humansize(size):
size=float(size)
b="Б"
kb="Кб"
mb="Мб"
gb="Гб"
strings=[b, kb, mb, gb]
_format="%.1f %s"
for u in strings:
if size<1024 : return _format % (size, u)
size/=1024
return _format % (size, strings)
index=[]
countindex={}
echolist=os.listdir(indexdir)
for echoarea in echolist:
echo=getMsgList(echoarea)
countindex[echoarea]=len(echo)
index+=echo
echoesOrder=sorted(countindex, key=countindex.get, reverse=True)
print("Статистика сообщений по эхам\n====")
lens=[len(s) for s in echoesOrder]
width=max(lens)+2
for echo in echoesOrder:
print(echo.ljust(width)+str(countindex[echo]))
if(len(index)<=0):
print("База пуста (проверьте права доступа).")
exit()
print("\nЗагрузка базы...")
msglist={}
for x in index:
msglist[x]=getMsg(x)
indexsize=dirsize(indexdir)
msgs_size=dirsize(msgdir)
print("\nПо поинтам\n====")
userlist={}
for msg in msglist.values():
point=msg.get("sender")
if(not userlist.__contains__(point)):
userlist[point]=1
else:
userlist[point]+=1
usersOrder=sorted(userlist, key=userlist.get, reverse=True)
lens=[len(s) for s in usersOrder]
width=max(lens)+2
for point in usersOrder:
print(point.ljust(width)+str(userlist[point]))
strl=18 # на сколько символов рассчитываем
print("\n"+"Эхоконференций".ljust(strl)+": "+str(len(echolist)))
print("Всего сообщений".ljust(strl)+": "+str(len(index)))
print("Всего поинтов".ljust(strl)+": "+str(len(userlist.keys())))
print("Индекс".ljust(strl)+": "+humansize(indexsize))
print("Сообщения".ljust(strl)+": "+humansize(msgs_size))
print("Всего".ljust(strl)+": "+humansize(indexsize+msgs_size))