diff --git a/modules/home-manager/beets.nix b/modules/home-manager/beets.nix index 06f4deb..df9929e 100644 --- a/modules/home-manager/beets.nix +++ b/modules/home-manager/beets.nix @@ -1,154 +1,154 @@ - { config, pkgs, lib, ... }: { options.mymods.beets.enable = lib.mkEnableOption "Beets music manager"; -config = lib.mkIf config.mymods.beets.enable { - programs.beets = { - enable = true; - settings = { - album_fields = { - artist_grouping = '' - albumartist_dev = ["devin townsend", "devin townsend project","punky brüster","strapping young lad"] - DevinFolder = "_Devin Townsend Projects" - if albumartist.lower() in albumartist_dev: - return DevinFolder - albumartist_les = ["primus", "les claypool","les claypool and the holy mackerel","les claypool’s duo de twang","oysterhead","colonel claypool’s bucket of bernie brains","the les claypool frog brigade","the claypool lennon delirium"] - LesFolder = "_Les Claypool Projects" - if albumartist.lower() in albumartist_les: - return LesFolder - ''; - atype = '' - atypes = ['EP', 'Single','Live'] - for atype in atypes: - if atype.lower() == albumtype.lower(): - return f' [{atype}]' - ''; - first_artist = "albumartist.split(', ',1)[0:1][0]"; - }; - albumtypes = { - bracket = "[]"; - ignore_va = "compilation"; - types = [ - { ep = "EP"; } - { single = "Single"; } - { soundtrack = "OST"; } - { live = "Live"; } - { compilation = "Anthology"; } - { remix = "Remix"; } - ]; - }; - aunique = { - bracket = "[]"; - disambiguators = "media"; - keys = "albumartist album"; - }; - copyartifacts = { extensions = ".cue .log .jpg .jpeg .png .txt"; }; - directory = "/mnt/q/CleanMusic/"; - embedart = { auto = true; }; - extrafiles = { - paths = { - artworkdir = "$albumpath/Artwork"; - "ext:cue" = "$albumpath/$disc_folder/Data/"; - "ext:jpg" = "$albumpath/$disc_folder/"; - "ext:log" = "$albumpath/$disc_folder/Data/"; - }; - patterns = { - all = "*.*"; - artworkdir = [ "[sS]cans/" "[aA]rtwork/" "[aA]rt/" "[cC]over/" ]; - }; - }; - fetchart = { - auto = true; - sources = "filesystem coverart itunes amazon albumart fanarttv"; - }; - import = { - autotag = true; - bell = false; - copy = true; - languages = "en"; - log = "~/beet/beet.log"; - move = false; - write = true; - }; - item_fields = { - isMultidisc = "1 if disctotal > 1 else 0"; - myBitDepth = "('' if bitdepth != 24 else '[24bit - '+ media + ']')"; - myDisc = "('' if disctotal <= 1 else str(disc) + ' - ')"; - mySongartist = - "artist + ' - ' if artist != albumartist and artist != '' else ''"; - }; - library = "~/musiclibrary.db"; - match = { - max_rec = { - album = "strong"; - album_id = "strong"; - albumdisambig = "strong"; - artist = "strong"; - catalognum = "strong"; - country = "strong"; - label = "strong"; - media = "strong"; - mediums = "strong"; - missing_tracks = "medium"; - source = "strong"; - track_artist = "strong"; - track_id = "strong"; - track_index = "strong"; - track_length = "strong"; - track_title = "strong"; - tracks = "strong"; - unmatched_tracks = "medium"; - year = "strong"; - }; - strong_rec_thresh = 5.0e-2; - }; - missing = { - format_album = "$albumartist: ($year) $album $albumtype $atype"; - format_item = "$albumartist - $album [$albumtype]$atype: $track/$tracktotal $title"; - }; - musicbrainz = { - pass = "7ANCLPczDNFn6Sf65vdZ"; - user = "shapechecker"; - }; - original_date = true; - paths = { - "albumtype:soundtrack" = "Soundtracks/$albumartist - $album%aunique{} ($year)/$myDisc$track - $artist - $title"; - comp = "Compilations/$albumartist/($year) $album%aunique{}/$myDisc$track - $artist - $title"; - default = "%if{$artist_grouping,$artist_grouping/}$first_artist/$year - $album $atype%aunique{media}[%upper{$format}$bitdepth]%if{$media,[$media]}/%if{$isMultidisc,$disc - }$track - $mySongartist$title"; - }; - per_disc_numbering = true; - plugins = [ - "albumtypes" - "duplicates" - "fetchart" - "rewrite" - "missing" - "chroma" - "embedart" - "inline" - "discogs" - "mbcollection" - ]; - rewrite = { - "artist Björk & Tríó Guðmundar Ingólfssonar" = "Björk"; - "artist Brant Bjork and The Low Desert Punk Band" = "Brant Bjork"; - "artist King Gizzard & The Lizard Wizard with Mild High Club" = "King Gizzard & The Lizard Wizard"; - "artist Kyuss _ Queens of the Stone Age" = "Kyuss"; - "artist Professor Elemental & Tom Caruana" = "Professor Elemental"; - "artist Resin Dogs Feat Spikey Tee" = "Resin Dogs"; - "artist Sepultura _ Exodus" = "Sepultura"; - "artist The Knife in collaboration with Mount Sims and Planningtorock" = "The Knife"; - "artist Unida _ Dozer" = "Unida"; - }; -}; - - + config = lib.mkIf config.mymods.beets.enable { + home-manager.users."sstent".programs.beets = { + enable = true; + settings = { + album_fields = { + artist_grouping = '' + albumartist_dev = ["devin townsend", "devin townsend project","punky brüster","strapping young lad"] + DevinFolder = "_Devin Townsend Projects" + if albumartist.lower() in albumartist_dev: + return DevinFolder + albumartist_les = ["primus", "les claypool","les claypool and the holy mackerel","les claypool’s duo de twang","oysterhead","colonel claypool’s bucket of bernie brains","the les claypool frog brigade","the claypool lennon delirium"] + LesFolder = "_Les Claypool Projects" + if albumartist.lower() in albumartist_les: + return LesFolder + ''; + atype = '' + atypes = ['EP', 'Single','Live'] + for atype in atypes: + if atype.lower() == albumtype.lower(): + return f' [{atype}]' + ''; + first_artist = "albumartist.split(', ',1)[0:1][0]"; + }; + albumtypes = { + bracket = "[]"; + ignore_va = "compilation"; + types = [ + { ep = "EP"; } + { single = "Single"; } + { soundtrack = "OST"; } + { live = "Live"; } + { compilation = "Anthology"; } + { remix = "Remix"; } + ]; + }; + aunique = { + bracket = "[]"; + disambiguators = "media"; + keys = "albumartist album"; + }; + copyartifacts = { extensions = ".cue .log .jpg .jpeg .png .txt"; }; + directory = "/mnt/q/CleanMusic/"; + embedart = { auto = true; }; + extrafiles = { + paths = { + artworkdir = "$albumpath/Artwork"; + "ext:cue" = "$albumpath/$disc_folder/Data/"; + "ext:jpg" = "$albumpath/$disc_folder/"; + "ext:log" = "$albumpath/$disc_folder/Data/"; + }; + patterns = { + all = "*.*"; + artworkdir = [ "[sS]cans/" "[aA]rtwork/" "[aA]rt/" "[cC]over/" ]; + }; + }; + fetchart = { + auto = true; + sources = "filesystem coverart itunes amazon albumart fanarttv"; + }; + import = { + autotag = true; + bell = false; + copy = true; + languages = "en"; + log = "~/beet/beet.log"; + move = false; + write = true; + }; + item_fields = { + isMultidisc = "1 if disctotal > 1 else 0"; + myBitDepth = "('' if bitdepth != 24 else '[24bit - '+ media + ']')"; + myDisc = "('' if disctotal <= 1 else str(disc) + ' - ')"; + mySongartist = + "artist + ' - ' if artist != albumartist and artist != '' else ''"; + }; + library = "~/musiclibrary.db"; + match = { + max_rec = { + album = "strong"; + album_id = "strong"; + albumdisambig = "strong"; + artist = "strong"; + catalognum = "strong"; + country = "strong"; + label = "strong"; + media = "strong"; + mediums = "strong"; + missing_tracks = "medium"; + source = "strong"; + track_artist = "strong"; + track_id = "strong"; + track_index = "strong"; + track_length = "strong"; + track_title = "strong"; + tracks = "strong"; + unmatched_tracks = "medium"; + year = "strong"; + }; + strong_rec_thresh = 5.0e-2; + }; + missing = { + format_album = "$albumartist: ($year) $album $albumtype $atype"; + format_item = + "$albumartist - $album [$albumtype]$atype: $track/$tracktotal $title"; + }; + musicbrainz = { + pass = "7ANCLPczDNFn6Sf65vdZ"; + user = "shapechecker"; + }; + original_date = true; + paths = { + "albumtype:soundtrack" = + "Soundtracks/$albumartist - $album%aunique{} ($year)/$myDisc$track - $artist - $title"; + comp = + "Compilations/$albumartist/($year) $album%aunique{}/$myDisc$track - $artist - $title"; + default = + "%if{$artist_grouping,$artist_grouping/}$first_artist/$year - $album $atype%aunique{media}[%upper{$format}$bitdepth]%if{$media,[$media]}/%if{$isMultidisc,$disc - }$track - $mySongartist$title"; + }; + per_disc_numbering = true; + plugins = [ + "albumtypes" + "duplicates" + "fetchart" + "rewrite" + "missing" + "chroma" + "embedart" + "inline" + "discogs" + "mbcollection" + ]; + rewrite = { + "artist Björk & Tríó Guðmundar Ingólfssonar" = "Björk"; + "artist Brant Bjork and The Low Desert Punk Band" = "Brant Bjork"; + "artist King Gizzard & The Lizard Wizard with Mild High Club" = + "King Gizzard & The Lizard Wizard"; + "artist Kyuss _ Queens of the Stone Age" = "Kyuss"; + "artist Professor Elemental & Tom Caruana" = "Professor Elemental"; + "artist Resin Dogs Feat Spikey Tee" = "Resin Dogs"; + "artist Sepultura _ Exodus" = "Sepultura"; + "artist The Knife in collaboration with Mount Sims and Planningtorock" = + "The Knife"; + "artist Unida _ Dozer" = "Unida"; + }; + }; }; -}; - } - - - + }; +}