diff --git a/beetsplug/yamleditor.py b/beetsplug/yamleditor.py index 963be9829..1124edd0e 100644 --- a/beetsplug/yamleditor.py +++ b/beetsplug/yamleditor.py @@ -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 diff --git a/docs/changelog.rst b/docs/changelog.rst index 070dfeaf7..8182bdd69 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -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: diff --git a/docs/plugins/yamleditor.rst b/docs/plugins/yamleditor.rst index a81a58827..d5f3641ba 100644 --- a/docs/plugins/yamleditor.rst +++ b/docs/plugins/yamleditor.rst @@ -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!``