mirror of
https://github.com/beetbox/beets.git
synced 2025-12-06 08:39:17 +01:00
duplicates: Add --remove option to duplicates plugin
Removes from library but keeps files.
This commit is contained in:
parent
ac96b9b64e
commit
537a71ff82
1 changed files with 20 additions and 1 deletions
|
|
@ -53,6 +53,7 @@ class DuplicatesPlugin(BeetsPlugin):
|
|||
"tiebreak": {},
|
||||
"strict": False,
|
||||
"tag": "",
|
||||
"remove": False,
|
||||
}
|
||||
)
|
||||
|
||||
|
|
@ -131,6 +132,13 @@ class DuplicatesPlugin(BeetsPlugin):
|
|||
action="store",
|
||||
help="tag matched items with 'k=v' attribute",
|
||||
)
|
||||
self._command.parser.add_option(
|
||||
"-r",
|
||||
"--remove",
|
||||
dest="remove",
|
||||
action="store_true",
|
||||
help="remove items from library",
|
||||
)
|
||||
self._command.parser.add_all_common_options()
|
||||
|
||||
def commands(self):
|
||||
|
|
@ -141,6 +149,7 @@ class DuplicatesPlugin(BeetsPlugin):
|
|||
copy = bytestring_path(self.config["copy"].as_str())
|
||||
count = self.config["count"].get(bool)
|
||||
delete = self.config["delete"].get(bool)
|
||||
remove = self.config["remove"].get(bool)
|
||||
fmt = self.config["format"].get(str)
|
||||
full = self.config["full"].get(bool)
|
||||
keys = self.config["keys"].as_str_seq()
|
||||
|
|
@ -196,6 +205,7 @@ class DuplicatesPlugin(BeetsPlugin):
|
|||
copy=copy,
|
||||
move=move,
|
||||
delete=delete,
|
||||
remove=remove,
|
||||
tag=tag,
|
||||
fmt=fmt.format(obj_count),
|
||||
)
|
||||
|
|
@ -204,7 +214,14 @@ class DuplicatesPlugin(BeetsPlugin):
|
|||
return [self._command]
|
||||
|
||||
def _process_item(
|
||||
self, item, copy=False, move=False, delete=False, tag=False, fmt=""
|
||||
self,
|
||||
item,
|
||||
copy=False,
|
||||
move=False,
|
||||
delete=False,
|
||||
tag=False,
|
||||
fmt="",
|
||||
remove=False,
|
||||
):
|
||||
"""Process Item `item`."""
|
||||
print_(format(item, fmt))
|
||||
|
|
@ -216,6 +233,8 @@ class DuplicatesPlugin(BeetsPlugin):
|
|||
item.store()
|
||||
if delete:
|
||||
item.remove(delete=True)
|
||||
if remove:
|
||||
item.remove(delete=False)
|
||||
if tag:
|
||||
try:
|
||||
k, v = tag.split("=")
|
||||
|
|
|
|||
Loading…
Reference in a new issue