扫描一个分类的所有规则
(self, category_name: str, show_progress: bool = True)
| 910 | return files, total_size |
| 911 | |
| 912 | def scan_category(self, category_name: str, show_progress: bool = True) -> Dict: |
| 913 | """扫描一个分类的所有规则""" |
| 914 | if category_name not in self.clean_rules: |
| 915 | return {} |
| 916 | |
| 917 | category = self.clean_rules[category_name] |
| 918 | results = {} |
| 919 | |
| 920 | for rule_key, rule in category.items(): |
| 921 | if show_progress: |
| 922 | print(f" {Colors.info('扫描中:')} {rule['name']}...", end='\r') |
| 923 | |
| 924 | files = [] |
| 925 | total_size = 0 |
| 926 | |
| 927 | for path in rule['path']: |
| 928 | file_list, size = self.scan_path(path, rule) |
| 929 | files.extend(file_list) |
| 930 | total_size += size |
| 931 | |
| 932 | results[rule_key] = { |
| 933 | 'name': rule['name'], |
| 934 | 'files': files, |
| 935 | 'size': total_size, |
| 936 | 'count': len(files), |
| 937 | 'status': rule['status'] |
| 938 | } |
| 939 | |
| 940 | if show_progress: |
| 941 | print(" " * 80, end='\r') # 清除进度行 |
| 942 | |
| 943 | return results |
| 944 | |
| 945 | def scan_all(self, show_progress: bool = True) -> Dict: |
| 946 | """扫描所有分类""" |