diff --git a/find_duplicate_contacts/find_duplicate_contacts.py b/find_duplicate_contacts/find_duplicate_contacts.py index 9376bfb..130a18d 100755 --- a/find_duplicate_contacts/find_duplicate_contacts.py +++ b/find_duplicate_contacts/find_duplicate_contacts.py @@ -79,28 +79,30 @@ class FindDuplicateContacts: def compare_cards(self): '''Compare all vCards''' checked_cards = [] + self.removed_cards = [] count = 0 for card in self.cards: - count +=1 - print(f"Contact {count} of {len(self.cards)}:\b") - duplicated = False - for checked_card in checked_cards: - if self.are_same_dict(card['content'], checked_card['content']): - duplicated = True - self._log.info( - "Totally duplicates:\n '%s'\n '%s", - card['filename'], - checked_card['filename'] - ) - shutil.move( - card['filename'], - os.path.join(self.duplicates_folder, os.path.basename(card['filename'])) - ) - if self.are_partially_same_dict(card['content'], checked_card['content'], key='fn'): - if self.manual_check_cards(card, checked_card): + if card['filename'] not in self.removed_cards: + count +=1 + print(f"Contact {count} of {len(self.cards)}:\b") + duplicated = False + for checked_card in checked_cards: + if self.are_same_dict(card['content'], checked_card['content']): duplicated = True - if not duplicated: - checked_cards.append(card) + self._log.info( + "Totally duplicates:\n '%s'\n '%s", + card['filename'], + checked_card['filename'] + ) + shutil.move( + card['filename'], + os.path.join(self.duplicates_folder, os.path.basename(card['filename'])) + ) + if self.are_partially_same_dict(card['content'], checked_card['content'], key='fn'): + if self.manual_check_cards(card, checked_card): + duplicated = True + if not duplicated: + checked_cards.append(card) self._log.info( "Found %s unique cards", len(checked_cards) @@ -142,12 +144,14 @@ class FindDuplicateContacts: card2['filename'], os.path.join(self.duplicates_folder, os.path.basename(card2['filename'])) ) + self.removed_cards.append(card2['filename']) return True elif option == "2": shutil.move( card1['filename'], os.path.join(self.duplicates_folder, os.path.basename(card1['filename'])) ) + self.removed_cards.append(card1['filename']) return True else: print('Doing nothing.')