Commit graph

91 commits

Author SHA1 Message Date
Thomas Scholtes
c0b248c4a2 convert: Catch errors when writing tags
Fixes #878.
2014-08-25 14:52:40 +02:00
Adrian Sampson
e7f1ff0e3f Clean up convert --pretend (#891)
There were a number of problems with the changes to the util melange:
- It used print rather than logging, and its string formatting was probably
  not Unicode-ready.
- The shell-command-like print lines were not quite compatible, which makes
  their general usefulness questionable.
- Used an unsafe/leaky global variable for mkdirall.
- Used deprecated sets.Set.
Seemed better just to add this to the plugin where we need it so it's easier
to see where this goes.

It also seems unnecessary to me to print `mkdir -p` commands. They just
clutter up the output for me when I really just want to see the transcoding
commands.
2014-08-10 16:46:23 -07:00
Dietrich Daroch
ff9b18dd44 Merge branch 'master' of https://github.com/sampsyo/beets
Conflicts:
	beetsplug/convert.py

PS: I O U the logging changes, it's quite late :c
2014-08-06 01:55:34 -04:00
Thomas Scholtes
29e4fde571 convert: Simplify format configuration.
We don't have to specify the extension. By default it is the same as
the format name.
2014-08-05 12:06:35 +02:00
Thomas Scholtes
b27409684e convert: Add --format option
This option allows the user to specify the format on the command line
instead of editing the configuration.

The commit also includes some refactoring. In particular adding
arguments to functions to avoid dependence on global state.

Doc and Changelog in next commit
2014-08-05 10:45:32 +02:00
Dietrich Daroch
ea4832e212 [PEP8] I didn't had a pep8 checker on vim :c 2014-07-30 14:35:19 -04:00
Dietrich Daroch
f554e2e4a0 [Improvement] --pretend option for the convert plugin
Partially resolves #877 showing:
  - Directory creation
  - Copies
  - Deletes
  - Moves
  - Encodings

Information about tagging and plugins on _after_convert_ is not
currently shown. That requires changing the plugins to support the
pretend option, so a lot of work may be needed and it doesn't seem to be
helpful enough for me.
2014-07-28 20:13:15 -04:00
Thomas Scholtes
2813cd26c1 Refactor embedart to work at item level
Embedding images now triggers the `*_write` plugin events. This
allows *beets-check* to update the checksum. See the [beets-check
issue][1].

[1]: https://github.com/geigerzaehler/beets-check/issues/7
2014-06-02 17:10:48 +02:00
Thomas Scholtes
fea5df2339 covert: embed coverart into converted files 2014-04-26 19:49:29 +02:00
Thomas Scholtes
c20c62409d convert: log error instead of crashing 2014-04-26 19:47:50 +02:00
Bruno Cauet
7b0ce4f28e Disable the video stream in all ffmpeg conversions
Propagate the previous commit's change to all ffmpeg command lines.
2014-04-21 19:59:18 +02:00
Bruno Cauet
db2a2d1e25 Disable video feed in ffmpeg's flac conversion
Video feeds may be found in flac files, and the current ffmpeg
conversion command does not ignore them, causing beets to fail
to convert the file.

Add `-vn` to the command line to fix the problem.

Fix issue #712.
2014-04-21 15:37:10 +02:00
Thomas Scholtes
ea04344560 Test and fix unicode issues in logs. Fixes #699
The helper functions for creating test fixtures now include unicode characters.
2014-04-17 12:12:49 +02:00
Adrian Sampson
e5a9db1cac fix up some indentation warnings in plugins 2014-04-13 17:55:49 -07:00
Thomas Scholtes
b7a26811ef Add "shell" keyword for commands and use it in convert
Convert used to split the user command at whitespaces and pass it to `Popen`.
This approach is to naive, it also was not consistent with output from the
logs. Instead we pass the whole command to a subshell.
2014-04-09 20:41:30 +02:00
Thomas Scholtes
6402b664c6 More refactoring for convert 2014-04-07 20:17:55 +02:00
Thomas Scholtes
651bdf0acc Refactor convert plugin
* `encode()` raises an error when the command returns with non-zero exit
  status. We catch that in the higher-level conversion functions and skip to
  the next item without writing tags.

* Simplified the handling of the `keep_new` flag.
2014-04-07 18:24:59 +02:00
Thomas Scholtes
9d87a7fc02 Make convert --keep-new work again
Iincludes some more tests for the convert plugin. The test use the extended
TestHelper class and the new pathlib (see #621).
2014-04-07 18:07:43 +02:00
Thomas Scholtes
1b434a7dae Import original file when conversion fails.
Fixes previous test
2014-04-05 21:09:12 +02:00
Thomas Scholtes
766c8b190b Add path argument to item.write()
Symmetrical to item.read(), this allows us to update the tags of files that are
not in the library. The motivation was this issue [1].

The commit also includes a nasty hack in the plugin code that prevents breaking
other plugins.

[1]: https://github.com/geigerzaehler/beets-check/issues/1
2014-04-04 14:56:10 +02:00
Adrian Sampson
d407db725f convert: catch OSErrors and display error message
This also adds close_fds (only available on Unixes) to the common subprocess
invocation utility.
2014-04-03 19:47:21 -07:00
Adrian Sampson
318649c16c convert: fix transcode on windows (#519) 2014-02-02 09:54:33 -08:00
Jakob Schnitzer
887e02c2ae convert: fix decision on which items to transcode 2013-10-27 17:10:55 +00:00
Adrian Sampson
2481dc244b convert: iterate over the right items (fix #439) 2013-10-26 11:08:52 -07:00
Adrian Sampson
54af040bc4 convert: extension is a bytestring (fix #390) 2013-10-06 12:13:14 -07:00
Adrian Sampson
a6798f9ba3 #380: Template.safe_substitute
This way, you almost never need to use the $$ escape sequence.
2013-10-06 12:01:42 -07:00
Adrian Sampson
dfea8ea05e convert: fix outdated reference, col wrap 2013-10-06 11:59:03 -07:00
Adrian Sampson
5e82b670f9 #380: shortcut/compatibility options
These config options make it easier to customize the command (no need to make
a single-element formats dict). And the opt config option provides backwards
compatibility with the previous style.
2013-10-06 11:57:32 -07:00
Adrian Sampson
b7e2ba7795 convert: log transcoding command 2013-10-06 11:28:29 -07:00
Adrian Sampson
d828d7aae4 #380: correctly skip no-op transcodes
The format key is now the (lower-cased) format name string used by beets,
which means we can precisely detect which transcodes would be unnecessary. To
facilitate this, I added an ALIASES dict which allows more convenient names to
work for this (e.g., "wma" is easier to remember than "windows media").
2013-10-06 11:21:56 -07:00
Adrian Sampson
0d303ffde7 multi-format convert (#362): simpler validation
This removes the explicit config validation check and collapses it into the
config read step (which is the intended convenience of Confit's API).
2013-10-06 10:56:42 -07:00
Adrian Sampson
c5032f925e move Destination method to Item class 2013-09-17 09:09:10 -07:00
Rowan Lewis
80d060db07 Added 'quiet' operation mode, prevents start/finish announcements for each file. 2013-09-14 10:18:36 +10:00
Rowan Lewis
52d86f0e6a Added more format presets, updated documentation. 2013-09-14 09:35:25 +10:00
Rowan Lewis
d2327d2dcf Fixed validation, basically replace unfriendly errors with friendly errors. 2013-09-14 07:27:15 +10:00
Rowan Lewis
d3dae9f089 Reject lossy formats under a set bitrate. 2013-09-13 08:13:30 +10:00
Rowan Lewis
53aba3ce3f It's called Vorbis, not OGG. 2013-09-13 07:57:04 +10:00
Rowan Lewis
bfbf5a9215 Changed the configuration to allow for easier format selection. 2013-09-13 07:54:36 +10:00
Rowan Lewis
697e70f14b Problem with unicode filenames sorted. 2013-09-12 22:21:50 +10:00
Rowan Lewis
697cf3fd65 Removed reference to my testing plugin, oops. 2013-09-12 20:22:18 +10:00
Rowan Lewis
21c9855c4f Allow the convert plugin to convert to any format, not just mp3. 2013-09-12 20:09:53 +10:00
Adrian Sampson
5e09c5e473 convert: fix iteration over results 2013-08-22 17:33:56 -07:00
Adrian Sampson
c7fe017752 remove Library.{move,store} methods
These methods are now provided by LibModel, which makes dealing with items and
albums symmetric.
2013-08-21 15:34:45 -07:00
Adrian Sampson
26682f9168 docs/changelog for convert paths config (#285) 2013-05-22 15:00:53 -07:00
Lucas Duailibe
1e0290354c fix some debug code 2013-05-22 14:11:55 -03:00
Lucas Duailibe
76e310d811 different paths for convert
the paths configuration for converted files can be different from the importer
closes #232
2013-05-22 11:03:00 -03:00
Adrian Sampson
dd8d4c16cc spell check 2013-04-29 10:23:21 -07:00
Adrian Sampson
01a449ffa6 convert: auto (#212) now transcodes to /tmp
This avoids naming conflicts in the source directory. In particular, when
encoding MP3 -> MP3, the previous scheme would overwrite the original file
(and hang ffmpeg waiting for input). This should also work in
situations where the source directory is read-only.
2013-03-10 13:22:05 -07:00
Adrian Sampson
8736a0bb4c convert auto: changelog and de-cloning (#212) 2013-03-10 13:12:56 -07:00
Adrian Sampson
47a549a31c Merge pull request #212 from duailibe/auto_convert
Transcode files during import
2013-03-10 12:57:36 -07:00