about summary refs log tree commit diff stats
path: root/modules/home.legacy/conf/beets
diff options
context:
space:
mode:
Diffstat (limited to 'modules/home.legacy/conf/beets')
-rw-r--r--modules/home.legacy/conf/beets/default.nix49
-rw-r--r--modules/home.legacy/conf/beets/plugins.nix26
-rw-r--r--modules/home.legacy/conf/beets/plugins/badfiles/default.nix9
-rw-r--r--modules/home.legacy/conf/beets/plugins/default.nix16
-rw-r--r--modules/home.legacy/conf/beets/plugins/duplicates/default.nix9
-rw-r--r--modules/home.legacy/conf/beets/plugins/fuzzy/default.nix6
-rw-r--r--modules/home.legacy/conf/beets/plugins/ihate/default.nix9
-rw-r--r--modules/home.legacy/conf/beets/plugins/inline/default.nix42
-rw-r--r--modules/home.legacy/conf/beets/plugins/lastgenre/default.nix7
-rw-r--r--modules/home.legacy/conf/beets/plugins/lyrics/default.nix9
-rw-r--r--modules/home.legacy/conf/beets/plugins/mbsubmit/default.nix9
-rw-r--r--modules/home.legacy/conf/beets/plugins/play/default.nix14
-rw-r--r--modules/home.legacy/conf/beets/plugins/replaygain/default.nix9
-rw-r--r--modules/home.legacy/conf/beets/plugins/smartplaylist/default.nix9
-rw-r--r--modules/home.legacy/conf/beets/plugins/xtractor/default.nix9
-rw-r--r--modules/home.legacy/conf/beets/replace_override.yaml10
16 files changed, 112 insertions, 130 deletions
diff --git a/modules/home.legacy/conf/beets/default.nix b/modules/home.legacy/conf/beets/default.nix
index 8d6277b7..612a5f03 100644
--- a/modules/home.legacy/conf/beets/default.nix
+++ b/modules/home.legacy/conf/beets/default.nix
@@ -1,3 +1,12 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
 {
   pkgs,
   lib,
@@ -5,6 +14,16 @@
   ...
 }: let
   plugins = import ./plugins.nix {};
+
+  # TODO: Enable xtractor again <2025-03-29>
+  # package = pkgs.beets.override {
+  #   pluginOverrides = {
+  #     xtractor = {
+  #       enable = true;
+  #       propagatedBuildInputs = [pkgs.beetsExtraPlugins.xtractor];
+  #     };
+  #   };
+  package = pkgs.beets;
 in {
   imports = [
     ./plugins
@@ -12,14 +31,7 @@ in {
 
   programs.beets = {
     enable = true;
-    package = pkgs.beets.override {
-      pluginOverrides = {
-        xtractor = {
-          enable = true;
-          propagatedBuildInputs = [pkgs.beetsExtraPlugins.xtractor];
-        };
-      };
-    };
+    inherit package;
 
     settings = {
       library = "${config.xdg.dataHome}/beets/library.db";
@@ -29,9 +41,12 @@ in {
         color = true;
       };
 
-      include = [
-        "./replace_override.yaml"
-      ];
+      replace = {
+        "[/]" = "\\";
+        "[\\x00-\\x1f]" = "";
+        "\\s+$" = "";
+        "^\\s+" = "";
+      };
 
       import = {
         # move, instead of copying or linking the files
@@ -50,15 +65,11 @@ in {
       };
 
       paths = let
-        j = lib.strings.concatStringsSep "/";
+        join = lib.strings.concatStringsSep "/";
       in {
-        default = j ["[Default]" "$genre" "$first_artist" "$album ($albumtype)" "$track $title"];
-        "albumtype:live" = j ["[Live]" "$genre" "$first_artist" "$album ($albumtype)" "$track $title"];
+        "albumtype:live" = join ["[Live, please delete]" "$genre" "$first_artist" "$album ($albumtype)" "$track $title"];
 
-        "albumtype:album" = j ["Music" "$genre" "$first_artist" "$album ($albumtype)" "$track $title"];
-        "albumtype::(Single|EP)" = j ["Music" "$genre" "$first_artist_singleton" "$album ($albumtype)" "$track $title"];
-        "albumtype:compilation" = j ["Complilations" "$genre" "Various Artists" "$album ($albumtype)" "$track $title"];
-        "albumtype:soundtrack" = j ["Soundtracks" "$genre" "$first_artist" "$album" "$track $title"];
+        default = "$albumartist/$album%aunique{}/$track $title";
       };
 
       inherit plugins;
@@ -90,8 +101,6 @@ in {
     };
   };
 
-  xdg.configFile."beets/replace_override.yaml".source = ./replace_override.yaml;
-
   # Use the json formatter instead of the YAML one, as the YAML formatter mangles the
   # longer python inline strings.
   # YAML is a superset of JSON.
diff --git a/modules/home.legacy/conf/beets/plugins.nix b/modules/home.legacy/conf/beets/plugins.nix
index bea2fefe..a3abb580 100644
--- a/modules/home.legacy/conf/beets/plugins.nix
+++ b/modules/home.legacy/conf/beets/plugins.nix
@@ -1,3 +1,12 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
 {...}:
 # NOTE: This list is here and not split over the various plugin dirs, as we need a way to
 # specify the order plugins are loaded in. <2024-08-11>
@@ -8,11 +17,8 @@
   # <2024-08-07>
   # "scrub"
 
-  # Help submitting stuff to music brainz
-  "mbsubmit"
-
   # Extract things from the music file
-  "xtractor"
+  # "xtractor"
 
   # Calculate replay gain
   "replaygain"
@@ -20,12 +26,6 @@
   # Check for bad files
   "badfiles"
 
-  # Alows to use inline python for parsing tags
-  "inline"
-
-  # Support player integration
-  "play"
-
   # Show tags on files/queries
   "info"
 
@@ -38,9 +38,6 @@
   # Warn, when importing a matching item
   "ihate"
 
-  # Allow fuzzy searching
-  "fuzzy"
-
   # Filter out duplicates
   "duplicates"
 
@@ -50,9 +47,6 @@
   # Download album art
   "fetchart"
 
-  # Fetches tags from `last.fm` and adds them as genres to imported music
-  "lastgenre"
-
   # Run commands on events
   "hook"
 
diff --git a/modules/home.legacy/conf/beets/plugins/badfiles/default.nix b/modules/home.legacy/conf/beets/plugins/badfiles/default.nix
index 33884785..505ecb5b 100644
--- a/modules/home.legacy/conf/beets/plugins/badfiles/default.nix
+++ b/modules/home.legacy/conf/beets/plugins/badfiles/default.nix
@@ -1,3 +1,12 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
 {
   lib,
   pkgs,
diff --git a/modules/home.legacy/conf/beets/plugins/default.nix b/modules/home.legacy/conf/beets/plugins/default.nix
index 3bea5ea8..ddba95e0 100644
--- a/modules/home.legacy/conf/beets/plugins/default.nix
+++ b/modules/home.legacy/conf/beets/plugins/default.nix
@@ -1,16 +1,20 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
 {...}: {
   imports = [
     ./badfiles
     ./duplicates
-    ./fuzzy
     ./ihate
-    ./inline
-    ./lastgenre
     ./lyrics
-    ./mbsubmit
-    ./play
     ./replaygain
     ./smartplaylist
-    ./xtractor
+    # ./xtractor
   ];
 }
diff --git a/modules/home.legacy/conf/beets/plugins/duplicates/default.nix b/modules/home.legacy/conf/beets/plugins/duplicates/default.nix
index c8a6c108..6ab08d55 100644
--- a/modules/home.legacy/conf/beets/plugins/duplicates/default.nix
+++ b/modules/home.legacy/conf/beets/plugins/duplicates/default.nix
@@ -1,3 +1,12 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
 {...}: {
   programs.beets.settings.duplicates = {
     keys = ["acoustid_fingerprint"];
diff --git a/modules/home.legacy/conf/beets/plugins/fuzzy/default.nix b/modules/home.legacy/conf/beets/plugins/fuzzy/default.nix
deleted file mode 100644
index b86b3a20..00000000
--- a/modules/home.legacy/conf/beets/plugins/fuzzy/default.nix
+++ /dev/null
@@ -1,6 +0,0 @@
-{...}: {
-  programs.beets.settings.fuzzy = {
-    # The prefix denoting that a search should be run in fuzzy mode
-    prefix = ".";
-  };
-}
diff --git a/modules/home.legacy/conf/beets/plugins/ihate/default.nix b/modules/home.legacy/conf/beets/plugins/ihate/default.nix
index 145f5f8b..51cb6f11 100644
--- a/modules/home.legacy/conf/beets/plugins/ihate/default.nix
+++ b/modules/home.legacy/conf/beets/plugins/ihate/default.nix
@@ -1,3 +1,12 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
 {...}: {
   programs.beets.settings.ihate = {
     warn = [
diff --git a/modules/home.legacy/conf/beets/plugins/inline/default.nix b/modules/home.legacy/conf/beets/plugins/inline/default.nix
deleted file mode 100644
index 0dda8cfc..00000000
--- a/modules/home.legacy/conf/beets/plugins/inline/default.nix
+++ /dev/null
@@ -1,42 +0,0 @@
-{...}: {
-  programs.beets.settings = {
-    item_fields = {
-      # Taken from https://github.com/trapd00r/configs/blob/4f3dada5700846cca6c2869e6fa6b3c795b87b67/beets/config.yaml
-      first_artist =
-        /*
-        python
-        */
-        ''
-          # import an album to another artists directory, like:
-          # Tom Jones │1999│ Burning Down the House [Single, CD, FLAC]
-          # to The Cardigans/+singles/Tom Jones & the Cardigans │1999│ Burning Down the House [Single, CD, FLAC]
-          # https://github.com/beetbox/beets/discussions/4012#discussioncomment-1021414
-          # beet import --set myartist='The Cardigans'
-          # we must first check to see if myartist is defined, that is, given on
-          # import time, or we raise an NameError exception.
-          try:
-            myartist
-          except NameError:
-            import re
-            return re.split(',|\\s+(feat(.?|uring)|&|(Vs|Ft).)', albumartist, 1, flags=re.IGNORECASE)[0]
-          else:
-            return myartist
-        '';
-
-      first_artist_singleton =
-        /*
-        python
-        */
-        ''
-          try:
-            myartist
-          except NameError:
-            import re
-            return re.split(',|\\s+(feat(.?|uring)|&|(Vs|Ft).)', artist, 1, flags=re.IGNORECASE)[0]
-          else:
-            return myartist
-        '';
-    };
-    album_fields = {};
-  };
-}
diff --git a/modules/home.legacy/conf/beets/plugins/lastgenre/default.nix b/modules/home.legacy/conf/beets/plugins/lastgenre/default.nix
deleted file mode 100644
index d10ca49f..00000000
--- a/modules/home.legacy/conf/beets/plugins/lastgenre/default.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{...}: {
-  programs.beets.settings.lastgenre = {
-    prefer_specific = false;
-    # Lookup the track, not the album
-    source = "track";
-  };
-}
diff --git a/modules/home.legacy/conf/beets/plugins/lyrics/default.nix b/modules/home.legacy/conf/beets/plugins/lyrics/default.nix
index 80544aea..4d566f0b 100644
--- a/modules/home.legacy/conf/beets/plugins/lyrics/default.nix
+++ b/modules/home.legacy/conf/beets/plugins/lyrics/default.nix
@@ -1,3 +1,12 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
 {...}: {
   programs.beets.settings.lyrics = {
     # Always fetch lyrics (and update them, if some were found)
diff --git a/modules/home.legacy/conf/beets/plugins/mbsubmit/default.nix b/modules/home.legacy/conf/beets/plugins/mbsubmit/default.nix
index b70f1c63..e69de29b 100644
--- a/modules/home.legacy/conf/beets/plugins/mbsubmit/default.nix
+++ b/modules/home.legacy/conf/beets/plugins/mbsubmit/default.nix
@@ -1,9 +0,0 @@
-{
-  lib,
-  pkgs,
-  ...
-}: {
-  programs.beets.settings.mbsubmit = {
-    picard_path = lib.getExe pkgs.picard;
-  };
-}
diff --git a/modules/home.legacy/conf/beets/plugins/play/default.nix b/modules/home.legacy/conf/beets/plugins/play/default.nix
deleted file mode 100644
index 635848c0..00000000
--- a/modules/home.legacy/conf/beets/plugins/play/default.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{
-  lib,
-  pkgs,
-  config,
-  ...
-}: {
-  programs.beets.settings.play = {
-    command = "${lib.getExe pkgs.mpc} $args add";
-    relative_to = config.services.mpd.musicDirectory;
-
-    # Run the command with the returned paths as arguments
-    raw = true;
-  };
-}
diff --git a/modules/home.legacy/conf/beets/plugins/replaygain/default.nix b/modules/home.legacy/conf/beets/plugins/replaygain/default.nix
index 611f3799..dd176541 100644
--- a/modules/home.legacy/conf/beets/plugins/replaygain/default.nix
+++ b/modules/home.legacy/conf/beets/plugins/replaygain/default.nix
@@ -1,3 +1,12 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
 {...}: {
   programs.beets.settings = {
     replaygain = {
diff --git a/modules/home.legacy/conf/beets/plugins/smartplaylist/default.nix b/modules/home.legacy/conf/beets/plugins/smartplaylist/default.nix
index b55c487c..9b52c1ad 100644
--- a/modules/home.legacy/conf/beets/plugins/smartplaylist/default.nix
+++ b/modules/home.legacy/conf/beets/plugins/smartplaylist/default.nix
@@ -1,3 +1,12 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
 {config, ...}: {
   programs.beets.settings.smartplaylist = {
     relative_to = config.services.mpd.musicDirectory;
diff --git a/modules/home.legacy/conf/beets/plugins/xtractor/default.nix b/modules/home.legacy/conf/beets/plugins/xtractor/default.nix
index d4582c5f..0a54385e 100644
--- a/modules/home.legacy/conf/beets/plugins/xtractor/default.nix
+++ b/modules/home.legacy/conf/beets/plugins/xtractor/default.nix
@@ -1,3 +1,12 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
 {
   lib,
   pkgs,
diff --git a/modules/home.legacy/conf/beets/replace_override.yaml b/modules/home.legacy/conf/beets/replace_override.yaml
deleted file mode 100644
index 23d6ea55..00000000
--- a/modules/home.legacy/conf/beets/replace_override.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
----
-replace:
-    '[\\/]': _
-    '^\.': _
-    '[\x00-\x1f]': _
-    '[<>:"\?\*\|]': _
-    '\.$': _
-    '\s+$': ''
-    '^\s+': ''
-    '^-': _