beetbox / beetbox/beets

Add album_(moved, copied, removed, ...) API events

Open
#2,629 5 comments 0 reactions 0 assignees View on GitHub
feature
Dominant language
Python
Stars
15.7k
Forks
2.1k
Avg merge
4d 21h
Merged PRs (30d)
31

Description

### Request

It would be very nice to have `album_(moved, copied, removed, ...)` events that are fired when a full album is moved/copied/removed. Similar to the `item_(moved, copied, removed, ...)` events that are fired when a single item is moved/copied/removed.

For completeness it would make sense to also add events for `album_linked` and `album_hardlinked` and maybe even `album_converted` in the `convert` plugin.

At the moment we only have a `album_imported` event.

### Why? / Use cases

This feature would be critical to implement plugins that operate on whole albums after they are changed on the file system.

At the moment a plugin that wishes to implement something like that would have to cross reference the `item_(moved, copied, removed, ...)` events to the items in albums and check if all items of an album have been moved. This not only causes code duplication (each plugin has do reimplement it), but more importantly it is a really dirty hack that is very error prone.

One use case for this feature would be a plugin that manages non music files (similar to the `copyartifacts` plugin that never quite worked because of this), but I'm sure their are a lot of other use cases as well.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.