* Many thanks to Patrick O’Brien for the German tutorial.
A plugin that does one thing only: Detect and Manage duplicate items in .
Main Features
- Duplicates Detection
- Detects if newly imported items are duplicates of existing ones in the Zotero library.
- You can choose which version of duplicate items to use as the master item and merge them.
- The actions you can take:
- Keep New: Set the new item as the master item and merge the duplicates.
- Keep Old: Set the existing item as the master item and merge the duplicates.
- Keep All: Keep both the new item and the existing item.
- Merge Manually: Go to the Duplicate Items Panel and merge the duplicate item manually.
- Auto-Bulk Merge
- Merges all duplicate items in the library automatically.
- Introduced in Version 2.0.0.
- Non-duplicates Management
- Allows marking items as “Non-duplicates” if mistakenly identified as duplicates by Zotero.
- Introduced in Version 3.0.0.
- Show Duplicate Statistics
- Append the duplicate count on the label of Duplicate Items pane.
- Introduced in Version 2.3.0.
If you find this project helpful, please consider giving it a star ⭐. It would be a great encouragement for me!
[!IMPORTANT]
Zoplicate does NOT delete the duplicate items arbitrarily.
Instead, it extracts the useful information from the duplicate items and merges them into the retained item.
It makes some improvements based on the official detection and merging methods of Zotero.
Changelog
v3.0.5
Click here to show more.
In this version, we have made the following changes:
- 🐛 FIX!: We have fixed the bug that caused the sync error.
- Thanks to dstillman for reporting this issue in issue #124.
- 🐛 FIX!: We have optimized the UI of context menu.
- Thanks to dschaehi for reporting this issue in issue #119.
- 🐛 FIX!: We have optimized the UI styling of bulk merge buttons.
- Thanks to vancleve for reporting this issue in issue #120.
v3.0.4
Click here to show more.
In this version, we have made the following changes:
- 🐛 FIX!: We have fixed the bug that caused the UI blocked when selecting too many items and opening the context menu.
- Thanks to zzlb0224, pencilheart and dschaehi for reporting this bug in issue #94 and issue #119 respectively.
- 🐛 FIX!: We have optimized the plugin lifecycle which may cause the plugin to load multiple preference settings on macOS.
- Thanks to WangYe661 and pencilheart for reporting this bug in issue #81.
- 🐛 FIX!: We have optimized database operations to reduce the risk of data loss.
v3.0.3
Click here to show more.
In this version, we have made the following changes:
- 🐛 FIX!: We have fixed the bug that caused the attachment to be lost when merging duplicate items.
- Thanks to tommyhosman for reporting this bug in issue #43.
- Thanks to csdaboluo for reporting this bug in issue #51.
- 🐛 FIX!: Zoplicate will now ignore the Feed items when detecting duplicates.
- Thanks to Raphael-Hao for reporting this bug in issue #54.
- 🐛 FIX!: We have fixed the bug that caused the detection dialog blocking the main thread.
- 🐛 FIX!: We have fixed the bug that caused the deleted items to be showing in NonDuplicates panel.
- 🐛 FIX!: Now, the NonDuplicates panel won’t show up when clicking attachment items.
- ✨ NEW!: We added a prompt to remind the duplicates when Zotero is in background.
Click here to show more.
v3.0.2
Click here to show more.
In this version, we have made the following changes:
- 🐛 FIX!: We have fixed the progress window icon bug in Zotero 7.0.0-beta.77.
- 🧬 CHANGE!: We have updated the style of duplicate detection dialog.
- 🧬 CHANGE!: We have updated the icon style in preference pane.
- 🧬 CHANGE!: Items with different
itemType
will not be considered as duplicates.
v3.0.1
Click here to show more.
In this version, we have made the following changes:
- 🧬 CHANGE!: We have updated the UI of buttons in the duplicate pane.
- 🐛 FIX!: We have optimized the performance of duplicate search and detection.
v3.0.0
Click here to show more.
In this version, we have made the following changes:
- 🐛 FIX!: We have fixed a memory leak bug that caused the app to freeze when editing PDF annotations.
- Thanks vancleve and pencilheart for reporting this bug in issue #30 and issue #31 respectively.
- ✨ NEW!: We have added the Non-duplicates functionality.
- You can mark items as Non-duplicates when they are mistakenly identified as “duplicates” by Zotero.
- Selecting two “false duplicates”, you can find the
They are NOT duplicates
menu items in the context menu. - You can also find the
They are NOT duplicates
button in theDuplicate Items
panel. - For more details, please see Non-duplicates section below.
- Thanks dschaehi for the discussion in issue #25.
v2.3.0
Click here to show more.
In this version, we have made the following changes:
- ✨ NEW!: We have added an option to show the duplicate count on the left collection pane.
- You can find the option in the
Zoplicate
tab in the settings. -
When your mouse hovers over the Duplicate Items entry, a tooltip will show the duplicate statistics.
-
The duplicate count will be updated automatically. You can also find the Refresh Duplicate Count menu to update the count manually.
- Thanks Apollo7777777’s idea mentioned in discussion #18
- You can find the option in the
- 🐛 FIX!: We have fixed a bug that caused the dialog to be too narrow when the title is short.
- 🐛 FIX!: We have fixed a bug that caused the
Bulk Merge
icons to not maintain aspect ratios.
v2.2.0
Click here to show more.
In this version, we have made the following changes:
v2.1.0
Click here to show more.
In this version, we have made the following changes:
- ✨ NEW!: We have added the Suspend and Restore functionality (Only available in Zotero 7 now).
- Please see Bulk Merge section below for more details.
- 🧬 CHANGE!: We have changed the behavior of Keep Others action.
- Previously, the Keep Others action will delete the last imported item and save ALL the rest existing items.
- Now, the action will Merge the existing items based on the Master Item preferences in Settings.
- 🐛 FIX!: We have fixed a bug that caused the tags could not be loaded correctly in v2.0.0.
- Thanks ChinJCheung for reporting this bug in issue #10.
v2.0.0
Click here to show more.
In this version, we have made the following changes:
- ✨ NEW!: We have added the Bulk Merge functionality (Only available in Zotero 7 now).
- Bulk Merge: Merge all duplicate items in the library automatically.
- You can find the Bulk Merge button in the
Duplicate Items
panel. - Please see Bulk Merge section below for more details.
- Thanks csdaboluo’s idea mentioned in issue #8.
- 🐛 FIX!: We have fixed a bug that caused the dialog height to be too high when importing duplicate items in bulk.
- 🐛 FIX!: Now Zotero will auto-select the remained item after merging duplicate items.
- Thanks pencilheart’s report in issue #7.
v1.1.0
Click here to show more.
In this version, we have made the following changes:
-
🧬 CHANGE!: We have changed the processing method of duplicate items.
Previously, we use the
Trash
method to process duplicate items, i.e., delete the duplicate items. However, this method will cause the loss of some information of the duplicate items.- E.g., notes, tags, collections, attachments.
In this version, we use the
Merge
method to process duplicate items. This method will copy all the aforementioned information to the retained item, and then delete the duplicate items.- NOTE: If you are using ZotFile, the
Merge
method will copy the file link of the duplicate items to the retained item. - However, users relying on Zotero’s default attachment storage may encounter duplication issues if the newly imported item contains attachments.
- This is a known potential problem in Zotero, as detailed in Zotero Documentation - Duplicate Detection.
Thanks ChinJCheung’s idea mentioned in issue #5.
Install
From GitHub
- Download
.xpi
file according to the version of Zotero you are using.- For Zotero 7: Visit the release page and download the latest
.xpi
file. - For Zotero 6: Visit the release page and download the
.xpi
file for Zotero 6. - If you are using FireFox, right-click on the link of the XPI file and select “Save As…”.
- For Zotero 7: Visit the release page and download the latest
- Then, in Zotero, click
Tools
->Add-ons
and drag the.xpi
onto the Add-ons window.
From Add-on Market Plugin for Zotero
Additional third-party plugin is required.
- Install Add-on Market for Zotero from here.
- Search
Zoplicate
in the Add-on Market and install it.
通过 Zotero 插件商店 安装 (For Chinese Users)
- 前往 Zotero 插件商店.
- 搜索
Zoplicate
然后单击下载
按钮。
Usage
Settings
In Zotero, click Edit
-> Settings
, go to Zoplicate
tab, and you will see the settings.
- You can select the actions you want to take when duplicate items are detected.
Always Ask
is the default option if you have not changed the settings.
- You can select the version of duplicate items to use as the master item.
Earliest Added
is the default option if you have not changed the settings.
Duplicate Detection
By default, or you have selected Always Ask
in the settings,
a dialog will pop up when you import a new item that is a duplicate of an existing item.
The dialog will show the duplicate items and the actions you can take.
- Select the action you want to take and click Apply to process the duplicate items.
- Click Go to Duplicates to go to the
Duplicate Items
panel and merge the duplicate items manually. - Click Cancel to dismiss the dialog and save the import of the new item and the existing items.
- Check Use this action by default to remember the selected action in default settings. Then the next time you import a duplicate item, the selected action will be applied automatically.
Multiple Duplicate Items
When you import multiple duplicate items, or import another duplicate item before you process the previous duplicate items, the dialog will show all the duplicate items and the actions you can take.
- You can select different actions for different duplicate items.
- Click the header of action columns to select the same action for all duplicate items.
- Use this action by default option will be shown only when you select the same action for all duplicate items.
Bulk Merge
Inspired by csdaboluo’s idea and ZoteroDuplicatesMerger, we have added the Bulk Merge functionality in Version 2.0.0.
In the Duplicate Items
panel, you can find the Bulk Merge All Duplicate Items button:
You can also find it when you select one or more duplicate items:
[!WARNING]
- Before clicking the button, please make sure you have properly configured the Master Item preferences in Settings.
- The Bulk Merge functionality will take a while to complete if you have a large number of duplicate items.
- This functionality is only available in Zotero 7 now. I will check compatibility and try to migrate to Zotero 6.
You will see the progress of the bulk merge process:
Suspend Bulk Merge
You can click the Suspend button to suspend the bulk merge process.
A dialog will pop up to confirm your action:
- Click Resume to resume the bulk merge process.
- Click Cancel to cancel the bulk merge process.
- Check Restore Deleted Items to restore the duplicate items that have been merged.
- Note that the Restore action is only effective if you click Cancel.
[!TIP]
If you want to Restore the duplicate items that have been merged, you can go to
Trash
panel and restore them.
- Select the duplicate items you want to restore.
- Click Restore to Library button to process.
Show Duplicate Statistics
Starting from Version 2.3.0, we have added an option to show the duplicate count on the left collection pane.
You can find the option in the Zoplicate
tab in the settings.
When your mouse hovers over the Duplicate Items entry, a tooltip will show the duplicate statistics.
The duplicate count will be updated automatically. You can also find the Refresh menu to update the count manually.
Non-duplicates
Starting from Version 3.0.0, we have added the Non-duplicates functionality.
You can mark items as Non-duplicates when they are mistakenly identified as “duplicates” by Zotero.
Selecting an item, you can manage the Non-duplicates items in the side panel:
- Click the ![non-duplicate button](/zoplicate/addon/chrome/content/icons/non-duplicate.svg) button to show the Non-duplicates section.
- Click the + button to add the selected item to the Non-duplicates list.
- Click the - button to remove the selected entry from the Non-duplicates list.
There are some ways to mark and unmark items as Non-duplicates:
Mark as Non-duplicates
- Click the + button to add the selected item to the Non-duplicates list.
- Selecting two “false duplicates”, you can find the
They are NOT duplicates
menu items in the context menu. - You can also find the
They are NOT duplicates
button in theDuplicate Items
panel.
Unmark as Non-duplicates
- Click the - button to remove the selected entry from the Non-duplicates list.
- Selecting two “non duplicates”, you can find the
They are duplicates
menu items in the context menu.
Contributing
👋 Welcome to Zoplicate! We’re excited to have your contributions. Here’s how you can get involved:
-
💡 Discuss New Ideas: Have a creative idea or suggestion? Start a discussion in the Discussions tab to share your thoughts and gather feedback from the community.
-
❓ Ask Questions: Got questions or need clarification on something in the repository? Feel free to open an Issue labeled as a “question” or participate in Discussions.
-
🐛 Issue a Bug: If you’ve identified a bug or an issue with the code, please open a new Issue with a clear description of the problem, steps to reproduce it, and your environment details.
-
✨ Introduce New Features: Want to add a new feature or enhancement to the project? Fork the repository, create a new branch, and submit a Pull Request with your changes. Make sure to follow our contribution guidelines.
-
💖 Funding: If you’d like to financially support the project, you can do so by sponsoring the repository on GitHub. Your contributions help us maintain and improve the project.
Acknowledgements
I would like to express my gratitude to the following individuals and organizations for their generous support and contributions to this project:
Sponsors
Usually, a ⭐️ is enough to make me happy. Your sponsorship will help me maintain and improve the project. Also, part of the sponsorship will be donated to the open-source community.
Thank you for considering contributing to Zoplicate. We value your input and look forward to collaborating with you!