File size: 25,118 Bytes
3a5cf48
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
#!/usr/bin/python
import json #line:4
import os ,time #line:5
from projectModel .base import projectBase #line:6
import public #line:7
from BTPanel import cache #line:8
class main (projectBase ):#line:10
    __O000OO000OOOOOO00 =public .Md5 ('clear'+time .strftime ('%Y-%m-%d'))#line:11
    __OOOO0O0OOO00O0O0O ='/www/server/panel/config/clear_log.json'#line:12
    __OO000OOOOO0OOO0OO ='/www/server/panel/data/clear'#line:13
    __OO00O000000OO0000 =public .to_string ([27492 ,21151 ,33021 ,20026 ,20225 ,19994 ,29256 ,19987 ,20139 ,21151 ,33021 ,65292 ,35831 ,20808 ,36141 ,20080 ,20225 ,19994 ,29256 ])#line:16
    def __init__ (OO0OO000O0OO0000O ):#line:18
        if not os .path .exists (OO0OO000O0OO0000O .__OO000OOOOO0OOO0OO ):#line:19
            os .makedirs (OO0OO000O0OO0000O .__OO000OOOOO0OOO0OO ,384 )#line:20
    def __O000OO00O0OO0O00O (O0O00O00O00OO0OO0 ):#line:22
        # from pluginAuth import Plugin #line:23
        import PluginLoader
        O00000O0O0OOOOOOO =PluginLoader.get_plugin_list (0)#line:25
        return int (O00000O0O0OOOOOOO ['ltd'])>time .time ()#line:26
    def get_config (O0OO0O00OOOOO00OO ):#line:30
        ""#line:35
        if not os .path .exists (O0OO0O00OOOOO00OO .__OOOO0O0OOO00O0O0O ):#line:36
            O0OO0O00OOOOO00OO .write_config ()#line:37
            return O0OO0O00OOOOO00OO .default_config ()#line:38
        else :#line:39
            try :#line:40
                O00OOOOO0O0O00000 =json .loads (public .ReadFile (O0OO0O00OOOOO00OO .__OOOO0O0OOO00O0O0O ))#line:41
            except :#line:42
                O0OO0O00OOOOO00OO .write_config ()#line:43
                return O0OO0O00OOOOO00OO .default_config ()#line:44
        if not cache .get (O0OO0O00OOOOO00OO .__O000OO000OOOOOO00 ):#line:45
            try :#line:46
                import requests #line:47
                O00OOOOO0O0O00000 =requests .get ("https://www.bt.cn/api/bt_waf/clearLog").json ()#line:48
                cache .set (O0OO0O00OOOOO00OO .__O000OO000OOOOOO00 ,'1',1800 )#line:49
                O0OO0O00OOOOO00OO .write_config (O00OOOOO0O0O00000 )#line:50
            except :#line:51
                return O0OO0O00OOOOO00OO .default_config ()#line:52
            return O00OOOOO0O0O00000 #line:53
        else :#line:54
            return O00OOOOO0O0O00000 #line:55
    def write_config (O0O0O0OOOO000O0O0 ,config =False ):#line:57
        ""#line:63
        if config :#line:64
            public .WriteFile (O0O0O0OOOO000O0O0 .__OOOO0O0OOO00O0O0O ,json .dumps (config ))#line:65
        else :#line:66
            public .WriteFile (O0O0O0OOOO000O0O0 .__OOOO0O0OOO00O0O0O ,json .dumps (O0O0O0OOOO000O0O0 .default_config ()))#line:67
    def default_config (O0O0OO0OO00O00O0O ):#line:70
        ""#line:75
        return [{"name":"recycle1","ps":"面板备份文件","path":"/www/backup/panel","type":"dir","is_del":True ,"find":[],"exclude":[],"is_config":False ,"regular":"","subdirectory":False ,"result":[],"size":0 },{"name":"recycle2","ps":"面板文件备份","path":"/www/backup/file_history","type":"dir","is_del":True ,"find":[],"exclude":[],"is_config":False ,"regular":"","subdirectory":False ,"result":[],"size":0 },{"name":"docker","ps":"Docker容器日志","path":"/var/lib/docker/containers","type":"file","is_del":False ,"find":["-json.log"],"exclude":[],"is_config":False ,"regular":"","subdirectory":False ,"result":[],"size":0 },{"name":"openrasp","ps":"openrasp日志","path":["/opt/rasp55/logs/alarm","/opt/rasp55/logs/policy","/opt/rasp55/logs/plugin","/opt/rasp56/logs/alarm","/opt/rasp56/logs/policy","/opt/rasp56/logs/plugin","/opt/rasp70/logs/alarm","/opt/rasp70/logs/policy","/opt/rasp70/logs/plugin","/opt/rasp71/logs/alarm","/opt/rasp71/logs/policy","/opt/rasp72/logs/plugin","/opt/rasp73/logs/alarm","/opt/rasp73/logs/policy","/opt/rasp73/logs/plugin","/opt/rasp74/logs/alarm","/opt/rasp74/logs/policy","/opt/rasp74/logs/plugin"],"type":"file","is_del":True ,"find":[".log"],"exclude":[],"is_config":False ,"regular":"","subdirectory":False ,"result":[],"size":0 },{"name":"springboot","ps":"springboot日志","path":"/var/tmp/springboot/vhost/logs","type":"file","is_del":False ,"find":[".log"],"exclude":[],"is_config":False ,"regular":"","subdirectory":False ,"result":[],"size":0 },{"name":"aliyun","ps":"阿里云Agent日志","path":["/usr/local/share/aliyun-assist/2.2.3.247/log","/usr/local/share/aliyun-assist/2.2.3.256/log"],"type":"file","is_del":True ,"find":[".log"],"exclude":[],"is_config":False ,"regular":"","subdirectory":False ,"result":[],"size":0 },{"name":"qcloud","ps":"腾讯云Agent日志","path":["/usr/local/qcloud/tat_agent/log","/usr/local/qcloud/YunJing/log","/usr/local/qcloud/stargate/logs","/usr/local/qcloud/monitor/barad/log"],"type":"file","is_del":True ,"find":[".log"],"exclude":[],"is_config":False ,"regular":"","subdirectory":False ,"result":[],"size":0 },{"name":"crontab","ps":"计划任务日志","path":"/www/server/cron","type":"file","is_del":True ,"find":[".log"],"exclude":[],"is_config":False ,"regular":"","subdirectory":False ,"result":[],"size":0 },{"name":"tomcat","ps":"tomcat日志","path":["/usr/local/bttomcat/tomcat8/logs","/usr/local/bttomcat/tomcat9/logs","/usr/local/bttomcat/tomcat7/logs"],"type":"file","is_del":True ,"find":[".log"],"exclude":[],"is_config":False ,"regular":"","subdirectory":False ,"result":[],"size":0 },{"name":"panellog","ps":"面板日志","path":"/www/server/panel/logs/request","type":"file","is_del":True ,"find":[".json.gz"],"exclude":[],"is_config":False ,"regular":"","subdirectory":False ,"result":[],"size":0 },{"name":"recycle3","ps":"回收站","path":"/www/Recycle_bin","type":"dir","is_del":True ,"find":[],"exclude":[],"is_config":False ,"regular":"","subdirectory":False ,"result":[],"size":0 },{"name":"maillog","ps":"邮件日志","path":"/var/spool/mail","type":"file","is_del":True ,"find":[],"exclude":[],"is_config":False ,"regular":"","subdirectory":False ,"result":[],"size":0 },{"name":"btwaflog","ps":"防火墙日志","path":["/www/wwwlogs/btwaf","/www/server/btwaf/totla_db/http_log"],"type":"file","is_del":True ,"find":[],"exclude":[],"is_config":False ,"regular":"","subdirectory":False ,"result":[],"size":0 },{"name":"weblog","ps":"网站日志","path":"/www/wwwlogs","type":"file","is_del":True ,"find":[],"exclude":[],"is_config":False ,"regular":"","subdirectory":False ,"result":[],"size":0 },{"name":"syslog","ps":"系统日志","path":["/var/log/audit","/var/log"],"type":"file","is_del":True ,"find":[],"exclude":[],"is_config":False ,"regular":"","subdirectory":False ,"result":[],"size":0 },{"name":"package","ps":"面板遗留文件","path":"/www/server/panel/package","type":"file","is_del":True ,"find":[".zip"],"exclude":[],"is_config":False ,"regular":"","subdirectory":False ,"result":[],"size":0 },{"name":"mysqllog","ps":"数据库日志","path":"/www/server/data","type":"file","is_del":True ,"find":["mysql-bin.00"],"exclude":[],"is_config":False ,"regular":"","subdirectory":False ,"result":[],"size":0 },{"name":"session","ps":"session日志","path":"/tmp","type":"file","is_del":True ,"find":["sess_"],"exclude":[],"is_config":False ,"regular":"","subdirectory":False ,"result":[],"size":0 },{"name":"bttotal","ps":"网站监控报表日志","path":"/www/server/total/logs","type":"file","is_del":True ,"find":["_bt_"],"exclude":[],"is_config":False ,"regular":"","subdirectory":False ,"result":[],"size":0 }]#line:96
    def tosize (O00O00O00O000O0OO ,O0OOO00O00OOOOOO0 ):#line:98
        ""#line:104
        O000O0O0OOOO0O0OO =['b','KB','MB','GB','TB']#line:105
        for OO0O00OOO000O0O0O in O000O0O0OOOO0O0OO :#line:106
            if O0OOO00O00OOOOOO0 <1024 :#line:107
                return str (int (O0OOO00O00OOOOOO0 ))+OO0O00OOO000O0O0O #line:108
            O0OOO00O00OOOOOO0 =O0OOO00O00OOOOOO0 /1024 #line:109
        return '0b'#line:110
    def any_size (OO00O0OOO0O0OOOOO ,OOOO0O000O000O0O0 ):#line:112
        ""#line:118
        OOOO0O000O000O0O0 =str (OOOO0O000O000O0O0 )#line:119
        OO0OOO0OOOO0OO0O0 =OOOO0O000O000O0O0 [-1 ]#line:120
        try :#line:121
            OOO00OO0O00OO000O =float (OOOO0O000O000O0O0 [0 :-1 ])#line:122
        except :#line:123
            OOO00OO0O00OO000O =0 #line:124
            return OOOO0O000O000O0O0 #line:125
        O00000O0O0000OOOO =['b','K','M','G','T']#line:126
        if OO0OOO0OOOO0OO0O0 in O00000O0O0000OOOO :#line:127
            if OO0OOO0OOOO0OO0O0 =='b':#line:128
                return int (OOO00OO0O00OO000O )#line:129
            elif OO0OOO0OOOO0OO0O0 =='K':#line:130
                OOO00OO0O00OO000O =OOO00OO0O00OO000O *1024 #line:131
                return int (OOO00OO0O00OO000O )#line:132
            elif OO0OOO0OOOO0OO0O0 =='M':#line:133
                OOO00OO0O00OO000O =OOO00OO0O00OO000O *1024 *1024 #line:134
                return int (OOO00OO0O00OO000O )#line:135
            elif OO0OOO0OOOO0OO0O0 =='G':#line:136
                OOO00OO0O00OO000O =OOO00OO0O00OO000O *1024 *1024 *1024 #line:137
                return int (OOO00OO0O00OO000O )#line:138
            elif OO0OOO0OOOO0OO0O0 =='T':#line:139
                OOO00OO0O00OO000O =OOO00OO0O00OO000O *1024 *1024 *1024 *1024 #line:140
                return int (OOO00OO0O00OO000O )#line:141
            else :#line:142
                return int (OOO00OO0O00OO000O )#line:143
        else :#line:144
            return '0b'#line:145
    def get_path_file (O000OO0OO0OOOO0OO ,O00O000O0OOOOO0OO ):#line:148
        ""#line:154
        if type (O00O000O0OOOOO0OO ['path'])==list :#line:155
            for O00000OO0000OO00O in O00O000O0OOOOO0OO ['path']:#line:156
                if os .path .exists (O00000OO0000OO00O ):#line:157
                    for OOOO0OOO0OOOO0OO0 in os .listdir (O00000OO0000OO00O ):#line:158
                        OOOO0O0000OOOO0OO =O00000OO0000OO00O +'/'+OOOO0OOO0OOOO0OO0 #line:159
                        if O00O000O0OOOOO0OO ['type']=='file':#line:160
                            if os .path .isfile (OOOO0O0000OOOO0OO ):#line:161
                                O000O000O0O0OOOO0 ={}#line:162
                                O0OOO0O000O0O0OOO =os .path .getsize (OOOO0O0000OOOO0OO )#line:163
                                if O0OOO0O000O0O0OOO >=100 :#line:164
                                    O000O000O0O0OOOO0 ['size']=O000OO0OO0OOOO0OO .tosize (O0OOO0O000O0O0OOO )#line:165
                                    O000O000O0O0OOOO0 ['count_size']=O0OOO0O000O0O0OOO #line:166
                                    O00O000O0OOOOO0OO ['size']+=O0OOO0O000O0O0OOO #line:167
                                    O000O000O0O0OOOO0 ['name']=OOOO0O0000OOOO0OO #line:168
                                    O00O000O0OOOOO0OO ['result'].append (O000O000O0O0OOOO0 )#line:169
        else :#line:170
            if os .path .exists (O00O000O0OOOOO0OO ['path']):#line:171
                for OOOO0OOO0OOOO0OO0 in os .listdir (O00O000O0OOOOO0OO ['path']):#line:172
                    OOOO0O0000OOOO0OO =O00O000O0OOOOO0OO ['path']+'/'+OOOO0OOO0OOOO0OO0 #line:173
                    if O00O000O0OOOOO0OO ['type']=='file':#line:174
                        if os .path .isfile (OOOO0O0000OOOO0OO ):#line:175
                            O000O000O0O0OOOO0 ={}#line:176
                            O0OOO0O000O0O0OOO =os .path .getsize (OOOO0O0000OOOO0OO )#line:177
                            if O0OOO0O000O0O0OOO >=100 :#line:178
                                O000O000O0O0OOOO0 ['size']=O000OO0OO0OOOO0OO .tosize (O0OOO0O000O0O0OOO )#line:179
                                O000O000O0O0OOOO0 ['count_size']=O0OOO0O000O0O0OOO #line:180
                                O00O000O0OOOOO0OO ['size']+=O0OOO0O000O0O0OOO #line:181
                                O000O000O0O0OOOO0 ['name']=OOOO0O0000OOOO0OO #line:182
                                O00O000O0OOOOO0OO ['result'].append (O000O000O0O0OOOO0 )#line:183
                    elif O00O000O0OOOOO0OO ['type']=='dir':#line:184
                        if os .path .isdir (OOOO0O0000OOOO0OO ):#line:185
                            O0OOO0O000O0O0OOO =public .ExecShell ('du -sh  %s'%OOOO0O0000OOOO0OO )[0 ].split ()[0 ]#line:186
                            O000O000O0O0OOOO0 ={}#line:187
                            O000O000O0O0OOOO0 ['dir']='dir'#line:188
                            O000O000O0O0OOOO0 ['size']=O0OOO0O000O0O0OOO #line:189
                            O000O000O0O0OOOO0 ['count_size']=O000OO0OO0OOOO0OO .any_size (O0OOO0O000O0O0OOO )#line:190
                            if O000O000O0O0OOOO0 ['count_size']<100 :continue #line:191
                            if O00O000O0OOOOO0OO ['path']=='/www/Recycle_bin':#line:192
                                OOOO0O0000OOOO0OO =OOOO0OOO0OOOO0OO0 .split ('_t_')[0 ].replace ('_bt_','/')#line:193
                                O000O000O0O0OOOO0 ['filename']=O00O000O0OOOOO0OO ['path']+'/'+OOOO0OOO0OOOO0OO0 #line:194
                                O000O000O0O0OOOO0 ['name']=OOOO0O0000OOOO0OO #line:195
                            else :#line:196
                                O000O000O0O0OOOO0 ['filename']=O00O000O0OOOOO0OO ['path']+'/'+OOOO0OOO0OOOO0OO0 #line:197
                                O000O000O0O0OOOO0 ['name']=os .path .basename (OOOO0O0000OOOO0OO )#line:198
                            O00O000O0OOOOO0OO ['size']+=O000O000O0O0OOOO0 ['count_size']#line:199
                            O00O000O0OOOOO0OO ['result'].append (O000O000O0O0OOOO0 )#line:200
                        else :#line:201
                            O0OO000O0OO000000 =os .path .getsize (OOOO0O0000OOOO0OO )#line:202
                            if O0OO000O0OO000000 <100 :continue #line:204
                            O000O000O0O0OOOO0 ={}#line:205
                            O000O000O0O0OOOO0 ['filename']=OOOO0O0000OOOO0OO #line:206
                            OOOO0O0000OOOO0OO =os .path .basename (OOOO0O0000OOOO0OO )#line:208
                            O000O000O0O0OOOO0 ['count_size']=O0OO000O0OO000000 #line:209
                            if O00O000O0OOOOO0OO ['path']=='/www/Recycle_bin':#line:210
                                OOOO0O0000OOOO0OO =OOOO0OOO0OOOO0OO0 .split ('_t_')[0 ].replace ('_bt_','/')#line:211
                                O000O000O0O0OOOO0 ['name']=OOOO0O0000OOOO0OO #line:212
                            else :#line:213
                                O000O000O0O0OOOO0 ['name']=OOOO0O0000OOOO0OO #line:214
                            O000O000O0O0OOOO0 ['size']=O000OO0OO0OOOO0OO .tosize (O0OO000O0OO000000 )#line:215
                            O00O000O0OOOOO0OO ['size']+=O000O000O0O0OOOO0 ['count_size']#line:216
                            O00O000O0OOOOO0OO ['result'].append (O000O000O0O0OOOO0 )#line:217
        return O00O000O0OOOOO0OO #line:218
    def get_path_find (OO0O0OO0O00OO0000 ,O00O00000OOOO0O00 ):#line:221
        ""#line:228
        if type (O00O00000OOOO0O00 ['path'])==list :#line:229
            for O000000OO00OO00O0 in O00O00000OOOO0O00 ['path']:#line:230
                if os .path .exists (O000000OO00OO00O0 ):#line:231
                    for OOOOOOO00O00O0O0O in os .listdir (O000000OO00OO00O0 ):#line:232
                        for O0000O0OOOO0OO0O0 in O00O00000OOOO0O00 ['find']:#line:233
                            if OOOOOOO00O00O0O0O .find (O0000O0OOOO0OO0O0 )==-1 :continue #line:234
                            O0OOOOO00O0O00O0O =O000000OO00OO00O0 +'/'+OOOOOOO00O00O0O0O #line:235
                            if not os .path .exists (O0OOOOO00O0O00O0O ):continue #line:236
                            OO000OOO00OOO0O00 =os .path .getsize (O0OOOOO00O0O00O0O )#line:237
                            if OO000OOO00OOO0O00 <1024 :continue #line:238
                            OO00OOOOOO0000000 ={}#line:239
                            OO00OOOOOO0000000 ['name']=O0OOOOO00O0O00O0O #line:240
                            OO00OOOOOO0000000 ['count_size']=OO000OOO00OOO0O00 #line:241
                            O00O00000OOOO0O00 ['size']+=OO000OOO00OOO0O00 #line:242
                            OO00OOOOOO0000000 ['size']=OO0O0OO0O00OO0000 .tosize (OO000OOO00OOO0O00 )#line:243
                            O00O00000OOOO0O00 ['result'].append (OO00OOOOOO0000000 )#line:244
        else :#line:245
            if os .path .exists (O00O00000OOOO0O00 ['path']):#line:246
                for OOOOOOO00O00O0O0O in os .listdir (O00O00000OOOO0O00 ['path']):#line:247
                    for O0000O0OOOO0OO0O0 in O00O00000OOOO0O00 ['find']:#line:248
                        O0OOOOO00O0O00O0O =O00O00000OOOO0O00 ['path']+'/'+OOOOOOO00O00O0O0O #line:249
                        if O00O00000OOOO0O00 ['path']=='/var/lib/docker/containers':#line:250
                            O0OOOOO00O0O00O0O =O0OOOOO00O0O00O0O +'/'+OOOOOOO00O00O0O0O +'-json.log'#line:251
                            if os .path .exists (O0OOOOO00O0O00O0O ):#line:252
                                OO000OOO00OOO0O00 =os .path .getsize (O0OOOOO00O0O00O0O )#line:253
                                if OO000OOO00OOO0O00 <1024 :continue #line:254
                                OO00OOOOOO0000000 ={}#line:255
                                OO00OOOOOO0000000 ['name']=O0OOOOO00O0O00O0O #line:256
                                OO00OOOOOO0000000 ['count_size']=OO000OOO00OOO0O00 #line:257
                                O00O00000OOOO0O00 ['size']+=OO000OOO00OOO0O00 #line:258
                                OO00OOOOOO0000000 ['size']=OO0O0OO0O00OO0000 .tosize (OO000OOO00OOO0O00 )#line:259
                                O00O00000OOOO0O00 ['result'].append (OO00OOOOOO0000000 )#line:260
                        else :#line:261
                            if OOOOOOO00O00O0O0O .find (O0000O0OOOO0OO0O0 )==-1 :continue #line:262
                            if not os .path .exists (O0OOOOO00O0O00O0O ):continue #line:263
                            OO000OOO00OOO0O00 =os .path .getsize (O0OOOOO00O0O00O0O )#line:264
                            if OO000OOO00OOO0O00 <1024 :continue #line:265
                            OO00OOOOOO0000000 ={}#line:266
                            OO00OOOOOO0000000 ['name']=O0OOOOO00O0O00O0O #line:267
                            OO00OOOOOO0000000 ['count_size']=OO000OOO00OOO0O00 #line:268
                            O00O00000OOOO0O00 ['size']+=OO000OOO00OOO0O00 #line:269
                            OO00OOOOOO0000000 ['size']=OO0O0OO0O00OO0000 .tosize (OO000OOO00OOO0O00 )#line:270
                            O00O00000OOOO0O00 ['result'].append (OO00OOOOOO0000000 )#line:271
        return O00O00000OOOO0O00 #line:272
    def scanning (O0000O0O000OO000O ,OO0O0O0O000O00OOO ):#line:274
        ""#line:278
        if not O0000O0O000OO000O .__O000OO00O0OO0O00O ():return public .returnMsg (False ,O0000O0O000OO000O .__OO00O000000OO0000 )#line:279
        O0000O000OO0OO00O =0 #line:280
        O0OOO000O0OOOO00O =O0000O0O000OO000O .get_config ()#line:281
        OOOO0O0OOO00O0O0O =int (time .time ())#line:282
        public .WriteFile (O0000O0O000OO000O .__OO000OOOOO0OOO0OO +'/scanning',str (OOOO0O0OOO00O0O0O ))#line:283
        for O00OOO00O0O00O000 in O0OOO000O0OOOO00O :#line:284
            O0O0OOOO0O000O0O0 =O0000O0O000OO000O .__OO000OOOOO0OOO0OO +'/'+O00OOO00O0O00O000 ['name']+'.pl'#line:285
            if not O00OOO00O0O00O000 ['find']and not O00OOO00O0O00O000 ['exclude']and not O00OOO00O0O00O000 ['is_config']:#line:286
                O0000O0O000OO000O .get_path_file (O00OOO00O0O00O000 )#line:287
                O00OOO00O0O00O000 ['time']=int (time .time ())#line:288
                O0000O000OO0OO00O +=O00OOO00O0O00O000 ['size']#line:289
                O00OOO00O0O00O000 ['size_info']=O0000O0O000OO000O .tosize (O00OOO00O0O00O000 ['size'])#line:290
            if O00OOO00O0O00O000 ['find']and not O00OOO00O0O00O000 ['exclude']and not O00OOO00O0O00O000 ['is_config']:#line:291
                O0000O0O000OO000O .get_path_find (O00OOO00O0O00O000 )#line:292
                O00OOO00O0O00O000 ['time']=int (time .time ())#line:293
                O0000O000OO0OO00O +=O00OOO00O0O00O000 ['size']#line:294
                O00OOO00O0O00O000 ['size_info']=O0000O0O000OO000O .tosize (O00OOO00O0O00O000 ['size'])#line:295
            public .WriteFile (O0O0OOOO0O000O0O0 ,json .dumps (O00OOO00O0O00O000 ))#line:296
        O0O0OOOOOO0OO0OO0 ={"info":O0OOO000O0OOOO00O ,"size":O0000O000OO0OO00O ,"time":OOOO0O0OOO00O0O0O }#line:297
        return O0O0OOOOOO0OO0OO0 #line:298
    def list (O0O0O0O00O0OO0OO0 ,OO0OO0OOOOOOO0OOO ):#line:301
        ""#line:305
        O00O00O0O000OO0OO =0 #line:307
        OO0O0OOO0O0O0OO0O =[]#line:308
        O0O0OOOO0O0O00OOO =O0O0O0O00O0OO0OO0 .get_config ()#line:309
        for O0000OOOOO0OOO00O in O0O0OOOO0O0O00OOO :#line:310
            OOO000O00OOO0O0O0 =O0O0O0O00O0OO0OO0 .__OO000OOOOO0OOO0OO +'/'+O0000OOOOO0OOO00O ['name']+'.pl'#line:311
            if os .path .exists (OOO000O00OOO0O0O0 ):#line:312
                OO00O0OO000O0OO0O =json .loads (public .readFile (OOO000O00OOO0O0O0 ))#line:313
                OO0O0OOO0O0O0OO0O .append (OO00O0OO000O0OO0O )#line:314
                O00O00O0O000OO0OO +=OO00O0OO000O0OO0O ['size']#line:315
            else :#line:316
                if not O0000OOOOO0OOO00O ['find']and not O0000OOOOO0OOO00O ['exclude']and not O0000OOOOO0OOO00O ['is_config']:#line:317
                    O0O0O0O00O0OO0OO0 .get_path_file (O0000OOOOO0OOO00O )#line:318
                    O0000OOOOO0OOO00O ['size_info']=O0O0O0O00O0OO0OO0 .tosize (O0000OOOOO0OOO00O ['size'])#line:319
                    O00O00O0O000OO0OO +=O0000OOOOO0OOO00O ['size']#line:320
                if O0000OOOOO0OOO00O ['find']and not O0000OOOOO0OOO00O ['exclude']and not O0000OOOOO0OOO00O ['is_config']:#line:321
                    O0O0O0O00O0OO0OO0 .get_path_find (O0000OOOOO0OOO00O )#line:322
                    O0000OOOOO0OOO00O ['time']=time .time ()#line:323
                    O00O00O0O000OO0OO +=O0000OOOOO0OOO00O ['size']#line:324
                    O0000OOOOO0OOO00O ['size_info']=O0O0O0O00O0OO0OO0 .tosize (O0000OOOOO0OOO00O ['size'])#line:325
                public .WriteFile (OOO000O00OOO0O0O0 ,json .dumps (O0000OOOOO0OOO00O ))#line:326
                OO0O0OOO0O0O0OO0O .append (O0000OOOOO0OOO00O )#line:327
        if os .path .exists (O0O0O0O00O0OO0OO0 .__OO000OOOOO0OOO0OO +'/scanning'):#line:328
            OOOO0O0OOO0000O0O =int (public .ReadFile (O0O0O0O00O0OO0OO0 .__OO000OOOOO0OOO0OO +'/scanning'))#line:329
        else :#line:330
            OOOO0O0OOO0000O0O =int (time .time ())#line:331
        OOOO000OO0O0000O0 ={"info":OO0O0OOO0O0O0OO0O ,"size":O00O00O0O000OO0OO ,"time":OOOO0O0OOO0000O0O }#line:332
        return OOOO000OO0O0000O0 #line:333
    def remove_file (OO0OOOO00OO000OO0 ,OO0OOOO00000OO00O ):#line:336
        ""#line:340
        if not OO0OOOO00OO000OO0 .__O000OO00O0OO0O00O ():return public .returnMsg (False ,OO0OOOO00OO000OO0 .__OO00O000000OO0000 )#line:341
        O0OOO0000000O000O =0 #line:342
        O0O0O00000000OOOO =OO0OOOO00000OO00O .san_info #line:344
        for O00OOO00OOOO0OOOO in O0O0O00000000OOOO :#line:346
            if len (O00OOO00OOOO0OOOO ['result'])<=0 :return #line:347
            for O0O00O0O0000OO000 in O00OOO00OOOO0OOOO ['result']:#line:348
                try :#line:349
                    if O00OOO00OOOO0OOOO ['type']=='dir':#line:350
                        if 'filename'in O0O00O0O0000OO000 :#line:351
                            if os .path .isfile (O0O00O0O0000OO000 ['filename']):#line:352
                                if O00OOO00OOOO0OOOO ['is_del']:#line:353
                                    os .remove (O0O00O0O0000OO000 ['filename'])#line:354
                                else :#line:355
                                    public .ExecShell ("echo " ">%s"%O0O00O0O0000OO000 ['filename'])#line:356
                                O0OOO0000000O000O +=O0O00O0O0000OO000 ['count_size']#line:357
                            else :#line:358
                                O0OOO0000000O000O +=O0O00O0O0000OO000 ['count_size']#line:359
                                public .ExecShell ("rm -rf %s"%O0O00O0O0000OO000 ['filename'])#line:360
                        else :#line:362
                            return '22'#line:363
                    else :#line:364
                        if os .path .isfile (O0O00O0O0000OO000 ['name']):#line:365
                            if O00OOO00OOOO0OOOO ['is_del']:#line:366
                                os .remove (O0O00O0O0000OO000 ['name'])#line:367
                            else :#line:368
                                public .ExecShell ("echo " ">%s"%O0O00O0O0000OO000 ['name'])#line:369
                            O0OOO0000000O000O +=O0O00O0O0000OO000 ['count_size']#line:370
                        else :#line:371
                            O0OOO0000000O000O +=O0O00O0O0000OO000 ['count_size']#line:373
                            os .rmdir (O0O00O0O0000OO000 ['name'])#line:374
                except :continue #line:375
        OO0OOOO00OO000OO0 .scanning (None )#line:376
        return public .returnMsg (True ,OO0OOOO00OO000OO0 .tosize (O0OOO0000000O000O ))