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.7.tar.gz (6.1 kB view details)

Uploaded Source

Built Distributions

beets_extrafiles-0.0.7-py3.7.egg (10.8 kB view details)

Uploaded Source

beets_extrafiles-0.0.7-py3.6.egg (10.8 kB view details)

Uploaded Source

beets_extrafiles-0.0.7-py3.5.egg (10.9 kB view details)

Uploaded Source

beets_extrafiles-0.0.7-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: beets-extrafiles-0.0.7.tar.gz
  • Upload date:
  • Size: 6.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.3.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.6

File hashes

Hashes for beets-extrafiles-0.0.7.tar.gz
Algorithm Hash digest
SHA256 69dd50d77f0d5ea7a82b553a9c149ab4c5aebd8994ef2e9bd1847f65c9a5c2d7
MD5 6c9952fb8f507e58ff516138b68673cf
BLAKE2b-256 947f07ff3fcce7fc444dd3e992422d9e827958c803738b6e944550c33cea6e9d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: beets_extrafiles-0.0.7-py3.7.egg
  • Upload date:
  • Size: 10.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.3.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.6

File hashes

Hashes for beets_extrafiles-0.0.7-py3.7.egg
Algorithm Hash digest
SHA256 a5af22dd403ccf5fb2d3723287b57cc7b3dc8d91f2c7438c07d8e739da162324
MD5 0a8b9f9677fe1a294e9fc6ba608e2e85
BLAKE2b-256 778188ecde147229ac39dfc81f6cd2c52014067b76d1a2533dadb4cb8695cc57

See more details on using hashes here.

File details

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

File metadata

  • Download URL: beets_extrafiles-0.0.7-py3.6.egg
  • Upload date:
  • Size: 10.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.3.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.6.10

File hashes

Hashes for beets_extrafiles-0.0.7-py3.6.egg
Algorithm Hash digest
SHA256 4c542c91c8da78dcd2143755b39b874dfe06344f2d2455e2e15f1421fa30882f
MD5 eab236824fa9caa578d00764fa3c2c7e
BLAKE2b-256 303bab759c3a0d8b1b3f4ee8ea322b181191501884e3c8338370cceda4709e91

See more details on using hashes here.

File details

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

File metadata

  • Download URL: beets_extrafiles-0.0.7-py3.5.egg
  • Upload date:
  • Size: 10.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.3.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.5.7

File hashes

Hashes for beets_extrafiles-0.0.7-py3.5.egg
Algorithm Hash digest
SHA256 87a8cf3421b0cac9a90778dc1eee831b5c895565f37c18a26a4b22085e14fbb4
MD5 58f6cb085bce5d6fb10c5690367785f6
BLAKE2b-256 86a8bce95f83c60badd301a4fd7fe26a80016e5ac360275366b2ed547679bf30

See more details on using hashes here.

File details

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

File metadata

  • Download URL: beets_extrafiles-0.0.7-py3-none-any.whl
  • Upload date:
  • Size: 7.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.3.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.6

File hashes

Hashes for beets_extrafiles-0.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 23af3fa819407d71258f7d89d9c2a919b4cd50f4207dca33e2369861d0d61385
MD5 e6cb6ea3c99a9e05ede0a718d11d5b2f
BLAKE2b-256 0f67d18280b997de6e1127d32913fa40543797342441e108b39050ab6f5668ed

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