Merge branch 'editor' of https://github.com/jmwatte/beets into editor

This commit is contained in:
jmwatte 2015-11-03 13:59:38 +01:00
commit 00b21dfa51
3 changed files with 58 additions and 49 deletions

View file

@ -1,5 +1,5 @@
# This file is part of beets.
# Copyright 2015
# Copyright 2015, Jean-Marie Winters
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the

View file

@ -3,6 +3,10 @@ Changelog
1.3.16 (in development)
-----------------------
* A new plugin yamleditor helps you manually edit fields from items.
You search for items in the normal beets way.Then yamleditor opens a texteditor
with the items and the fields of the items you want to edit. Afterwards you can
review your changes save them back into the items.
Fixes:

View file

@ -1,79 +1,84 @@
Yamleditor Plugin
================
The ``yamleditor`` plugin lets you open the tags, fields from a group of items
, edit them in a text-editor and save them back.
=================
The ``yamleditor`` plugin lets you open the tags, fields from a group of items, edit them in a text-editor and save them back.
You simply put in a query like you normally do in beets.
beet yamleditor beatles
beet yamleditor beatles -a
beet yamleditor beatles -f'$title-$lyrics'
`beet yamleditor beatles`
`beet yamleditor beatles -a`
`beet yamleditor beatles -f'$title-$lyrics'`
You get a list of hits and then you can edit them.
The ``yamleditor`` opens your standard text-editor with a list of your hits
and for each hit a bunch of fields.
You get a list of hits and then you can edit them. The ``yamleditor`` opens your standard text-editor with a list of your hits and for each hit a bunch of fields.
Without anything specified in your ``config.yaml`` for ``yamleditor:``
you will get
Without anything specified in your ``config.yaml`` for ``yamleditor:`` you will get
track-$title-$artist-$album for items
and
for items
$album-$albumartist for albums
`track-$title-$artist-$album`
and for albums
you can get more fields from the cmdline by adding
`$album-$albumartist`
-f '$genre $added'
you can get fields from the cmdline by adding
`-f '$genre $added'`
or
-e '$year $comments'
`-e '$year $comments'`
If you use ``-f '$field $field'`` you get *only* what you specified.
If you use ``-f '$field ...'`` you get *only* what you specified.
If you use ``-e '$field $field'`` you get what you specified *extra*.
If you use ``-e '$field ...'`` you get what you specified *extra*.
-f or -e '$_all' gets you all the fields
If you use ``-f or -e '$_all'`` you get all the fields.
After you edit the values in your text-editor - *and you may only edit the values,
no deleting fields or adding fields!* - you save the file, answer with y on ``Done`` and
you get a summary of your changes.
Check em, answer y or n and the changes are written to your library.
After you edit the values in your text-editor - *and you may only edit the values, no deleting fields or adding fields!* - you save the file, answer with y on ``Done`` and you get a summary of your changes. Check em, answer y or n and the changes are written to your library.
Configuration
------------
-------------
Make a ``yamleditor:`` section in your config.yaml ``(beet config -e)``
yamleditor:
editor: # specify the editor you like
editor_args: # additional arguments for editor
diff_method: ndiff # 4 different ways to view your changes
diff_method: unified # Pick one. See ex https://pymotw.com/2/difflib/
diff_method: html # for details or just try it :)
diff_method: vimdiff # this opens up vim diff
html_viewer: # viewer to see the diff_method html
html_args : # additional arguments for the viewer
albumfields: genre album # a list of albumfields to edit
itemfields: track artist # a list of itemfields to edit
not_fields: id path # list of not-wanted fields
separator: "|>" # something that separates printed fields
* You can pick 1 of the diff-methods (or none and you get the beet way).
If you pick ``html`` you can specify a viewer for it. If not the systems-default
will be picked.
* editor: nano
* editor_args:
* diff_method: ndiff
* html_viewer:firefox
* html_args :
* albumfields: genre album
* itemfields: track artist
* not_fields: id path
* separator: "<>"
* editor: you can pick your own texteditor. Defaults to systems default.
* editor_args: in case you need extra arguments for your text-editor.
* diff_method: 4 choices with no diff_method you get the beets way of showing differences.
* ndiff: you see original and the changed yaml files with the changes
* unified: you see the changes with a bit of context. Simple and compact.
* html: a html file that you can open in a browser. Looks nice.
* vimdiff: gives you VIM with the diffs
* html_viewer:
If you pick ``html`` you can specify a viewer for it. If not the systems-default
will be picked.
* html_args: in case your html_viewer needs arguments
* The ``albumfields`` and ``itemfields`` let you put in a list of fields you want to change.
``albumfields`` gets picked if you put -a in your search query else ``itemfields``. For a list of fields
do the ``beet fields``.
``albumfields`` gets picked if you put -a in your search query else ``itemfields``. For a list of fields
do the ``beet fields``.
* The ``not_fields`` always contain ``id`` and standard also the ``path``.
Don't want to mess with them.
Don't want to mess with them.
* The default ``separator`` prints like:
-02-The Night Before-The Beatles-Help!
``-02-The Night Before-The Beatles-Help!``
but with ex "|>" it will look like:
but with ex "<>" it will look like:
|>02|>The Night Before|>The Beatles|>Help!
``<>02<>The Night Before<>The Beatles<>Help!``