Tags / Labels / Categories

Registered by Selene ToyKeeper

Tags (or labels, or categories) can be assigned to songs, albums, or artists.

This gets stored in two ways:
  - In a subdir for the song/album/artist. For a song, this would be something like a "mylabel" line in ".song.mp3/.tags", or perhaps a file called ".song.mp3/tags/mylabel". For an artist or album, it would be the same, but without the initial dot. (album/.tags or artist/.tags)
  - In a tag directory. This would be a symlink pointing at each song/album/artist. For example, "tags/mylabel/Artist_Album_Song.mp3 -> ../../Artist/Album/song.mp3". This allows things such as "ls tags/classical" to display everything tagged with "classical".

A command would be needed to add tags to an object, list tags associated with an object, remove tags from an object, and synchronize the two tag storage locations. (sync is needed after renaming files, mostly... remove any broken symlinks, add links which should exist but don't, and add any missing tag file entries for incoming links)

Also, some way to specify tags would be needed for other commands. For example, instead of "musec add foo.mp3", the user might want to do "musec add tag::classical" or similar.

Another (optional) consideration is nested categories. For example, "tags/parent/child/link -> song" or "musec add tag::parent/child". I'm not yet sure if this is useful, but it's something to keep in mind.

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
None
Direction:
Needs approval
Assignee:
None
Definition:
Approved
Series goal:
None
Implementation:
Not started
Milestone target:
None

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.