This commit is contained in:
2023-02-01 16:07:28 -05:00
parent 7af46ee940
commit 756929ef33
3 changed files with 224 additions and 1 deletions

221
beets_config_yaml Executable file
View File

@@ -0,0 +1,221 @@
directory: /mnt/q/CleanMusic/
library: ~/musiclibrary.db
# format_album: $albumartist - $album - $atype
# format_album: $genre - $albumartist [$year] - $album
missing:
format_item: '$albumartist - $album [$albumtype]$atype: $track/$tracktotal $title'
format_album: '$albumartist: ($year) $album $albumtype $atype'
paths:
# For the normal albums and eps. Used when none of the other paths should be used
# Interpreten/boysetsfire/(2000) After the Eulogy [Album]/02 - Rookie.flac
# Interpreten/Oliver Koletzki/(2019) We Are All Lost/1 - 02 - Oliver Koletzki; Monolink - We Are All Lost.flac
# default: %if{$artist_grouping,$artist_grouping/}$albumartist/$year - $album $atype%aunique{media}[%upper{$format}${bitdepth}]%if{$media,[$media]}/%if{$isMultidisc,$disc - }$track - $mySongartist$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
# For sampler and compilations. Used when 'comp:true' is set
# Compilations/Giegling/(2017) Planet Giegling/03 - Kettenkarussell - Walk With Me.flac
comp: Compilations/$albumartist/($year) $album%aunique{}/$myDisc$track - $artist - $title
# For single songs. Used when 'singleton:true' is set
# singleton:
# For Soundtracks. Used when 'albumtype:soundtrack'
# Soundtracks/Trent Reznor & Atticus Ross/Watchmen_ Volume 1 (Music From the HBO Series) (2019)/04 - Trent Reznor & Atticus Ross - Nun With a Motherf_&_ing Gun.flac
albumtype:soundtrack: Soundtracks/$albumartist - $album%aunique{} ($year)/$myDisc$track - $artist - $title
plugins:
- albumtypes
- duplicates
- fetchart
- rewrite
- missing
- chroma
- embedart
- inline
- discogs
- mbcollection
# - hook
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
musicbrainz:
user: shapechecker
pass: 7ANCLPczDNFn6Sf65vdZ
fetchart:
# #minwidth: 800
# #maxwidth: 800
# #enforce_ratio: yes
auto: yes
sources: filesystem coverart itunes amazon albumart fanarttv
# Set the file permissions
# permissions:
# file: 666
# dir: 777
import:
write: yes
copy: yes
move: no
autotag: yes
bell: no
log: ~/beet/beet.log
languages: en
# Use the original release date of an album when a re-release is added
original_date: yes
# Start counting track numbers back at one for each disc
per_disc_numbering: yes
# Activates the embed art plugin and adds the cover to the audio files metadata
embedart:
auto: yes
albumtypes:
types:
- ep: 'EP'
- single: 'Single'
- soundtrack: 'OST'
- live: 'Live'
- compilation: 'Anthology'
- remix: 'Remix'
ignore_va: compilation
bracket: '[]'
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 claypools duo de twang","oysterhead","colonel claypools 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]
# Custom user defined variables which can be used at the 'paths' section. 'inline' plugin required
# Each line is a small python script which should return a string or an int
item_fields:
# 'Nine Inch Nails - ' or '' depending if the artist differs from the album artist
mySongartist: artist + ' - ' if artist != albumartist and artist != '' else ''
# Release with multiple discs? For boolean operations
isMultidisc: 1 if disctotal > 1 else 0
# # Changes the case of the album type
# # myAlbumType: ('' if albumtype == '' else ' [' + ('EP' if albumtype == 'ep' else albumtype.capitalize()) + ']')
# myAlbumType: ('' if albumtype == '' elif albumtype == 'album' ' [' + ('EP' if albumtype == 'ep' else albumtype.capitalize()) + ']')
# '1 - ' or '' depending if there are multiple discs or not
myDisc: ('' if disctotal <= 1 else str(disc) + ' - ')
myBitDepth: ('' if bitdepth != 24 else '[24bit - '+ media + ']')
# primary_album_artist: albumartist.split(', ',1)[0:1][0]
# primary_album_artist: |
# import json
# import requests
# query_url="https://musicbrainz.org/ws/2/artist/{0}?inc=aliases&fmt=json".format(mb_albumartistid)
# try:
# primary_albumartist= requests.get(query_url).json()["sort-name"]
# except:
# if albumartist_sort:
# print("MusicBrainz lookup for primary albumartist failed! Falling back on local sort-name.")
# return albumartist_sort
# else:
# print("MusicBrainz lookup for primary albumartist failed, and local sort-name not found! Using local artist name as-is.")
# return albumartist
# else:
# return primary_albumartist
aunique:
keys: albumartist album
disambiguators: media
bracket: '[]'
extrafiles:
patterns:
all: '*.*'
artworkdir:
- '[sS]cans/'
- '[aA]rtwork/'
- '[aA]rt/'
- '[cC]over/'
paths:
artworkdir: $albumpath/Artwork
ext:log: $albumpath/$disc_folder/Data/
ext:cue: $albumpath/$disc_folder/Data/
ext:jpg: $albumpath/$disc_folder/
copyartifacts:
extensions: .cue .log .jpg .jpeg .png .txt
#none, low, medium, strong
match:
strong_rec_thresh: 0.05
max_rec:
source: strong
artist: strong
album: strong
media: strong
mediums: strong
year: strong
country: strong
label: strong
catalognum: strong
albumdisambig: strong
album_id: strong
tracks: strong
missing_tracks: medium
unmatched_tracks: medium
track_title: strong
track_artist: strong
track_index: strong
track_length: strong
track_id: strong
# hook:
# hooks:
# # Output on exit:
# # beets just exited!
# # have a nice day!
# - event: cli_exit
# command: echo "beets just exited!"
# - event: cli_exit
# command: echo "have a nice day!"
# # Output on item import:
# # importing "<file_name_here>"
# # Where <file_name_here> is the item being imported
# - event: item_imported
# command: echo "importing \"{item.path}\""
# # Output on write:
# # writing to "<file_name_here>"
# # Where <file_name_here> is the file being written to
# - event: write
# command: echo "writing to $({item.path} | cut -d/ -f 1-5)"

View File

@@ -15,7 +15,7 @@
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
in {
homeConfigurations.sstent = home-manager.lib.homeManagerConfiguration {
homeConfigurations."sstent@StuPC" = home-manager.lib.homeManagerConfiguration {
inherit pkgs;
# Specify your home configuration modules here, for example,

View File

@@ -38,12 +38,14 @@
#git-run
mr
perl
beets
];
services.keybase.enable = true;
services.kbfs.enable = true;
home.file.".mrconfig".source = ./mrconfig;
xdg.configFile."beets/config.yaml".source = ./beets_config_yaml;
programs.bash = {
enable = true;