2
# -*- coding: utf-8 -*-
4
# Copyright (C) 2013 ~ 2014 National University of Defense Technology(NUDT) & Kylin Ltd
5
# This program is free software: you can redistribute it and/or modify it
6
# under the terms of the GNU General Public License version 3, as published
7
# by the Free Software Foundation.
9
# This program is distributed in the hope that it will be useful, but
10
# WITHOUT ANY WARRANTY; without even the implied warranties of
11
# MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
12
# PURPOSE. See the GNU General Public License for more details.
14
# You should have received a copy of the GNU General Public License along
15
# with this program. If not, see <http://www.gnu.org/licenses/>.
26
from apt.progress.base import InstallProgress
38
import softwareconfigfile
42
def get_user_homedir(homedir):
46
def return_homedir_sysdaemon():
53
self.objunneed = CleanTheUnneed()
54
self.objcache = CleanTheCache()
56
def get_onekey_crufts(self, sesdaemon, mode_list):
57
homedir = common.return_homedir_sesdaemon()
60
flag_dic = {'history': False, 'cookies': False, 'cache': False}
61
for mode in mode_list:
62
flag_dic['%s' % mode] = True
64
if flag_dic['history']:
66
objhg = historyclean.HistoryClean(homedir)
67
filepathf = "%s/.mozilla/firefox/%s/places.sqlite" % (homedir, common.analytical_profiles_file(homedir))
68
if os.path.exists(filepathf):
69
tempf_list = objhg.scan_firefox_history_records(filepathf)
70
for onef in tempf_list:
71
sesdaemon.display_scan_process(onef[1])
72
#sesdaemon.display_scan_process_msg(onef[1])
73
historysize += onef[2]
74
filepathc = "%s/.config/chromium/Default/History" % homedir
75
if os.path.exists(filepathc):
76
run = common.process_pid("chromium-browser")
78
tempc_list = objhg.scan_chromium_history_records(filepathc)
79
for onec in tempc_list:
80
sesdaemon.display_scan_process(onec[1])
81
#sesdaemon.display_scan_process_msg(onec[1])
82
historysize += onec[2]
83
total_dic['history'] = str(historysize)
84
sesdaemon.total_data_transmit('h', total_dic['history'])
86
if flag_dic['cookies']:
88
objcg = cookiesclean.CookiesClean(homedir)
89
filepathff = "%s/.mozilla/firefox/%s/cookies.sqlite" % (homedir, common.analytical_profiles_file(homedir))
90
if os.path.exists(filepathff):
91
pamf = [filepathff, 'moz_cookies', 'baseDomain']
92
tempff_list = objcg.scan_cookies_records(pamf[0], pamf[1], pamf[2])
93
for oneff in tempff_list:
94
sesdaemon.display_scan_process(oneff[0])
95
#sesdaemon.display_scan_process_msg(oneff[0])
96
cookiessize += oneff[1]
97
filepathcc = "%s/.config/chromium/Default/Cookies" % homedir
98
if os.path.exists(filepathcc):
99
pamc = [filepathcc, 'cookies', 'host_key']
100
tempcc_list = objcg.scan_cookies_records(pamc[0], pamc[1], pamc[2])
101
for onecc in tempcc_list:
102
sesdaemon.display_scan_process(onecc[0])
103
#sesdaemon.display_scan_process_msg(onecc[0])
104
cookiessize += onecc[1]
105
total_dic['cookies'] = str(cookiessize)
106
sesdaemon.total_data_transmit('k', total_dic['cookies'])
108
if flag_dic['cache']:
110
objcache = cacheclean.CacheClean()
111
apt_path = "/var/cache/apt/archives"
112
temp_apt_list = objcache.scan_apt_cache(apt_path)
113
for oneapt in temp_apt_list:
114
sesdaemon.display_scan_process(oneapt)
115
#sesdaemon.display_scan_process_msg(oneapt)
116
cachesize += os.path.getsize(oneapt)
117
swcenterpath = '%s/.cache/software-center' % homedir
118
temp_swcenter_list = objcache.public_scan_cache(swcenterpath)
119
for oneswcenter in temp_swcenter_list:
120
sesdaemon.display_scan_process(oneswcenter)
121
#sesdaemon.display_scan_process_msg(oneswcenter)
122
if os.path.isdir(oneswcenter):
123
cachesize += common.get_dir_size(oneswcenter)
125
cachesize += os.path.getsize(oneswcenter)
126
total_dic['cache'] = common.confirm_filesize_unit(cachesize)
127
sesdaemon.total_data_transmit('c', total_dic['cache'])
129
def clean_all_onekey_crufts(self, sysdaemon, mode_list):
130
homedir = return_homedir_sysdaemon()
131
flag_dic = {'history': False, 'cookies': False, 'cache': False}
132
for mode in mode_list:
133
flag_dic['%s' % mode] = True
134
#if flag_dic['cache']:
136
if mode_list[0] in '1':
138
objclean = FunctionOfClean()
139
objcache = cacheclean.CacheClean()
140
apt_path = "/var/cache/apt/archives"
141
temp_apt_list = objcache.scan_apt_cache(apt_path)
142
for cachea in temp_apt_list:
143
sysdaemon.status_for_quick_clean('apt', cachea)
144
objclean.clean_the_file(cachea)
145
sysdaemon.status_for_quick_clean('apt', 'end')
147
swcenterpath = '%s/.cache/software-center' % homedir
148
temp_swcenter_list = objcache.public_scan_cache(swcenterpath)
149
for caches in temp_swcenter_list:
150
sysdaemon.status_for_quick_clean('software_center', caches)
151
objclean.clean_the_file(caches)
152
sysdaemon.status_for_quick_clean('software_center', 'end')
154
sysdaemon.clean_error_onekey('ce')
156
sysdaemon.clean_complete_onekey('c')
157
#if flag_dic['history']:
159
if mode_list[1] in '1':
161
sysdaemon.status_for_quick_clean('firefoxhistory', 'start')
162
objca = historyclean.HistoryClean(homedir)
163
filepathf = "%s/.mozilla/firefox/%s/places.sqlite" % (homedir, common.analytical_profiles_file(homedir))
164
objca.clean_firefox_all_records(filepathf)
165
sysdaemon.status_for_quick_clean('firefoxhistory', 'end')
167
run = common.process_pid("chromium-browser")
169
sysdaemon.status_for_quick_clean('chromiumhistory', 'start')
170
filepathc = "%s/.config/chromium/Default/History" % homedir
171
objca.clean_chromium_all_records(filepathc)
172
sysdaemon.status_for_quick_clean('chromiumhistory', 'end')
174
sysdaemon.clean_error_onekey('he')
176
sysdaemon.clean_complete_onekey('h')
178
#if flag_dic['cookies']:
180
if mode_list[2] in '1':
182
objcc = cookiesclean.CookiesClean(homedir)
183
sysdaemon.status_for_quick_clean('firefoxcookies', 'start')
184
filepathfc = "%s/.mozilla/firefox/%s/cookies.sqlite" % (homedir, common.analytical_profiles_file(homedir))
185
pamfc = [filepathfc, 'moz_cookies', 'baseDomain']
186
objcc.clean_all_records(pamfc[0], pamfc[1], pamfc[2])
187
sysdaemon.status_for_quick_clean('firefoxcookies', 'end')
189
sysdaemon.status_for_quick_clean('chromiumcookies', 'start')
190
filepathcc = "%s/.config/chromium/Default/Cookies" % homedir
191
pamcc = [filepathcc, 'cookies', 'host_key']
192
objcc.clean_all_records(pamcc[0], pamcc[1], pamcc[2])
193
sysdaemon.status_for_quick_clean('chromiumcookies', 'end')
195
sysdaemon.clean_error_onekey('ke')
197
sysdaemon.clean_complete_onekey('k')
198
sysdaemon.clean_complete_onekey('o')
200
# the functions of search the same files
201
class SearchTheSame():
203
self.objs = searchsame.SearchSame()
205
def get_scan_result(self, path):
207
self.objs.search_by_style(self.path)
208
samefile_list = self.objs.adjust_the_dic()
211
# the functions of manage the large files
212
class ManageTheLarge():
214
self.objl = diskanalyse.DiskAnalyse()
216
# def get_large_files(self, size, path, sesdaemon):
217
# objlg = diskanalyse.DiskAnalyse()
218
# finalsize = size * 1024 * 1024
219
# largefile_list = objlg.hundred_large_files(finalsize, path)
220
# for one in largefile_list:
221
# sesdaemon.data_transmit_by_large(common.confirm_filesize_unit(one[0]), one[1])
222
# sesdaemon.large_transmit_complete()
224
def get_scan_result(self, size, path):
226
finalsize = size * 1024 * 1024
227
#self.objl.hundred_large_files(finalsize, self.path)
228
#self.objl.type_of_file()
229
largefile_dic = self.objl.adjust_the_list(finalsize, self.path)
232
# the functions of clean the browser history
233
class CleanTheHistory():
237
#def new_get_history_crufts(self, flag, sesdaemon):
238
# homedir = common.return_homedir_sesdaemon()
239
# objhg = historyclean.HistoryClean(homedir)
241
# cache = common.get_cache_list()
243
# if flag in "firefox":
244
# if cache['firefox'].is_installed:
245
# filepathf = "%s/.mozilla/firefox/%s/places.sqlite" % (homedir, common.analytical_profiles_file(homedir))
246
# if not common.process_pid("firefox"):
247
# if os.path.exists(filepathf):
248
# temp_list = objhg.scan_firefox_history_records(filepathf)
249
# sesdaemon.data_transmit_by_history(sum([sin[2] for sin in temp_list]))
251
# sesdaemon.browser_status_by_history('fruning')
253
# sesdaemon.history_transmit_complete('funinstall')
254
# if flag in "chromium":
255
# if cache['chromium'].is_installed:
256
# filepathc = "%s/.config/chromium/Default/History" % homedir
257
# if not common.process_pid("chromium-browser"):
258
# if os.path.exists(filepathc):
259
# temp_list = objhg.scan_chromium_history_records(filepathc)
260
# sesdaemon.data_transmit_by_history(sum([sin[2] for sin in temp_list]))
262
# sesdaemon.browser_status_by_history('cruning')
264
# sesdaemon.history_transmit_complete('cuninstall')
266
def get_history_crufts(self, flag):
267
homedir = common.return_homedir_sesdaemon()
268
objhg = historyclean.HistoryClean(homedir)
270
cache = common.get_cache_list()
272
if flag in "firefox":
273
filepathf = "%s/.mozilla/firefox/%s/places.sqlite" % (homedir, common.analytical_profiles_file(homedir))
274
if cache['firefox'].is_installed:
275
if os.path.exists(filepathf):
276
temp_list = objhg.scan_firefox_history_records(filepathf)
277
crufts_list = ["%s<2_2>%s<2_2>%s" % (str(each[0]), each[1], str(each[2])) for each in temp_list]
280
if flag in "chromium":
281
filepathc = "%s/.config/chromium/Default/History" % homedir
282
if cache['chromium-browser'].is_installed:
283
if os.path.exists(filepathc):
284
run = common.process_pid("chromium-browser")
286
temp_list = objhg.scan_chromium_history_records(filepathc)
287
crufts_list = ["%s<2_2>%s<2_2>%s" % (str(each[0]), each[1], str(each[2])) for each in temp_list]
294
def clean_all_history_crufts(self, flag):
295
homedir = return_homedir_sysdaemon()
296
objca = historyclean.HistoryClean(homedir)
299
if flag in "firefox":
300
filepathf = "%s/.mozilla/firefox/%s/places.sqlite" % (homedir, common.analytical_profiles_file(homedir))
301
objca.clean_firefox_all_records(filepathf)
302
if flag in "chromium":
303
run = common.process_pid("chromium-browser")
305
filepathc = "%s/.config/chromium/Default/History" % homedir
306
objca.clean_chromium_all_records(filepathc)
311
# the function of clean the system history
312
class CleanSystemHistory():
313
def get_scan_result(self, homedir = ''):
314
objhg = systemhistory.SystemHistory()
315
url = objhg.scan_the_xml(homedir)
318
def clean_the_cruftlist(self):
320
objhc = systemhistory.SystemHistory()
321
objhc.clean_the_xml(HOMEDIR)
324
# the function of clean the dash history
325
class CleanDashHistory():
326
def get_scan_result(self, homedir = ''):
327
objhg = dashhistory.DashHistory(homedir)
328
num = objhg.scan_the_records()
331
def clean_the_cruftlist(self):
333
objhc = dashhistory.DashHistory(HOMEDIR)
334
objhc.clean_the_records()
336
# the function of clean the cookies
337
class CleanTheCookies():
338
def __init__(self, daemon_obj):
339
self.daemon_obj = daemon_obj
341
def get_cookie_crufts(self, flag, sesdaemon):
342
homedir = common.return_homedir_sesdaemon()
343
objcg = cookiesclean.CookiesClean(homedir)
344
cache = common.get_cache_list()
347
if flag in "firefox":
348
if cache["firefox"].is_installed:
349
filepathf = "%s/.mozilla/firefox/%s/cookies.sqlite" % (homedir, common.analytical_profiles_file(homedir))
350
if os.path.exists(filepathf):
351
pamf = [filepathf, 'moz_cookies', 'baseDomain']
352
temp_firefox_list = objcg.scan_cookies_records(pamf[0], pamf[1], pamf[2])
353
for one in temp_firefox_list:
354
sesdaemon.data_transmit_by_cookies("firefox", one[0], str(one[-1]))
355
sesdaemon.cookies_transmit_complete('firefox')
357
sesdaemon.cookies_transmit_complete('funinstall')
359
if flag in "chromium":
360
if cache["chromium-browser"].is_installed:
361
filepathc = "%s/.config/chromium/Default/Cookies" % homedir
362
if os.path.exists(filepathc):
363
pamc = [filepathc, 'cookies', 'host_key']
364
temp_chromium_list = objcg.scan_cookies_records(pamc[0], pamc[1], pamc[2])
365
for one in temp_chromium_list:
366
sesdaemon.data_transmit_by_cookies("chromium", one[0], str(one[-1]))
367
sesdaemon.cookies_transmit_complete('chromium')
369
sesdaemon.cookies_transmit_complete('cuninstall')
371
def get_cookies_crufts(self, flag):
372
homedir = common.return_homedir_sesdaemon()
373
objcg = cookiesclean.CookiesClean(homedir)
376
if flag in "firefox":
377
filepathf = common.analytical_profiles_file(homedir) + "cookies.sqlite"
378
if os.path.exists(filepathf):
379
pamf = [filepathf, 'moz_cookies', 'baseDomain']
380
temp_list = objcg.scan_cookies_records(pamf[0], pamf[1], pamf[2])
381
crufts_list = ["%s<2_2>%s" % (eachone[0], str(eachone[-1])) for eachone in temp_list]
383
crufts_list.append('None')
385
if flag in "chromium":
386
filepathc = "%s/.config/chromium/Default/Cookies" % homedir
387
if os.path.exists(filepathc):
388
pamc = [filepathc, 'cookies', 'host_key']
389
temp_list = objcg.scan_cookies_records(pamc[0], pamc[1], pamc[2])
390
crufts_list = ["%s<2_2>%s" % (eachone[0], str(eachone[-1])) for eachone in temp_list]
392
crufts_list.append('None')
397
def clean_one_cookies_cruft(self, flag, domain):
398
homedir = return_homedir_sysdaemon()
399
objcc = cookiesclean.CookiesClean(homedir)
401
if flag in "firefox":
402
filepathf = "%s/.mozilla/firefox/%s/cookies.sqlite" % (homedir, common.analytical_profiles_file(homedir))
403
pamf = [filepathf, 'moz_cookies', 'baseDomain', domain]
404
objcc.clean_cookies_record(pamf[0], pamf[1], pamf[2], pamf[3])
405
if flag in "chromium":
406
filepathc = "%s/.config/chromium/Default/Cookies" % homedir
407
pamc = [filepathc, 'cookies', 'host_key', domain]
408
objcc.clean_cookies_record(pamc[0], pamc[1], pamc[2], pamc[3])
410
def clean_all_cookies_crufts(self, flag):
411
homedir = return_homedir_sysdaemon()
412
objcc = cookiesclean.CookiesClean(homedir)
414
if flag in "firefox":
415
filepathf = "%s/.mozilla/firefox/%s/cookies.sqlite" % (homedir, common.analytical_profiles_file(homedir))
416
pamf = [filepathf, 'moz_cookies', 'baseDomain']
417
objcc.clean_all_records(pamf[0], pamf[1], pamf[2])
418
if flag in "chromium":
419
filepathc = "%s/.config/chromium/Default/Cookies" % homedir
420
pamc = [filepathc, 'cookies', 'host_key']
421
objcc.clean_all_records(pamc[0], pamc[1], pamc[2])
423
# the function of scan the unneedpackages
424
class CleanTheUnneed():
426
self.objc = osslim.OsSlim()
428
def get_scan_result(self):
429
namesummarysize = self.objc.get_spare_packages()
430
return namesummarysize
432
# the function of clean old kernel
433
class CleanTheOldkernel():
437
def get_oldkernel_crufts(self):
438
objc = oldkernel.OldKernel()
439
pkgobj_list = objc.scan_oldkernel_packages()
440
crufts_list = ["%s<2_2>%s" % (pkg.name, pkg.installed.summary, common.confirm_filesize_unit(pkg.installed.installed_size))for pkg in pkgobj_list]
443
# the function of clean spare packages
444
class CleanTheSpare():
448
def get_all_package_crufts(self, mode_list, sesdaemon):
449
if 'unneed' in mode_list:
450
upkg_obj = osslim.OsSlim()
451
temp_unneed_list = upkg_obj.scan_spare_packages()
452
for upkg in temp_unneed_list:
453
sesdaemon.data_transmit_by_package('unneed', upkg.name, upkg.installed.summary, common.confirm_filesize_unit(upkg.installed.installed_size))
455
if 'oldkernel' in mode_list:
456
opkg_obj = oldkernel.OldKernel()
457
temp_oldkernel_list = opkg_obj.scan_oldkernel_packages()
458
for opkg in temp_oldkernel_list:
459
sesdaemon.data_transmit_by_package('oldkernel', opkg.name, opkg.installed.summary, common.confirm_filesize_unit(opkg.installed.installed_size))
461
if 'configfile' in mode_list:
462
spkg_obj = softwareconfigfile.SoftwareConfigfile()
463
temp_configfile_list = spkg_obj.scan_configfile_packages()
464
for spkg in temp_configfile_list:
465
sesdaemon.data_transmit_by_package('configfile', spkg.name, '', '')
466
sesdaemon.package_transmit_complete()
468
# the function of scan the cache
469
class CleanTheCache():
471
self.objc = cacheclean.CacheClean()
473
def get_all_cache_crufts(self, mode_list, flag, sesdaemon):
474
homedir = common.return_homedir_sesdaemon()
476
if 'apt' in mode_list:
477
aptpath = "/var/cache/apt/archives"
478
temp_apt_list = self.objc.scan_apt_cache(aptpath)
479
for one in temp_apt_list:
480
sesdaemon.data_transmit_by_cache('apt', one, 'False', '%s' % common.confirm_filesize_unit(os.path.getsize(one)))
482
if 'software-center' in mode_list:
483
softwarecenterpath = "%s/.cache/software-center" % homedir
484
temp_softwarecenter_list = self.objc.public_scan_cache(softwarecenterpath)
485
for one in temp_softwarecenter_list:
486
if os.path.isdir(one):
487
sesdaemon.data_transmit_by_cache('software-center', one, 'True', common.confirm_filesize_unit(common.get_dir_size(one)))
489
sesdaemon.data_transmit_by_cache('software-center', one, 'False', common.confirm_filesize_unit(os.path.getsize(one)))
491
if 'thumbnails' in mode_list:
492
thumbnailspath = "%s/.cache/thumbnails" % homedir
493
temp_thumbnails_list = self.objc.public_scan_cache(thumbnailspath)
494
for one in temp_thumbnails_list:
495
if os.path.isdir(one):
496
sesdaemon.data_transmit_by_cache('thumbnails', one, 'True', common.confirm_filesize_unit(common.get_dir_size(one)))
498
sesdaemon.data_transmit_by_cache('thumbnails', one, 'False',common.confirm_filesize_unit(os.path.getsize(one)))
499
if 'firefox' in mode_list:
500
firefoxpath = "%s/.cache/mozilla/firefox/%s" % (homedir, common.analytical_profiles_file(homedir))
501
#sesdaemon.path_transmit_by_cache('firefox', firefoxpath)
502
temp_firefox_list = self.objc.firefox_scan_cache(firefoxpath)
503
for one in temp_firefox_list:
504
if os.path.isdir(one):
505
sesdaemon.data_transmit_by_cache('firefox', one, 'True', common.confirm_filesize_unit(common.get_dir_size(one)))
507
sedaemon.data_transmit_by_cache('firefox', one, 'False', common.confirm_filesize_unit(os.path.getsize(one)))
508
if 'chromium' in mode_list:
509
chromiumpath = "%s/.cache/chromium/Default" % homedir
510
#sesdaemon.path_transmit_by_cache('chromium', chromiumpath)
511
temp_chromium_list = self.objc.public_scan_cache(chromiumpath)
512
for one in temp_chromium_list:
513
if os.path.isdir(one):
514
sesdaemon.data_transmit_by_cache('chromium', one, 'True', common.confirm_filesize_unit(common.get_dir_size(one)))
516
sesdaemon.data_transmit_by_cache('chromium', one, 'False',common.confirm_filesize_unit(os.path.getsize(one)))
518
sesdaemon.cache_transmit_complete(flag)
520
# the function of clean cruft files and cruft packages
521
#class FunctionOfClean(threading.Thread):
522
class FunctionOfClean():
524
#threading.Thread.__init__(self)
525
#self.msgdaemon = msgdaemon
528
def clean_the_file(self, cruft):
529
tmp = cruft.encode("UTF-8")
530
#sysdaemon.data_of_remove_file(tmp)
532
if os.path.isdir(tmp):
537
#def clean_the_file(self, cruftlist):
538
# threading.Thread(target=self.clean_the_file_thread, args=(cruftlist,), name='CleanFile').start()
540
def clean_the_package(self, cruftlist, sysdaemon):
542
cache = common.get_cache_list()
544
for cruft in cruftlist:
549
pkg.mark_delete(purge=True)
550
iprogress = MyInstallProgress(sysdaemon)
551
cache.commit(None, iprogress)
553
def purge_the_package(self, cruftlist, sysdaemon):
555
cache = common.get_cache_list()
557
for cruft in cruftlist:
559
pkg.mark_delete(purge=True)
560
iprogress = MyInstallProgress(sysdaemon)
561
cache.commit(None, iprogress)
563
#def clean_the_package(self, cruftlist):
564
# threading.Thread(target=self.clean_the_package_thread, args=(cruftlist,), name='CleanPackage').start()
566
class MyInstallProgress(InstallProgress):
567
def __init__(self, sysdaemon):
568
InstallProgress.__init__(self)
569
self.sysdaemon = sysdaemon
571
def status_change(self, pkg, percent, status):
572
self.sysdaemon.status_remove_packages("apt_pulse", "percent: %s, status: %s" % (str(int(percent)), status))
574
def error(self, errorstr):
577
def finish_update(self):
578
self.sysdaemon.status_remove_packages("apt_stop", "")
580
def start_update(self):
581
self.sysdaemon.status_remove_packages("apt_start", "")
583
def cancel_mainpage_function(target_tid, exception):
587
#for tid, tobj in threading._active.items():
588
# if tobj is thread_obj:
593
# raise ValueError("Invalid thread object")
594
# res = ctypes.pythonapi.PyThreadState_SetAsyncExc(ctypes.c_long(target_tid), ctypes.py_object(exception))
597
# raise ValueError("Invalid thread ID")
599
# ctypes.pythonapi.PyThreadState_SetAsyncExc(ctypes.c_long(target_tid), None)
600
# raise SystemError("PyThreadState_SetAsyncExc failed")
602
def get_threadid(thread_obj):
605
for tid, tobj in threading._active.items():
606
if tobj is thread_obj:
611
raise ValueError("Invalid thread object")
619
def get_cache(self, sesdaemon):
623
cache_obj = cacheclean.CacheClean()
625
homedir = common.return_homedir_sesdaemon()
627
homedir = return_homedir_sysdaemon()
629
self.cache_dic = {'apt':[], 'softwarecenter':[], 'thumbnail':[]}
630
aptpath = "/var/cache/apt/archives"
631
temp_apt_list = cache_obj.scan_apt_cache(aptpath)
633
for one in temp_apt_list:
634
self.cache_dic['apt'].append(one)
635
totalsize += common.get_size(one)
636
sesdaemon.check_scan_garbage_process(one)
638
for one in temp_apt_list:
639
self.cache_dic['apt'].append(one)
640
softwarecenterpath = "%s/.cache/software-center" % homedir
641
temp_softwarecenter_list = cache_obj.public_scan_cache(softwarecenterpath)
643
for one in temp_softwarecenter_list:
644
self.cache_dic['softwarecenter'].append(one)
645
totalsize += common.get_size(one)
646
sesdaemon.check_scan_garbage_process(one)
648
for one in temp_softwarecenter_list:
649
self.cache_dic['softwarecenter'].append(one)
650
thumbnailspath = "%s/.cache/thumbnails" % homedir
652
temp_thumbnails_list = cache_obj.public_scan_cache(thumbnailspath)
656
for one in temp_thumbnails_list:
657
self.cache_dic['thumbnail'].append(one)
658
totalsize += common.get_size(one)
659
sesdaemon.check_scan_garbage_process(one)
661
for one in temp_thumbnails_list:
662
self.cache_dic['thumbnail'].append(one)
664
for key in self.cache_dic.keys():
665
if self.cache_dic[key]:
669
sesdaemon.scan_complete('True')
671
sesdaemon.scan_complete('False')
672
size_str = common.confirm_filesize_unit(totalsize)
673
sesdaemon.check_scan_complete(size_str)
677
def clean_cache(self, sysdaemon):
680
for key in self.cache_dic.keys():
681
for f in self.cache_dic[key]:
682
totalsize += common.get_size(f)
684
sysdaemon.info_for_mainpage_clean(f)
687
sysdaemon.info_for_mainpage_clean(f)
689
size_str = common.confirm_filesize_unit(totalsize)
690
sysdaemon.mainpage_clean(size_str)
691
#----------------------------NEW YOUKER--------------------
693
#---------------------SubPage---------------------
695
def append_cacheinfo_to_list(belong, path):
697
info.append('Belong:%s' % belong)
698
info.append('Path:%s' % path)
699
if os.path.isdir(path):
700
info.append('Type:directory')
701
info.append('Size:%s' % common.confirm_filesize_unit(common.get_dir_size(path)))
703
info.append('Type:file')
704
info.append('Size:%s' % common.confirm_filesize_unit(os.path.getsize(path)))
708
def interface_get_subpage_session(session, mode_dic):
709
homedir = common.return_homedir_sesdaemon()
711
cache = mode_dic.get('Cache', [])
713
cache_obj = cacheclean.CacheClean()
715
aptpath = "/var/cache/apt/archives"
716
apt_list = cache_obj.scan_apt_cache(aptpath)
717
for value in apt_list:
718
info = append_cacheinfo_to_list('Cache.apt', value)
720
session.subpage_data_signal(info)
723
#info.append('Belong:Cache.apt')
725
#session.subpage_data_signal(info)
727
if 'software-center' in cache:
728
swcenterpath = "%s/.cache/software-center" % homedir
729
swcenter_list = cache_obj.public_scan_cache(swcenterpath)
730
for value in swcenter_list:
731
info = append_cacheinfo_to_list('Cache.software-center', value)
732
session.subpage_data_signal(info)
735
#info.append('Belong:Cache-apt')
737
#session.subpage_data_signal(info)
739
if 'thumbnails' in cache:
740
thumbnailspath = "%s/.cache/thumbnails" % homedir
741
thumbnails_list = cache_obj.public_scan_cache(thumbnailspath)
742
for value in thumbnails_list:
743
info = append_cacheinfo_to_list('Cache.thumbnails', value)
744
session.subpage_data_signal(info)
747
#info.append('Belong:Cache.thumbnails')
749
#session.subpage_data_signal(info)
752
if 'firefox' in cache:
753
firefoxpath = "%s/.cache/mozilla/firefox/%s" % (homedir, common.analytical_profiles_file(homedir))
754
firefox_cache_list = cache_obj.firefox_scan_cache(firefoxpath)
755
for value in firefox_cache_list:
756
info = append_cacheinfo_to_list('Cache.firefox', value)
757
session.subpage_data_signal(info)
760
#info.append('Belong:Cache.firefox')
762
#session.subpage_data_signal(info)
764
if 'chromium' in cache:
765
chromiumpath = "%s/.cache/chromium/Default" % homedir
766
chromium_cache_list = cache_obj.public_scan_cache(chromiumpath)
767
for value in chromium_cache_list:
768
info = append_cacheinfo_to_list('Cache.chromium', value)
769
session.subpage_data_signal(info)
772
#info.append('Belong:Cache.chromium')
774
#session.subpage_data_signal(info)
776
session.subpage_status_signal('Complete:Cache')
778
cookies = mode_dic.get('Cookies', [])
780
cache = common.get_cache_list()
781
cookies_obj = cookiesclean.CookiesClean(homedir)
784
if 'firefox' in cookies:
785
if cache['firefox'].is_installed:
786
ffcpath = "%s/.mozilla/firefox/%s/cookies.sqlite" % (homedir, common.analytical_profiles_file(homedir))
787
if os.path.exists(ffcpath):
788
ffcpam = [ffcpath, 'moz_cookies', 'baseDomain']
789
firefox_cookies_list = cookies_obj.scan_cookies_records(ffcpam[0], ffcpam[1], ffcpam[2])
791
for value in firefox_cookies_list:
793
info.append('Belong:Cookies.firefox')
794
info.append('Content:%s' % value[0])
795
info.append('Count:%s' % str(value[-1]))
796
session.subpage_data_signal(info)
800
info.append('Belong:Cookies.firefox')
802
session.subpage_data_signal(info)
804
session.subpage_error_signal('Uninstalled:Firefox')
807
if 'chromium' in cookies:
809
pkg = cache['chromium-browser']
814
chcpath = "%s/.config/chromium/Default/Cookies" % homedir
815
if os.path.exists(chcpath):
816
chcpam = [chcpath, 'cookies', 'host_key']
817
chromium_cookies_list = cookies_obj.scan_cookies_records(chcpam[0], chcpam[1], chcpam[2])
818
for value in chromium_cookies_list:
820
info.append('Belong:Cookies.chromium')
821
info.append('Content:%s' % value[0])
822
info.append('Count:%s' % str(value[-1]))
823
session.subpage_data_signal(info)
826
info.append('Belong:Cookies.chromium')
828
session.subpage_data_signal(info)
830
session.subpage_error_signal('Uninstalled:Chromium')
831
session.subpage_status_signal('Complete:Cookies')
834
history = mode_dic.get('History', [])
836
cache = common.get_cache_list()
837
brohistory_obj = historyclean.HistoryClean(homedir)
839
if 'firefox' in history:
840
if cache['firefox'].is_installed:
841
ffhpath = "%s/.mozilla/firefox/%s/places.sqlite" % (homedir, common.analytical_profiles_file(homedir))
842
if os.path.exists(ffhpath):
843
firefox_history_list = brohistory_obj.scan_firefox_history_records(ffhpath)
844
#for single in firefox_history_list:
846
# info.append('Belong:History.firefox')
847
# info.append('Id:%s' % str(single[0]))
848
# info.append('Url:%s' % single[1])
849
# info.append('Count:%s' % str(single[2]))
850
# session.subpage_data_signal(info)
852
info.append('Belong:History.firefox')
853
info.append('Count:%s' % str(len(firefox_history_list)))
854
session.subpage_data_signal(info)
857
info.append('Belong:History.firefox')
859
session.subpage_data_signal(info)
862
session.subpage_error_signal('Uninstalled:Firefox')
864
if 'chromium' in history:
865
chhpath = "%s/.config/chromium/Default/History" % homedir
867
pkg = cache['chromium-browser']
872
run = common.process_pid("chromium-browser")
874
chromium_history_list = brohistory_obj.scan_chromium_history_records(chhpath)
875
#for single in chromium_history_list:
877
# info.append('Belong:History.chromium')
878
# info.append('Id:%s' % str(single[0]))
879
# info.append('Url:%s' % single[1])
880
# info.append('Count:%s' % str(single[2]))
881
# session.subpage_data_signal(info)
883
info.append('Belong:History.chromium')
884
info.append('Count:%s' % str(len(chromium_history_list)))
885
session.subpage_data_signal(info)
887
session.subpage_error_signal('Working:Chromium')
889
session.subpage_error_signal('Uninstalled:Chromium')
890
if 'bash' in history:
891
path = os.path.join(homedir, ".bash_history")
893
if os.path.exists(path):
894
size = common.confirm_filesize_unit(os.path.getsize(path))
896
info.append('Belong:History.bash')
897
info.append('Size:%s' % str(size))
898
info.append('Path:%s' % path)
899
session.subpage_data_signal(info)
905
x11_list = [os.path.join(homedir, x) for x in os.listdir(homedir) if x.startswith(".xsession-errors")]
906
for value in x11_list:
907
info = append_cacheinfo_to_list('History.X11', value)
908
session.subpage_data_signal(info)
910
if 'system' in history:
911
syshistory_obj = systemhistory.SystemHistory()
912
url_list = syshistory_obj.scan_the_xml(homedir)
913
#for value in url_list:
915
# info.append('Belong:History.system')
916
#info.append('Count:%s' % len(url_list))
917
# info.append('Href:%s' % value)
918
# session.subpage_data_signal(info)
920
info.append('Belong:History.system')
921
info.append('Count:%s' % str(len(url_list)))
922
session.subpage_data_signal(info)
923
session.subpage_status_signal('Complete:History')
925
packages = mode_dic.get('Packages', [])
927
if 'unneed' in packages:
928
unneed_obj = osslim.OsSlim()
930
unneed_packages_list = unneed_obj.get_unneed_packages()
931
for value in unneed_packages_list:
932
info = value.split(";")
933
info.insert(0, 'Belong:Packages.unneed')
934
session.subpage_data_signal(info)
936
if 'oldkernel' in packages:
937
oldkernel_obj = oldkernel.OldKernel()
939
oldkernel_list = oldkernel_obj.get_oldkernel_packages()
940
for value in oldkernel_list:
941
info = value.split(";")
942
info.insert(0, 'Belong:Packages.oldkernel')
943
session.subpage_data_signal(info)
945
if 'configfile' in packages:
946
configfile_obj = softwareconfigfile.SoftwareConfigfile()
948
configfile_list = configfile_obj.get_configfile_packages()
949
for value in configfile_list:
950
info = value.split(";")
951
info.insert(0, 'Belong:Packages.configfile')
952
session.subpage_data_signal(info)
953
session.subpage_status_signal('Complete:Packages')
954
session.subpage_status_signal('Complete:All')
957
def interface_remove_file_system(system, fp):
958
filepath = fp.encode("UTF-8")
959
if os.path.exists(fp):
961
if os.path.isdir(filepath):
962
info.append('Path:%s' % filepath)
963
info.append('Size:%s' % common.confirm_filesize_unit(common.get_dir_size(filepath)))
964
shutil.rmtree(filepath)
965
system.subpage_data_signal(info)
967
info.append('Path:%s' % filepath)
968
info.append('Size:%s' % common.confirm_filesize_unit(os.path.getsize(filepath)))
970
system.subpage_data_signal(info)
972
system.subpage_error_signal('Non-existent:%s' % filepath)
974
def interface_remove_firefox_history_system(system):
975
homedir = return_homedir_sysdaemon()
976
firefox_history_obj = historyclean.HistoryClean(homedir)
978
ffhpath = "%s/.mozilla/firefox/%s/places.sqlite" % (homedir, common.analytical_profiles_file(homedir))
979
firefox_history_obj.clean_firefox_all_records(ffhpath)
981
system.subpage_status_signal('Complete:History.firefox', 'history')
983
def interface_remove_system_history_system(system):
984
homedir = return_homedir_sysdaemon()
985
system_history_obj = systemhistory.SystemHistory()
986
system_history_obj.clean_the_xml(homedir)
987
system.subpage_status_signal('Complete:History.system', 'history')
989
def interface_remove_chromium_history_system(system):
990
homedir = return_homedir_sysdaemon()
991
chromium_history_obj = historyclean.HistoryClean(homedir)
993
run = common.process_pid("chromium-browser")
995
chhpath = "%s/.config/chromium/Default/History" % homedir
996
chromium_history_obj.clean_chromium_all_records(chhpath)
997
system.subpage_status_signal('Complete:History.chromium', 'history')
999
system.subpage_error_signal('Working:Chromium')
1001
def interface_remove_firefox_cookies_system(system, domain):
1002
homedir = return_homedir_sysdaemon()
1003
firefox_cookies_obj = cookiesclean.CookiesClean(homedir)
1006
ffcpath = "%s/.mozilla/firefox/%s/cookies.sqlite" % (homedir, common.analytical_profiles_file(homedir))
1007
ffcpam = [ffcpath, 'moz_cookies', 'baseDomain', domain]
1008
firefox_cookies_obj.clean_cookies_record(ffcpam[0], ffcpam[1], ffcpam[2], ffcpam[3])
1009
system.subpage_status_signal('Complete:Cookies.firefox', domain)
1011
def interface_remove_chromium_cookies_system(system, domain):
1012
homedir = return_homedir_sysdaemon()
1013
chromium_cookies_obj = cookiesclean.CookiesClean(homedir)
1015
chcpath = "%s/.config/chromium/Default/Cookies" % homedir
1016
chcpam = [chcpath, 'cookies', 'host_key', domain]
1017
chromium_cookies_obj.clean_cookies_record(chcpam[0], chcpam[1], chcpam[2], chcpam[3])
1018
system.subpage_status_signal('Complete:Cookies.chromium', domain)
1021
def interface_remove_package_system(system, packagename):
1023
cache = common.get_cache_list()
1026
pkg = cache[packagename]
1028
system.subpage_error_signal('Non-existent:%s' % packagename)
1029
if pkg.is_installed:
1032
pkg.mark_delete(purge=True)
1033
iprogress = NewInstallProgress(system)
1034
cache.commit(None, iprogress)
1036
class NewInstallProgress(InstallProgress):
1037
def __init__(self, system):
1038
InstallProgress.__init__(self)
1039
self.system = system
1041
def status_change(self, pkg, percent, status):
1042
#self.system.status_remove_packages("apt_pulse", "percent: %s, status: %s" % (str(int(percent)), status))
1044
info.append('Pkg:%s' % pkg)
1045
info.append('Percent:%s' % str(int(percent)))
1046
info.append('Status:%s' % status)
1047
self.system.subpage_data_signal(info)
1048
#self.system.subpage_status_signal(info, 'apt')
1050
def error(self, errorstr):
1053
def finish_update(self):
1054
#self.system.status_remove_packages("apt_stop", "")
1055
self.system.subpage_status_signal('Complete:', 'apt')
1057
def start_update(self):
1058
#self.system.status_remove_packages("apt_start", "")
1059
self.system.subpage_status_signal('Start:', 'apt')