Merge pull request #18476 from michalrus/beets-keyfinder-copyartifacts
Beets: fix keyfinder plugin (did not work) and add copyartifacts plugin
This commit is contained in:
commit
231ad13118
|
@ -0,0 +1,24 @@
|
||||||
|
{ stdenv, buildPythonApplication, fetchFromGitHub, pythonPackages }:
|
||||||
|
|
||||||
|
buildPythonApplication rec {
|
||||||
|
name = "beets-copyartifacts";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
repo = "beets-copyartifacts";
|
||||||
|
owner = "sbarakat";
|
||||||
|
rev = "dac4a1605111e24bb5b498aa84cead7c87480834";
|
||||||
|
sha256 = "0p5cskfgqinzh48a58hw56f96g9lar3k3g2p0ip1m9kawzf6axng";
|
||||||
|
};
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
sed -i -e '/install_requires/,/\]/{/beets/d}' setup.py
|
||||||
|
sed -i -e '/namespace_packages/d' setup.py
|
||||||
|
printf 'from pkgutil import extend_path\n__path__ = extend_path(__path__, __name__)\n' >beetsplug/__init__.py
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Beets plugin to move non-music files during the import process";
|
||||||
|
homepage = "https://github.com/sbarakat/beets-copyartifacts";
|
||||||
|
license = stdenv.lib.licenses.mit;
|
||||||
|
};
|
||||||
|
}
|
|
@ -8,6 +8,7 @@
|
||||||
, enableDiscogs ? true
|
, enableDiscogs ? true
|
||||||
, enableEmbyupdate ? true
|
, enableEmbyupdate ? true
|
||||||
, enableFetchart ? true
|
, enableFetchart ? true
|
||||||
|
, enableKeyfinder ? true, keyfinder-cli ? null
|
||||||
, enableLastfm ? true
|
, enableLastfm ? true
|
||||||
, enableMpd ? true
|
, enableMpd ? true
|
||||||
, enableReplaygain ? true, bs1770gain ? null
|
, enableReplaygain ? true, bs1770gain ? null
|
||||||
|
@ -15,7 +16,8 @@
|
||||||
, enableWeb ? true
|
, enableWeb ? true
|
||||||
|
|
||||||
# External plugins
|
# External plugins
|
||||||
, enableAlternatives ? false
|
, enableAlternatives ? false
|
||||||
|
, enableCopyArtifacts ? false
|
||||||
|
|
||||||
, bashInteractive, bashCompletion
|
, bashInteractive, bashCompletion
|
||||||
}:
|
}:
|
||||||
|
@ -25,6 +27,7 @@ assert enableBadfiles -> flac != null && mp3val != null;
|
||||||
assert enableConvert -> ffmpeg != null;
|
assert enableConvert -> ffmpeg != null;
|
||||||
assert enableDiscogs -> pythonPackages.discogs_client != null;
|
assert enableDiscogs -> pythonPackages.discogs_client != null;
|
||||||
assert enableFetchart -> pythonPackages.responses != null;
|
assert enableFetchart -> pythonPackages.responses != null;
|
||||||
|
assert enableKeyfinder -> keyfinder-cli != null;
|
||||||
assert enableLastfm -> pythonPackages.pylast != null;
|
assert enableLastfm -> pythonPackages.pylast != null;
|
||||||
assert enableMpd -> pythonPackages.mpd != null;
|
assert enableMpd -> pythonPackages.mpd != null;
|
||||||
assert enableReplaygain -> bs1770gain != null;
|
assert enableReplaygain -> bs1770gain != null;
|
||||||
|
@ -42,6 +45,7 @@ let
|
||||||
discogs = enableDiscogs;
|
discogs = enableDiscogs;
|
||||||
embyupdate = enableEmbyupdate;
|
embyupdate = enableEmbyupdate;
|
||||||
fetchart = enableFetchart;
|
fetchart = enableFetchart;
|
||||||
|
keyfinder = enableKeyfinder;
|
||||||
lastgenre = enableLastfm;
|
lastgenre = enableLastfm;
|
||||||
lastimport = enableLastfm;
|
lastimport = enableLastfm;
|
||||||
mpdstats = enableMpd;
|
mpdstats = enableMpd;
|
||||||
|
@ -54,7 +58,7 @@ let
|
||||||
pluginsWithoutDeps = [
|
pluginsWithoutDeps = [
|
||||||
"beatport" "bench" "bpd" "bpm" "bucket" "cue" "duplicates" "edit" "embedart"
|
"beatport" "bench" "bpd" "bpm" "bucket" "cue" "duplicates" "edit" "embedart"
|
||||||
"export" "filefilter" "freedesktop" "fromfilename" "ftintitle" "fuzzy" "hook" "ihate"
|
"export" "filefilter" "freedesktop" "fromfilename" "ftintitle" "fuzzy" "hook" "ihate"
|
||||||
"importadded" "importfeeds" "info" "inline" "ipfs" "keyfinder" "lyrics"
|
"importadded" "importfeeds" "info" "inline" "ipfs" "lyrics"
|
||||||
"mbcollection" "mbsubmit" "mbsync" "metasync" "missing" "permissions" "play"
|
"mbcollection" "mbsubmit" "mbsync" "metasync" "missing" "permissions" "play"
|
||||||
"plexupdate" "random" "rewrite" "scrub" "smartplaylist" "spotify" "the"
|
"plexupdate" "random" "rewrite" "scrub" "smartplaylist" "spotify" "the"
|
||||||
"types" "zero"
|
"types" "zero"
|
||||||
|
@ -98,12 +102,16 @@ in buildPythonApplication rec {
|
||||||
pythonPackages.requests2
|
pythonPackages.requests2
|
||||||
++ optional enableConvert ffmpeg
|
++ optional enableConvert ffmpeg
|
||||||
++ optional enableDiscogs pythonPackages.discogs_client
|
++ optional enableDiscogs pythonPackages.discogs_client
|
||||||
|
++ optional enableKeyfinder keyfinder-cli
|
||||||
++ optional enableLastfm pythonPackages.pylast
|
++ optional enableLastfm pythonPackages.pylast
|
||||||
++ optional enableMpd pythonPackages.mpd
|
++ optional enableMpd pythonPackages.mpd
|
||||||
++ optional enableThumbnails pythonPackages.pyxdg
|
++ optional enableThumbnails pythonPackages.pyxdg
|
||||||
++ optional enableWeb pythonPackages.flask
|
++ optional enableWeb pythonPackages.flask
|
||||||
++ optional enableAlternatives (import ./alternatives-plugin.nix {
|
++ optional enableAlternatives (import ./alternatives-plugin.nix {
|
||||||
inherit stdenv buildPythonApplication pythonPackages fetchFromGitHub;
|
inherit stdenv buildPythonApplication pythonPackages fetchFromGitHub;
|
||||||
|
})
|
||||||
|
++ optional enableCopyArtifacts (import ./copyartifacts-plugin.nix {
|
||||||
|
inherit stdenv buildPythonApplication pythonPackages fetchFromGitHub;
|
||||||
});
|
});
|
||||||
|
|
||||||
buildInputs = with pythonPackages; [
|
buildInputs = with pythonPackages; [
|
||||||
|
@ -117,6 +125,7 @@ in buildPythonApplication rec {
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
./replaygain-default-bs1770gain.patch
|
./replaygain-default-bs1770gain.patch
|
||||||
|
./keyfinder-default-bin.patch
|
||||||
];
|
];
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
diff --git a/beetsplug/keyfinder.py b/beetsplug/keyfinder.py
|
||||||
|
index b6131a4..b493792 100644
|
||||||
|
--- a/beetsplug/keyfinder.py
|
||||||
|
+++ b/beetsplug/keyfinder.py
|
||||||
|
@@ -30,7 +30,7 @@ class KeyFinderPlugin(BeetsPlugin):
|
||||||
|
def __init__(self):
|
||||||
|
super(KeyFinderPlugin, self).__init__()
|
||||||
|
self.config.add({
|
||||||
|
- u'bin': u'KeyFinder',
|
||||||
|
+ u'bin': u'keyfinder-cli',
|
||||||
|
u'auto': True,
|
||||||
|
u'overwrite': False,
|
||||||
|
})
|
||||||
|
@@ -59,7 +59,7 @@ class KeyFinderPlugin(BeetsPlugin):
|
||||||
|
continue
|
||||||
|
|
||||||
|
try:
|
||||||
|
- output = util.command_output([bin, b'-f',
|
||||||
|
+ output = util.command_output([bin,
|
||||||
|
util.syspath(item.path)])
|
||||||
|
except (subprocess.CalledProcessError, OSError) as exc:
|
||||||
|
self._log.error(u'execution failed: {0}', exc)
|
||||||
|
diff --git a/test/test_keyfinder.py b/test/test_keyfinder.py
|
||||||
|
index 00952fe..01ff8d4 100644
|
||||||
|
--- a/test/test_keyfinder.py
|
||||||
|
+++ b/test/test_keyfinder.py
|
||||||
|
@@ -46,7 +46,7 @@ class KeyFinderTest(unittest.TestCase, TestHelper):
|
||||||
|
item.load()
|
||||||
|
self.assertEqual(item['initial_key'], 'C#m')
|
||||||
|
self.command_output.assert_called_with(
|
||||||
|
- ['KeyFinder', '-f', util.syspath(item.path)])
|
||||||
|
+ ['keyfinder-cli', util.syspath(item.path)])
|
||||||
|
|
||||||
|
def test_add_key_on_import(self):
|
||||||
|
self.command_output.return_value = 'dbm'
|
Loading…
Reference in New Issue