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

Uploaded Source

Built Distributions

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

Uploaded Source

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

Uploaded Source

beets_extrafiles-0.0.6-py3.5.egg (11.0 kB view details)

Uploaded Source

beets_extrafiles-0.0.6-py3.4.egg (11.0 kB view details)

Uploaded Source

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

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for beets-extrafiles-0.0.6.tar.gz
Algorithm Hash digest
SHA256 e7d0959918df15df5a3df79d7ab0ece5a28c3bf8fba9de1a6bfa468b6347dd45
MD5 44e71b7af4f9d785ad5ec792e39817d2
BLAKE2b-256 adc95d22c2a172d6031c684eef906efc1f5cae456834ab9556debd1efb239426

See more details on using hashes here.

File details

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

File metadata

  • Download URL: beets_extrafiles-0.0.6-py3.7.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/41.0.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.1

File hashes

Hashes for beets_extrafiles-0.0.6-py3.7.egg
Algorithm Hash digest
SHA256 7df4d707022c8ee87e64ee8a45b9de66c677c74230faf4242ac2c09dae781921
MD5 3920da130a372653cc8692b57a3544ad
BLAKE2b-256 9fe4b62a66b4e8ceacc4d52fd2ac76f94699256b115d1625a229399194a35574

See more details on using hashes here.

File details

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

File metadata

  • Download URL: beets_extrafiles-0.0.6-py3.6.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/41.0.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.7

File hashes

Hashes for beets_extrafiles-0.0.6-py3.6.egg
Algorithm Hash digest
SHA256 d03657f1aa1407437d637ef82a45adaf39b8484f5d4ced0229fdc437b7b40be3
MD5 12dc85bf74a21e6c7ac005d591f56cb5
BLAKE2b-256 6419857e6b098970423bea9bd507595eb08b398a63be2708ad0bf146ff2e12b7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: beets_extrafiles-0.0.6-py3.5.egg
  • Upload date:
  • Size: 11.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/41.0.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.5.6

File hashes

Hashes for beets_extrafiles-0.0.6-py3.5.egg
Algorithm Hash digest
SHA256 14c0b4d093c8bf964ec2bb9a2fb9390e4f60ee53ceca28820079c37b1bc832a2
MD5 2bb6e2be1603b136667b73743e8a9621
BLAKE2b-256 f0cbf1106ac7d7988812f2b2465784f9036e8d65dbdc2bdb9bff3e95bc3c486d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: beets_extrafiles-0.0.6-py3.4.egg
  • Upload date:
  • Size: 11.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/41.0.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.4.8

File hashes

Hashes for beets_extrafiles-0.0.6-py3.4.egg
Algorithm Hash digest
SHA256 e045852d3304998b53a6716bb97c4545b120acf02b534937fccb97207f27c16b
MD5 0d3733ec84f305fb8c85370573149d6f
BLAKE2b-256 3063aa9daf91bb3e0fc3ca538cec12cd6d8e87fe204f3e484acd9b8a165f44a3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: beets_extrafiles-0.0.6-py3-none-any.whl
  • Upload date:
  • Size: 7.5 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/41.0.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.7

File hashes

Hashes for beets_extrafiles-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 3b10ca4d23240dc76230ca2b30874457a8467ee2ba99f9e598e3997ab7460a70
MD5 623f9da867fca4ad0dc82d883ef9b0fd
BLAKE2b-256 a5411b4e42162aa7fed3d3f5f07460963fdc2b1f87c5b89b3977bf11c67860ca

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