mirror of
				https://github.com/arsenetar/dupeguru.git
				synced 2025-09-11 17:58:17 +00:00 
			
		
		
		
	Fixed a bug causing groups with more than one ref file in it to appear (which looks weird and messes with selection).
Contents scans already weeded them out, bu t they were still possible with name-based scans. Now, the Scanner removes them all.
This commit is contained in:
		
							parent
							
								
									df30a31782
								
							
						
					
					
						commit
						111edc3ce5
					
				| @ -11,7 +11,6 @@ import re | |||||||
| import os.path as op | import os.path as op | ||||||
| 
 | 
 | ||||||
| from jobprogress import job | from jobprogress import job | ||||||
| from hscommon import io |  | ||||||
| from hscommon.util import dedupe, rem_file_ext, get_file_ext | from hscommon.util import dedupe, rem_file_ext, get_file_ext | ||||||
| from hscommon.trans import tr | from hscommon.trans import tr | ||||||
| 
 | 
 | ||||||
| @ -129,6 +128,11 @@ class Scanner: | |||||||
|         matches = self._getmatches(files, j) |         matches = self._getmatches(files, j) | ||||||
|         logging.info('Found %d matches' % len(matches)) |         logging.info('Found %d matches' % len(matches)) | ||||||
|         j.set_progress(100, tr("Removing false matches")) |         j.set_progress(100, tr("Removing false matches")) | ||||||
|  |         # In removing what we call here "false matches", we first want to remove, if we scan by | ||||||
|  |         # folders, we want to remove folder matches for which the parent is also in a match (they're | ||||||
|  |         # "duplicated duplicates if you will). Then, we also don't want mixed file kinds if the | ||||||
|  |         # option isn't enabled, we want matches for which both files exist and, lastly, we don't | ||||||
|  |         # want matches with both files as ref. | ||||||
|         if self.scan_type == ScanType.Folders and matches: |         if self.scan_type == ScanType.Folders and matches: | ||||||
|             allpath = {m.first.path for m in matches} |             allpath = {m.first.path for m in matches} | ||||||
|             allpath |= {m.second.path for m in matches} |             allpath |= {m.second.path for m in matches} | ||||||
| @ -143,7 +147,8 @@ class Scanner: | |||||||
|             matches = [m for m in matches if m.first.path not in toremove or m.second.path not in toremove] |             matches = [m for m in matches if m.first.path not in toremove or m.second.path not in toremove] | ||||||
|         if not self.mix_file_kind: |         if not self.mix_file_kind: | ||||||
|             matches = [m for m in matches if get_file_ext(m.first.name) == get_file_ext(m.second.name)] |             matches = [m for m in matches if get_file_ext(m.first.name) == get_file_ext(m.second.name)] | ||||||
|         matches = [m for m in matches if io.exists(m.first.path) and io.exists(m.second.path)] |         matches = [m for m in matches if m.first.path.exists() and m.second.path.exists()] | ||||||
|  |         matches = [m for m in matches if not (m.first.is_ref and m.second.is_ref)] | ||||||
|         if self.ignore_list: |         if self.ignore_list: | ||||||
|             j = j.start_subjob(2) |             j = j.start_subjob(2) | ||||||
|             iter_matches = j.iter_with_progress(matches, tr("Processed %d/%d matches against the ignore list")) |             iter_matches = j.iter_with_progress(matches, tr("Processed %d/%d matches against the ignore list")) | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user