显示扫描结果
(self, category_name: str = None)
| 960 | return all_results |
| 961 | |
| 962 | def show_scan_results(self, category_name: str = None): |
| 963 | """显示扫描结果""" |
| 964 | if not self.scan_results: |
| 965 | print(Colors.warning("请先执行扫描")) |
| 966 | return |
| 967 | |
| 968 | categories_to_show = [category_name] if category_name else self.scan_results.keys() |
| 969 | |
| 970 | total_size = 0 |
| 971 | total_files = 0 |
| 972 | |
| 973 | # 准备全局表格数据 |
| 974 | headers = ["编号", "分类", "项目名称", "文件数", "占用空间"] |
| 975 | rows = [] |
| 976 | |
| 977 | # 重置编号映射 |
| 978 | self.item_index_map = {} |
| 979 | global_idx = 1 |
| 980 | |
| 981 | for cat_name in categories_to_show: |
| 982 | if cat_name not in self.scan_results: |
| 983 | continue |
| 984 | |
| 985 | category_data = self.scan_results[cat_name] |
| 986 | |
| 987 | for rule_key, result in category_data.items(): |
| 988 | size_text = self.format_size(result['size']) |
| 989 | |
| 990 | # 如果大小超过 100MB,标红 |
| 991 | if result['size'] > 100 * 1024 * 1024: |
| 992 | size_text = Colors.warning(size_text) |
| 993 | |
| 994 | # 分类名称翻译 |
| 995 | cat_display = { |
| 996 | 'panel': '面板', |
| 997 | 'system': '系统', |
| 998 | 'other': '其他' |
| 999 | }.get(cat_name, cat_name) |
| 1000 | |
| 1001 | rows.append([ |
| 1002 | global_idx, |
| 1003 | cat_display, |
| 1004 | result['name'], |
| 1005 | result['count'], |
| 1006 | size_text |
| 1007 | ]) |
| 1008 | |
| 1009 | # 保存编号映射 |
| 1010 | self.item_index_map[global_idx] = { |
| 1011 | 'category': cat_name, |
| 1012 | 'rule_key': rule_key, |
| 1013 | 'result': result |
| 1014 | } |
| 1015 | |
| 1016 | total_size += result['size'] |
| 1017 | total_files += result['count'] |
| 1018 | global_idx += 1 |
| 1019 |
no test coverage detected