Skip to main content

A plugin for beets that copies additional files and directories during the import process.

Project description

beets-extrafiles Build Status

A plugin for beets that copies additional files and directories during the import process.

Installation

Important: Even though beets supports Python 2 and Windows, this plugin does not - it only supports Python 3 on a Unix-like OS. See the F.A.Q. section for details.

This plugin has no dependencies apart from setuptools and beets itself.

The plugin in release on PyPI and can be installed via:

$ pip3 install --user beets-extrafiles

It is also possible to clone the git repository and install the plugin manually:

$ git clone https://github.com/Holzhaus/beets-extrafiles.git
$ cd beets-extrafiles
$ ./setup.py install --user

Usage

Activate the plugin by adding it to the plugins list in beet's config.yaml:

plugins:
  # [...]
  - extrafiles

Also, you need to add glob patterns that will be matched. Patterns match files relative to the root directory of the album, which is the common directory of all the albums files. This means that if an album has files in albumdir/CD1 and albumdir/CD2, then all patterns will match relative to albumdir.

The snippet below will add a pattern group named all that matches all files that have an extension.

extrafiles:
    patterns:
        all: '*.*'

Pattern names are useful when you want to customize the destination path that the files will be copied or moved to. The following configuration will match all folders named scans, Scans, artwork or Artwork (using the pattern group artworkdir), copy them to the album path and rename them to artwork:

extrafiles:
    patterns:
        artworkdir:
          - '[sS]cans/'
          - '[aA]rtwork/'
    paths:
        artworkdir: $albumpath/artwork

Development

After cloning the git repository, you can use setup.py to set up the necessary symlinks for you:

$ git clone https://github.com/Holzhaus/beets-extrafiles.git
$ cd beets-extrafiles
$ ./setup.py develop --user

When adding changes, please conform to PEP 8. Also, please add docstrings to all modules, functions and methods that you create. Use can check this by running flake8 with the flake8-docstrings plugin.

Using pre-commit will perform these checks automatically when committing changes. You can install the pre-commit hooks by executing this in the git repository's root directory:

$ pre-commit install

You should also test every single commit by running unittests, i.e.:

$ ./setup.py test

If a test fails, please fix it before you create a pull request. If you accidently commit something that still contains errors, please amend, squash or fixup that commit instead of adding a new one.

F.A.Q.

Why not use the copyartifacts plugin?

The copyartifacts plugin by Samit Barakat serves the same purpose.

However, it curently seems to be unmaintained: The last commit has been made over a year ago and also suffers from a bug that makes it crash on every run. I wrote a patch and filed a Pull Request some time ago, but I has not been merged yet.

Also, wanted to go in a different direction by supporting folders and the ability to do finer-grained path customizations. Hence, I wrote beets-extrafiles.

Why does this plugin not support Python 2 and Windows?

I initally wrote this plugin, because I needed it. Since I use neither Python 2 nor Windows, I didn't implement support.

If you really need support, feel free to write a patch and file a Pull Request. As long as it does not make the code considerably harder to read, I'll merge it.

For Windows support, some kind of Continuous Integration (CI) solution would also be necessary to prevent future breakage.

What license is used for this project?

This project is released under the terms of the MIT license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

beets-extrafiles-0.0.5.tar.gz (6.0 kB view details)

Uploaded Source

Built Distributions

beets_extrafiles-0.0.5-py3.7.egg (10.7 kB view details)

Uploaded Source

beets_extrafiles-0.0.5-py3.6.egg (10.6 kB view details)

Uploaded Source

beets_extrafiles-0.0.5-py3.5.egg (10.8 kB view details)

Uploaded Source

beets_extrafiles-0.0.5-py3.4.egg (10.8 kB view details)

Uploaded Source

beets_extrafiles-0.0.5-py3-none-any.whl (7.4 kB view details)

Uploaded Python 3

File details

Details for the file beets-extrafiles-0.0.5.tar.gz.

File metadata

  • Download URL: beets-extrafiles-0.0.5.tar.gz
  • Upload date:
  • Size: 6.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.4.8

File hashes

Hashes for beets-extrafiles-0.0.5.tar.gz
Algorithm Hash digest
SHA256 2149421fbd09d1be3af26ec9b9c8c6918d9f9079c24d415a115033c1c9b492a6
MD5 47562b31aa76138330432c82311d65b1
BLAKE2b-256 62fcfffa5886b6fd1629d81f6f3d2c6b6cc4a17bfac9b4d0b2cee81768c19741

See more details on using hashes here.

File details

Details for the file beets_extrafiles-0.0.5-py3.7.egg.

File metadata

  • Download URL: beets_extrafiles-0.0.5-py3.7.egg
  • Upload date:
  • Size: 10.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.1

File hashes

Hashes for beets_extrafiles-0.0.5-py3.7.egg
Algorithm Hash digest
SHA256 25d9337dcd942fbb20bfce7ba63be4c815c9915f1989a80256971daef5b0a42e
MD5 2f4b3ea1d4b42925867515f75dfbbd5a
BLAKE2b-256 2b21cbdc306593e1aa54f23e6a2994b7625c51d19032576b630a37aa582c3cf3

See more details on using hashes here.

File details

Details for the file beets_extrafiles-0.0.5-py3.6.egg.

File metadata

  • Download URL: beets_extrafiles-0.0.5-py3.6.egg
  • Upload date:
  • Size: 10.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.7

File hashes

Hashes for beets_extrafiles-0.0.5-py3.6.egg
Algorithm Hash digest
SHA256 e44f77411498835ca338835dd4ba81255371a9ee2cdefda28ceb27241ce3c1e9
MD5 2393ad1178c8ee978725525661dc6b2f
BLAKE2b-256 627d8298decb85afe3c42b67ed6c8c081f7dddd6bab6cdbec93eec0817ed7e51

See more details on using hashes here.

File details

Details for the file beets_extrafiles-0.0.5-py3.5.egg.

File metadata

  • Download URL: beets_extrafiles-0.0.5-py3.5.egg
  • Upload date:
  • Size: 10.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.5.6

File hashes

Hashes for beets_extrafiles-0.0.5-py3.5.egg
Algorithm Hash digest
SHA256 1d1764362f9a7eb86ff15799cc47077ca341bbc998cac2191b2aec22946c1ca9
MD5 2b0a5a9eb6fad8aecd503361fda6ed1c
BLAKE2b-256 33c8b2cd4059dd8f99b605169e03ce0b695e99424efff11baa44a1655e8aadaf

See more details on using hashes here.

File details

Details for the file beets_extrafiles-0.0.5-py3.4.egg.

File metadata

  • Download URL: beets_extrafiles-0.0.5-py3.4.egg
  • Upload date:
  • Size: 10.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.4.8

File hashes

Hashes for beets_extrafiles-0.0.5-py3.4.egg
Algorithm Hash digest
SHA256 f1ba77b2951b30f85467d7e29429abf4273811f2decc048b2533a779c293ed06
MD5 1e2dbff56197e8acbced3de58edf65c2
BLAKE2b-256 d6a7091f22407ead23a563aff1356d57bf42591bb4ae36afffb65a1776f1e41f

See more details on using hashes here.

File details

Details for the file beets_extrafiles-0.0.5-py3-none-any.whl.

File metadata

  • Download URL: beets_extrafiles-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 7.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.4.8

File hashes

Hashes for beets_extrafiles-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 7730b63ba81275d5171419b9fb0d927ba99a4c9e2305a2e2a1fa3008441ff2b8
MD5 42230a0ab64569d3448f3109b1ae6556
BLAKE2b-256 75d879e05a7dbc53adb322a3ae3e3b547765f18037aaa7f240355a57356e078f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page