Commit graph

2045 commits

Author SHA1 Message Date
Amish Bhadeshia
9a38b07ed4 Housekeeping and styling changes 2015-03-28 11:20:28 +00:00
Pedro Silva
82ce6f054d make helper functions methods in plugin
This helps use the _log attribute that is now available
2015-03-28 10:08:07 +01:00
Adrian Sampson
ef5052e111 Merge pull request #1383 from autochthe/convert/tmpdir
convert: Add 'tmpdir' option
2015-03-27 23:05:18 -04:00
Adrian Sampson
07516b2bca Redact some passwords in plugins 2015-03-27 22:42:28 -04:00
Adrian Sampson
b477f4a53f Merge pull request #1376 from tomjaspers/config-redacted-fields
Config: new option -r redacts sensitive fields

Conflicts:
	beets/util/confit.py
2015-03-27 22:11:24 -04:00
Amish Bhadeshia
6365a9b538 Added indice into curly brackets, for py26 compatabiity 2015-03-27 20:54:42 +00:00
Amish Bhadeshia
232ff05766 Added tests and simplified implementation method 2015-03-27 17:59:35 +00:00
Bruno Cauet
e707342bf9 Add call to g_type_init() for glib < 2.36 2015-03-27 16:33:51 +01:00
Bruno Cauet
2e5803cfad Thumbnails: unicode → bytes filename 2015-03-27 14:00:22 +01:00
Bruno Cauet
f41ec9bbf6 ctpyes: set argtypes & restype 2015-03-27 14:00:13 +01:00
Pedro Silva
9999460cb4 hash attribute values as tuples instead of stringifying on SOH char 2015-03-27 11:48:51 +01:00
Pedro Silva
fb0e03dd6b remove redundant plugin name from logging 2015-03-27 11:47:40 +01:00
Pedro Silva
66e06baca7 fix #1000: provide --strict option (don't match on null attributes) 2015-03-27 11:34:45 +01:00
Mara Kim
ddca1b2e13 Add 'tmpdir' option to convert plugin
Closes sampsyo/beets#1382

Add tmpdir setting

document tmpdir setting
2015-03-27 02:11:33 -05:00
Bruno Cauet
07ee934352 Thumbnails: improve log readability 2015-03-25 20:14:23 +01:00
Bruno Cauet
4b349771ff thumbnails plugin setup: log tools chosen 2015-03-25 20:14:19 +01:00
Bruno Cauet
11a4777219 URI: use gio/gio.h's g_file_get_uri if available 2015-03-25 20:14:16 +01:00
Bruno Cauet
265fa962eb Merge branch 'master' into thumbnails 2015-03-25 18:17:12 +01:00
Tom Jaspers
944d38064d Config: implement redacted fields more idiomatic
- `add_redacted_fields(self, *field_names)` to use argument unpacking
- foo =| bar instead of foo = foo | bar
2015-03-25 14:55:29 +01:00
Bruno Cauet
8f5bae26fd Smartplaylists: improve tests & code modularization 2015-03-25 10:44:33 +01:00
Tom Jaspers
f4ed3e16b1 Config: Add redacted fields from included plugins 2015-03-24 17:01:33 +01:00
Amish Bhadeshia
d2a95158f2 Updated ftintitle plugin to follow a format 2015-03-21 15:36:39 +00:00
Adrian Sampson
a70f8bb91f Fix #1365: lastimport config 2015-03-20 19:52:36 -04:00
Bruno Cauet
bcd57bd2b5 Test queries building sort management in smartplaylist
Slighly modify Sort parsing: avoid building MultiplSort() instances
comptised of a single sort, but return that sort instead, since it wraps
things with any gain.
2015-03-18 18:53:41 +01:00
Bruno Cauet
45c0c9b3cb Deal with sorting
Try to follow any sort found & manage absence of sort. When there are
multiple sort directives given, concatenate them.

Tests not extended yet.
2015-03-18 18:09:42 +01:00
Bruno Cauet
65b52b9c48 python 2.6 compat: don't use set literals
In smartplaylist and test_smartplaylist.
2015-03-16 19:42:54 +01:00
Bruno Cauet
b79c025142 CLI tests for smartplaylist plugin
No import CLI test.
2015-03-16 18:36:08 +01:00
Bruno Cauet
40e793cdb1 Fix flake8 errors 2015-03-16 16:25:43 +01:00
Bruno Cauet
774decda7d Smartplayist: parse_query_parts() → ...ry_string() 2015-03-16 16:21:49 +01:00
Bruno Cauet
2d9f665848 Smartplaylist: offer "splupdate <playlist names>"
splupdate command of the SmartPlaylistPlugin looks in "args" for matches
of playlist names.
2015-03-16 16:03:14 +01:00
Bruno Cauet
f06c33cb71 Smartplaylist: update only if item changed 2015-03-16 15:16:40 +01:00
Bruno Cauet
4bfa439ee1 database_change: send model that changed 2015-03-16 14:32:37 +01:00
Adrian Sampson
f6df14a798 Isolate bugs in pylast
Should fix crashes like this:
http://hastebin.com/nizusukuli.log
2015-03-14 15:13:07 -07:00
Adrian Sampson
736eab412c Bytes arguments to bs1770gain command 2015-03-14 14:43:00 -07:00
Tom Jaspers
96a565a614 info: error msg instead of traceback on IOError
IOErrors were previously not caught, displaying full traceback to the user
2015-03-13 17:55:09 +01:00
David Logie
ee6fba1e82 Fix call to add_format_option() missing plugin. 2015-03-08 12:59:00 +00:00
Bruno
f6c6c35614 Merge pull request #1346 from brunal/subcommand-auto-format-path
Generalize --path, --format and --album options
2015-03-07 14:05:05 +01:00
Bruno Cauet
1722c26ffe Fix DiscogsPlugin.setup() arguments
Session is optional. This fixes re-authorization.

Improve #1347.
2015-03-07 14:00:47 +01:00
Adrian Sampson
bcc591bf97 Generalize exception handler for #1347 2015-03-06 12:01:09 -08:00
Bruno Cauet
d1f6bbaf01 Discogs plugin: catch client lib ValueErrors
When search fails, log the query which caused it and return an empty
result.

Kind of fixes #1347.
2015-03-06 11:16:20 +01:00
Bruno Cauet
58b39f1000 Merge branch 'master' into subcommand-auto-format-path 2015-03-05 17:53:31 +01:00
Bruno Cauet
7798a521b5 Fix convert plugin 2015-03-05 17:40:32 +01:00
Bruno Cauet
ea1dc1eb19 Plugins conversion cont. 2015-03-05 17:40:32 +01:00
Bruno Cauet
650305c9a1 All suitable plugins use CommonOptionsParser features 2015-03-05 17:03:02 +01:00
Bruno Cauet
6234fee67d Option parser: add common options with a method
Add a new OptionParser subclass: CommonOptionsOptionParser, which
provides facilities for adding --album, --path and --format options. The
last one is quite versatile.

Update base commands (from beets.ui.commands) to use those.
2015-03-05 15:01:20 +01:00
Bruno Cauet
9750351a1b beets.util.command_output() & related receives bytes
- May fail with unicode, esp. will non-ascii system path entry.
- Only send it bytes.
- Also applies to subprocess.Popen() & co.
2015-03-04 15:15:46 +01:00
Adrian Sampson
8113c7ba85 Roll back whitespace changes from #1343 2015-03-03 10:41:30 -08:00
jmwatte
5d7d402adb correct typing error 2015-03-03 13:11:25 +01:00
jean-marie winters
a3e32fd410 added fatalreplaygainerror 2015-03-03 11:23:45 +01:00
jean-marie winters
80c49ab360 removed line 288 2015-03-03 11:04:03 +01:00
jean-marie winters
0d49c830d8 just an updateMerge remote-tracking branch 'upstream/master' 2015-03-03 10:49:35 +01:00
jean-marie winters
5bc8ef7009 fix some formating 2015-03-02 22:11:33 +01:00
Adrian Sampson
8bd0633496 replaygain: Fix super call in AudioTools
Fix #1342.
2015-03-02 11:30:14 -08:00
jean-marie winters
1416846283 Merge branch 'bs1770gainsupport'
Conflicts:
	beetsplug/replaygain.py
2015-03-02 16:34:46 +01:00
jean-marie winters
72c5db8876 add doc, clean-up code 2015-03-02 15:38:33 +01:00
jean-marie winters
1385ce11ca Added support for bs1770gain, a loudness-scanner 2015-02-28 15:35:48 +01:00
Bruno Cauet
65a88e2bf4 Fix StrubPlugin.write_item() expected arguments
Fix #1338.
2015-02-24 19:30:51 +01:00
mried
c91e8cb782 Sometimes the extract art test failed because the file type of the extracted image might be PNG or JPG. Belongs to #1328. 2015-02-19 19:43:07 +01:00
Adrian Sampson
ccd8a7e1d4 Merge pull request #1328 from mried/extractart-unicode
Fix a crash when extracting album art
2015-02-18 10:33:33 -08:00
mried
53cefa328e Changed the path format from unicode to bytes. 2015-02-18 19:06:58 +01:00
Bruno Cauet
457afdc55d Auto re-auth for discogs plugin upon error 401
This goes in the direction of #1299 and #1305.
2015-02-18 15:11:52 +01:00
Adrian Sampson
ca0e9a8c03 Merge pull request #1329 from brunal/play-interactive
play command is now interactive

Conflicts:
	docs/changelog.rst
2015-02-17 17:22:03 -05:00
Adrian Sampson
171ded17b6 Merge pull request #1320 from brunal/multiple-logging-levels
Multiple logging levels
2015-02-17 17:10:31 -05:00
Adrian Sampson
31500a741e Merge pull request #1318 from jaquer/no-apply-replaygain
Stop applying mp3gain directly to files. Fixes #1316
2015-02-17 17:03:57 -05:00
Marvin Steadfast
b9174d176f The permissions plugin now uses startswith for finding ancestors in the library path. 2015-02-17 11:45:21 +01:00
Marvin Steadfast
dd0de2f04b Made the permissions plugin simpler. Got rid of some non-needed code and use the ancestors function instead of writing something new. 2015-02-17 11:41:15 +01:00
Marvin Steadfast
8b08ec568c permissions plugin now uses a set instead of a OrderedDict to find duplicates in a list 2015-02-17 11:41:15 +01:00
Marvin Steadfast
21aedeb51a Updated permissions plugin to change directory permissions too. 2015-02-17 11:41:15 +01:00
Tom Jaspers
12ecb2ce35 Fix formatting to new PEP8 version (1.6.2)
PEP8 1.6.2 (2015-02-15):
- added check for breaking around a binary operator

This caused Travis to fail on "W503 line break before binary operator"
2015-02-16 18:21:56 +01:00
Bruno Cauet
39a6145d2d Plugin play uses default item sort in album mode
Offer library.get_default_{item,album}_sort for that purpose.
2015-02-16 12:26:23 +01:00
Bruno Cauet
c47221555f Add beets.util.interactive_open() find cmd + execute
interactive_open() takes a target and an optional command, if it does not
receive a command then it uses open_anything().

It parses command and lexes it with shlex.split(), revieling the client
from that task.

"config -e" command uses it, and gives a better error message in case of
problem. "play" plugin uses it as well, as side-effect being that the
command is now interactive, as requested in issue #1321.

Fix issue #1321.
2015-02-16 12:26:17 +01:00
Bruno Cauet
5d9128aff3 util.interactive_open() return open/xdg-open/start
Depending on the platform return the correct automatic execution
command.
2015-02-16 11:35:13 +01:00
Bruno Cauet
1d8160f9ff Play plugin: use OO, don't pass log around 2015-02-16 10:50:41 +01:00
Malte Ried
eafdd9e379 Extraction of cover art of albums with non ascii characters lead to a crash. 2015-02-15 19:39:39 +01:00
Bruno Cauet
13e47472ac Play plugin: byte newlines in files written
Avoid unicode errors when writing '\n' around file paths.
2015-02-15 15:49:46 +01:00
Bruno Cauet
d267741ff3 Delete 'format' variables that shadow the built-in
Also cleanup the 'the' plugin a bit: delete unused variables.

Relates to #1300.
2015-02-11 16:26:16 +01:00
Bruno Cauet
5a1f499c64 Discogs plugin: fix event listener params
Also delete related deprecated comment.
2015-02-11 09:11:20 +01:00
Bruno Cauet
327b62b610 Improve logging management for plugins: fixes
Delete the remaining usages of BeetsPlugin.listen().

Since BeetsPlugin.listeners are wrapped by a loglevel-setting function,
we cannot easily check their unicity anymore.
BeetsPlugin._raw_listeners set holds the raw listeners.

Legacy plugins that did not handle enough arguments in their listenings
functions may break: dedicated code is now deleted for it would not work
with the decorated listeners.

Tests got fixed. Some modifications were done empirically: if it passes
then it's okay.
2015-02-10 16:55:06 +01:00
Arturo R
60b1819db0 Stop applying mp3gain directly to files. Fixes #1316
Update docs to remove non-existent `apply` option.
2015-02-09 12:51:27 -08:00
Bruno Cauet
c6455c269f Merge branch 'master' into thumbnails
Conflicts:
	docs/changelog.rst
2015-02-09 16:08:29 +01:00
Tom Jaspers
6572e1bf5a Fetchart: add empty album check to iTunes art
Was causing some tests to fail in test_art.py:CombinedTest
2015-02-09 14:59:56 +01:00
Adrian Sampson
66b7e4cd39 Merge branch 'master' of github.com:sampsyo/beets 2015-02-07 12:52:20 -08:00
Adrian Sampson
e7f8a627e9 Style fixes for pep8 1.6 2015-02-07 12:51:54 -08:00
David Logie
9b9c033df6 importfeeds: Fix Unicode error when writing files. 2015-02-07 15:13:01 +00:00
Adrian Sampson
0247785440 discogs: Catch JSON decode errors
Fix #1305 *again*.
2015-02-03 23:42:47 -08:00
Adrian Sampson
cc01d87209 discogs: Catch *another* exception (fix #1305)
Everything but requests is a travesty.
2015-02-03 23:04:14 -08:00
Adrian Sampson
a7878b0eba A couple of explanatory comments for #1292 2015-02-03 09:50:36 -08:00
Adrian Sampson
82e89b8960 Merge pull request #1292 from mried/import-autosingleton
Allow plugins to change the created import tasks
2015-02-03 09:49:13 -08:00
Tom Jaspers
50dbd18493 Duplicates: fix error caused by formatting
Function arguement `format` was shadowing the built-in format function

Fix #1300
2015-02-03 13:31:54 +01:00
Adrian Sampson
77833f6c05 Oops 😳 #1299 2015-02-02 22:34:22 -08:00
Adrian Sampson
8151a40f1f discogs: Catch socket errors (#1299)
See also:

https://github.com/discogs/discogs_client/issues/44
2015-02-02 22:27:14 -08:00
Adrian Sampson
313c3807aa scrub: Use syspath in beet scrub (#1297) 2015-02-02 10:42:31 -08:00
Adrian Sampson
465719a208 scrub: Catch IOErrors in command (fix #1297) 2015-02-02 10:13:48 -08:00
geigerzaehler
46ba99ce79 Merge pull request #1295 from sampsyo/more-info
Info plugin can filter properties in output
2015-02-01 21:19:24 +00:00
Thomas Scholtes
482008bf1d Info plugin can filter properties in output
Resolves #1287
2015-02-01 21:51:26 +01:00
Malte Ried
e681449785 Added documentation
FileFilterPlugin uses the new return value feature
Some tweaks to get the code more readable
2015-02-01 17:01:06 +01:00
Thomas Scholtes
51ab099145 Extend item.write() to embed images without changing item
Fixes #1241 and geigerzaehler/beets-check#14

Before, `embed_item` would add the images to the item and then call
`item.write()` to write the item data, including the image, to the
file. This would trigger `item.store()` in the `after_write` hook of
the check plugin. This would in turn try to persist the temporary
`images` attribute of the item, resulting in an SQL error.
2015-02-01 15:35:24 +01:00
Adrian Sampson
336bb9255c chroma: Fix refactored beet submit
Fix #1293.
2015-01-31 13:04:11 -08:00
Adrian Sampson
14ce6a557e Merge pull request #1183 from marcaddeo/refactor-ftintitle
Refactor ftintitle

Conflicts:
	beetsplug/ftintitle.py
2015-01-31 12:51:15 -08:00
Bruno Cauet
a72ae5991f Add send_art event for embedart and thumbnails
Album.set_art() sends a 'art_sent' event, with the album as a
parameter. embedart and thumbnails listen to that event, instead of
listening to 'album imported'. Consequences:
- 'embedart' and 'thumbnails' don't have to be after 'fetchart' on the
  plugins config line.
- embedart and thumbnails work event when a "beets fetchart" command is
  issued.
- if another plugin ever set art then embedart and thumbnails will "just
  work" with it.
2015-01-31 21:06:01 +01:00
Tom Jaspers
927a53d59b Merge pull request #1281 from tomjaspers/configurable-colors
Colors are now user configurable.

Conflicts:
	beets/ui/__init__.py
	beets/ui/commands.py
2015-01-30 13:48:19 +01:00
Bruno Cauet
d299f40a72 Fix PNG metadata type: string only
instead of int
2015-01-29 16:00:05 +01:00
Tom Jaspers
f483012183 Colorize is now to be called with the abstract color_name instead of the color.
E.g., `colorize('text_success', 'hello world')`

To ensure compatibility with 3rd party plugins, a valid color ('red') can still be passed,
but it will be logged.
2015-01-29 14:33:57 +01:00
Bruno Cauet
9bdeb01689 Improve thumbnails logging
No info message printed twice per cover art (once for the normal
thumbnail and once for the big one)
2015-01-29 13:11:14 +01:00
Bruno Cauet
a78cc65826 Merge freedesktop plugin into thumbnails
Add test for that new code, update docs, update the changelog.
2015-01-29 13:08:02 +01:00
Bruno Cauet
bea5ad3f97 thumbnails: fix --force option management 2015-01-29 12:19:19 +01:00
Bruno Cauet
946aa8e4b3 Fix detection of thumbails to generate 2015-01-29 12:19:19 +01:00
Bruno Cauet
a39ab5163f thumbnails: add "auto" config option
default: True
2015-01-29 11:24:15 +01:00
Bruno Cauet
e8370044c9 thumbnails: add --force (-f) to force regeneration
It compares thumb mtime vs cover mtime when it should compare
Thumb::mtime thumb metadata vs cover mtime.
2015-01-29 11:24:15 +01:00
Bruno Cauet
540cae0de4 thumbnails: fix detection of local resizing capabilities 2015-01-29 11:24:14 +01:00
Bruno Cauet
180a3ece3b Improve thumbnails docstrings 2015-01-29 11:24:02 +01:00
Bruno Cauet
143e749426 thumbnails plugin writes standard metadata to the thumbnail
Write Thumb::URI and Thumb::MTime as requred by the spec:
http://standards.freedesktop.org/thumbnail-spec/latest/x142.html
2015-01-29 11:23:00 +01:00
Malte Ried
67ecf32671 Fixed typos. 2015-01-28 15:46:16 +01:00
Malte Ried
e2a7f7c153 Merge branch 'master' into extractart-for-albums 2015-01-28 15:44:36 +01:00
Bruno Cauet
17d6d6529e thumbails: improve logging, update dependencies 2015-01-28 11:12:55 +01:00
Adrian Sampson
ac3ea16656 Fix for unicode_literals in scrub
Here's an example where unicode_literals may not be a great idea: these should
probably be "native" strings, i.e., bytes on 2.x and unicode on 3.x.
2015-01-27 13:48:13 -08:00
Malte Ried
2c75d0567f Made the new functionality the default behaviour. 2015-01-27 19:59:49 +01:00
Malte Ried
07cea16492 Changed the interface of extractart to make it easier to understand what it does. 2015-01-27 19:41:25 +01:00
Malte Ried
2631d88b39 Merge branch 'master' into extractart-for-albums
Conflicts:
	docs/changelog.rst
2015-01-27 19:18:51 +01:00
Bruno Cauet
5453cf96c8 thumbnails plugin handles 128² and 256² thumbnails
If the source is good enough both will be produced, otherwise the former
only will be created.

This is warranted by the spec: http://standards.freedesktop.org/thumbnail-spec/latest/x122.html
2015-01-27 17:16:26 +01:00
Bruno Cauet
55fd2d2886 thumbnails: create thumbnail dirs if needed 2015-01-27 17:16:25 +01:00
Bruno Cauet
5b8a846d1f Add a new plugin: thumbnails
Generate thumbnails for albums, based on freedesktop specification. This
plugin is POSIX-only.

Require Python Imaging Library or Image Magick
2015-01-27 17:16:25 +01:00
Bruno Cauet
dbef31776f Replace ur'' strings by r'' strings
Since we use unicode_literals they are equivalent, but ur'' strings are
a syntax error in python 3.0+
2015-01-27 09:02:44 +01:00
Adrian Sampson
b8dab9cf9f Merge pull request #1247 from brunal/future
Use all __future__ imports in beets core

Conflicts:
	beetsplug/web/__init__.py
	test/test_embedart.py
2015-01-26 17:02:07 -08:00
Bruno Cauet
4e904c78af Simplify LibModel format management
Delete `ui.format_` and then `ui.print_obj`. Simply ensure that when
there is no format it defaults to '' = default format = config option.
2015-01-26 23:09:56 +01:00
Tom Jaspers
d3fce35481 Colors are user configurable
- Colors are mapped on to a dictionary using abstract names (e.g., text_success)
- Add `colors` option under `ui` to allow users to choose their own color scheme
- Move configuration option `color` from top-level to `ui`
- Show deprecation warning if top-level `color` configuration is used (but respect it)

Fix #1238
2015-01-26 17:24:32 +01:00
Bruno Cauet
060c275fd3 Merge branch 'master' into libmodels-formatting
Conflicts:
	beetsplug/embedart.py
2015-01-26 10:17:15 +01:00
Adrian Sampson
a10d9750a6 Merge pull request #1233 from pprkut/tracktotal
Make tracktotal an item-level field.
2015-01-25 13:02:31 -08:00
Adrian Sampson
ec2e9891c3 Merge pull request #1194 from tomjaspers/master
Fetchart: add fetching artwork from Wikipedia
2015-01-25 12:59:13 -08:00
Adrian Sampson
9fe0eab26f Merge pull request #1262 from brunal/embedart-logging
Improve embedart logging management
2015-01-25 12:55:19 -08:00
Bruno Cauet
8165dec985 Delete manual formattings of album & item 2015-01-25 21:32:22 +01:00
Bruno Cauet
62cd6e37aa Update ui.print_obj_(), add ui.format_()
Code now relies on `format()` for items and albums displaying/logging.
`ui.print_()` calls `unicode()` or `str()` on the strings so for most
usages calling `ui.print_(obj)` replaces `ui.print_(obj, lib, None)`.

Where there is a special format `ui.print_(format(obj, fmt))` is fine,
but when `fmt` can be None then one has to call
`ui.print_(ui.format_(obj, fmt))` -- which is what `ui.print_obj` now
does.
2015-01-25 21:07:03 +01:00
Bruno Cauet
77d46bb2df Embedart logging: higher level for img comparisons 2015-01-25 18:33:20 +01:00
Malte Ried
c43173263c Bugfixes and code rearrange for the extract art for albums feature. Closes #1261 2015-01-25 11:50:05 +01:00
mried
6ac132edf7 Added an option to extract the art file of all matched albums. Closes #1261 2015-01-25 11:50:04 +01:00
David Logie
29de697a8d Fix bug where playlists were not created in subdirs.
Playlist names containing path separators would cause beets to crash if
the parent directories for the playlist didn't already exist.
2015-01-24 13:00:25 +00:00
Bruno Cauet
23dcdebe9a Merge branch 'master' into embedart-logging
Conflicts:
	beetsplug/embedart.py
2015-01-24 11:31:31 +01:00
Adrian Sampson
07065b27b3 Merge pull request #1263 from brunal/embedart-better-extract
embedart: try extracting from items until success

Conflicts:
	beetsplug/embedart.py
2015-01-23 11:00:49 -08:00
Bruno Cauet
b30c6975a1 Embedart extraction: 'cover' is already the default
'cover' is already the default filename (in the absence of a custom
config) so there is no need to re-write that value in the embertart
plugin.

Improve #1258
2015-01-23 18:12:17 +01:00
Bruno Cauet
4a27f83223 embedart: try extracting from items until success
Don't stop at the first item but try them all.
Fix #1261
2015-01-23 17:48:37 +01:00
Bruno Cauet
b001a973a3 Improve embedart logging management
- better logging levels
- always use the preferred user formatting for items & albums
- improved some messages wording

Fix #1244
2015-01-23 17:39:38 +01:00
Malte Ried
b3803d3472 Extractart uses the configured art_filename. Closes #1258 2015-01-23 17:14:14 +01:00
Adrian Sampson
be7ffd9758 Merge pull request #1254 from andremiller/master
Replace print with _log.info() in CORS support
2015-01-21 09:38:37 -08:00
Andre Miller
96e3d8b451 Replaced print with log.info 2015-01-21 19:31:02 +02:00
Adrian Sampson
433d6b7485 embedart: Error on non-existent -f file
Fixes #1252.
2015-01-21 09:07:59 -08:00
Bruno Cauet
1e0185188a Smartplaylist: fix song path writing (str → bytes) 2015-01-21 10:36:45 +01:00
Bruno Cauet
545ba22f94 CORS init in web plugin: print → log 2015-01-21 10:18:13 +01:00
Bruno Cauet
c2f8cb9983 Merge branch 'master' into future
Conflicts:
	test/test_plugins.py
2015-01-21 10:04:33 +01:00
David Logie
99e89a29e2 mbsync: Don't overwrite the format built-in. 2015-01-21 08:05:27 +00:00
David Logie
7db3e1d80c mbsync: Fix bug where singletons always used the album format. 2015-01-21 08:05:27 +00:00
David Logie
2fae94a93a Make the Template object an attribute. 2015-01-21 08:05:26 +00:00
David Logie
3317580296 mbsync: Support custom output format. 2015-01-21 08:05:26 +00:00
Adrian Sampson
f617d162cf keyfinder: Better output parsing (#1248)
We were being sloppy about bytes output from the process. Also, it seems like
the tools outputs the path also, so it's necessary to break on whitespace to
actually get the key name.
2015-01-20 15:17:21 -08:00
Adrian Sampson
dae1776165 Reasonable logging for keyfinder command
Previously the command was completely silent.
2015-01-20 15:12:26 -08:00
Adrian Sampson
5586fcee67 keyfinder: Only write on import when asked to
This should really be standard machinery.
2015-01-20 15:11:13 -08:00
Adrian Sampson
8e94419c2a Fix filefilter (#1186) tests for consistent colons
I added this to the pretend output a few commits ago.
2015-01-20 14:34:42 -08:00
Adrian Sampson
0a8dcadb75 Rename regexfilefilter to filefilter (#1186) 2015-01-20 14:32:22 -08:00
Adrian Sampson
ebc065ecec Merge branch 'mried-import-filefilter'
Merge of PR #1186.
2015-01-20 14:22:55 -08:00
Adrian Sampson
38eecb93c9 Merge pull request #1237 from andremiller/master
Support for CORS
2015-01-20 14:02:27 -08:00
Malte Ried
a62a152010 Moved the regular expression file filter into a separate plugin. 2015-01-20 19:50:00 +01:00
Andre Miller
f815138758 Combined cors and cors_origin config options into one 2015-01-20 19:53:04 +02:00
Bruno Cauet
132f5ba912 Fix bytes/str with unicodenazi 2015-01-20 16:41:18 +01:00
Bruno Cauet
a5026100a3 All plugins use unicode_literals
Given that part of them has no test I may have broke them
2015-01-20 16:22:27 +01:00
Bruno Cauet
438044c6ae Fix bytes/str with unicode-nazi
Further cleaning will require setting unicode_literals on plugins
2015-01-20 15:25:12 +01:00
Andre Miller
47ea4b7d8b flake8 formatting updates 2015-01-20 16:06:16 +02:00
Andre Miller
f47be23658 CORS support now uses flask-cor extension 2015-01-20 15:33:33 +02:00
Bruno Cauet
02d8e88ef1 Replace all mentions of 'str' with 'bytes' 2015-01-20 12:48:15 +01:00
Bruno Cauet
9c41c39913 Do __name__ comparison with bytes and not unicode 2015-01-20 12:03:57 +01:00
Andre Miller
c8880de52c Fixes for flake8 validation 2015-01-20 00:38:26 +02:00
Andre Miller
bd63e1e386 Made CORS configurable and changed host default to 127.0.0.1 2015-01-20 00:20:26 +02:00
Heinz Wiesinger
c86a5f9d97 Make tracktotal an item-level field.
This fixes tracktotal being stored incorrectly for multi-disc releases
where the individual discs have a different number of tracks and
per_disc_numbering is enabled.
2015-01-19 13:02:21 +01:00
Bruno Cauet
90b388b775 Use __future__ imports but unicode_literals everywhere
Include import of __future__ features division, absolute_imports and
print_function everywhere. Don't add unicode_literals yet for it is
harder to convert.

Goal is smoothing the transition to python 3.
2015-01-19 12:25:16 +01:00
Bruno Cauet
b436e75a9e embedart: fix behaviour on IM unparseable output, add tests
Test all EmbedCoverArtPlugin.check_art_similarity() code paths.

Improve #1241.
2015-01-19 11:50:51 +01:00
Adrian Sampson
f346853710 embedart: Do not use shell for subprocess
This avoids bugs when the filename contains spaces, etc.

Pinging @Kraymer: I gave this a brief test, but can you check whether I messed
anything up more subtly?

Came up when looking at #1241.
2015-01-18 16:25:23 -08:00
Adrian Sampson
909c96b060 embedart: Handle unparseable IM output (#1241) 2015-01-18 16:18:22 -08:00
Frederik “Freso” S. Olesen
6031cab891 lastgenre: Add "mass" to the classical genre tree. 2015-01-18 23:00:27 +01:00
Horla
587ff39f22 Update genres-tree.yaml
Removing "classic"
2015-01-18 22:46:40 +01:00
Horla
8ed9e50e18 Update genres-tree.yaml
Changing "classic" to "classical"
2015-01-18 22:27:34 +01:00
Horla
3fdc5c936e Update genres.txt
Add classical subgenres
2015-01-18 22:13:36 +01:00
Horla
3a3150b740 Update genres-tree.yaml
Add classic genre with its subgenres
2015-01-18 22:11:01 +01:00
Malte Ried
0eb185a5e7 Merge branch 'master' into import-filefilter 2015-01-18 18:55:24 +01:00
Tom Jaspers
133c21a9c5 Fetchart: add fetching artwork from Wikipedia following the new class-based structure of the plugin 2015-01-18 15:09:36 +01:00
Andre Miller
9fe2bc1a38 Support for CORS 2015-01-18 10:23:49 +02:00
Adrian Sampson
bf02855ee1 Remove Beatport plugin (c.f. #1229) 2015-01-16 12:15:54 -08:00
Bruno Cauet
7c2d5f0948 Import beets.ui in discogs plugin
The discogs plugin uses beets.ui but did not explicitely import it,
which might cause it to crash when used in standalone.
2015-01-16 17:59:35 +01:00
Bruno Cauet
d2726e1c25 Fix mpdstats plugin config management
Fix #1228:
- remove erroneous calls to `self.config`
- always use `config['mpd']` and not `self.config` (which is
  config['mpdstats']) to match the doc
2015-01-16 11:08:24 +01:00
Bruno Cauet
b49cd3b73b Lyrics plugin: fix google backend
Give config on backends init so the Google backend can get the API key
and Engine Id.
Fix #1226
2015-01-15 11:28:04 +01:00
Adrian Sampson
c1ce71f35c smartplaylist: Fix album_query (fix #1225)
This is far less elegant and functional, but at least it is correct.
2015-01-14 22:00:30 -08:00
Adrian Sampson
38c5bb3666 Fix a docstring 2015-01-14 21:53:13 -08:00
Bruno Cauet
0c3675ada0 Fix replaygain: add 'log' to __init__ parameters 2015-01-14 16:17:20 +01:00
Bruno Cauet
0d1fa80651 Smartplaylist: don't utf8-encode the name
A Template expression expects an unicode, not an utf8-encoded string.
Add a test for that.
2015-01-14 12:32:00 +01:00
Bruno Cauet
6408904a8c Smartplaylit: fix log format string
{0.name} → {0[name]} since the argument is a dict.
2015-01-14 12:15:44 +01:00
Malte Ried
ad65242ebd Merge branch 'master' into import-filefilter
Conflicts:
	beets/importer.py
	beets/plugins.py
	beetsplug/ihate.py
2015-01-14 10:46:03 +01:00
Bruno Cauet
9a2a9b0144 smartplaylist: fix docstring 2015-01-13 18:53:47 +01:00
Bruno Cauet
ca91bc8920 mpdupdate: fix indent 2015-01-13 18:53:30 +01:00
Bruno Cauet
753388550e Clean PlexUpdate plugin
- no global variable
- use logging instead of prints
2015-01-13 12:36:16 +01:00
Bruno Cauet
de86b9b570 Clean MPDupdate plugin
- no global variable
- use logging instead of prints
- unicode logging
2015-01-13 12:30:40 +01:00
Bruno Cauet
a7beaa6d6e Clean & shorten smartplaylist code
- better log messages
- more idiomatic code: "X not in Y" instead of "not (X in Y)"
- shorten _items_for_query:
    - pre-detect whether it's album_query or query, hiding conf. spec to
      the function.
    - Let library.{items,album} parse the query string, therefore
      falling back to beets-level sort spec. if none is given in the
      query
2015-01-13 12:11:52 +01:00
Bruno Cauet
7c4496c110 Smartplaylist: log messages instead of printing
ui.print_ → self._log.info

Also change config['smartplaylist'] into self.config
2015-01-13 11:42:23 +01:00
Bruno Cauet
fdb768c9db Simplify smartplaylist flow
Suppress the global variable, register listeners if it's needed only.
2015-01-13 11:31:42 +01:00
Bruno Cauet
4babc40fd8 Delete useless "config['mypluginname']" mentions
Replace with self.config where this is painless.
More plugins would benefit from this update but that requires turning
functions into methods.
2015-01-12 10:55:59 +01:00
Adrian Sampson
f871ef9e21 Verbosity affects plugins (#1208)
This restores the -v flag affecting plugins. By default, plugin loggers use
the NOTSET level, which just reuses the base `beets` logger level. The level
is only auto-adjusted for the importer when not in verbose mode.
2015-01-11 15:00:20 -08:00
Adrian Sampson
24317fd4c7 Rename BeetsPlugin._import_stages to import_stages
For #1208. Restores backwards-compatibility and matches the development docs.
2015-01-11 14:27:59 -08:00
Bruno Cauet
b27c5304d1 Merge branch 'master' into logging
Conflicts:
	beetsplug/fetchart.py
	beetsplug/mpdstats.py
2015-01-09 15:15:27 +01:00
Adrian Sampson
558d1f9639 Merge pull request #1212 from brunal/mpdstats-react-only-once
mpdstats: don't register a natural song change twice
2015-01-08 13:43:46 -08:00
Adrian Sampson
1654fc82ce Merge pull request #1211 from brunal/fetchart-check-isfile
Fetchart: check that the art found is a file
2015-01-08 13:40:21 -08:00
Frederik “Freso” S. Olesen
4b1f0cbf48 Happy 2015. ;)
See 7a410f636b

Command used:

    git grep -l 'Copyright 201'|xargs sed -i -E 's/Copyright 201./Copyright 2015/'`
2015-01-08 21:37:09 +01:00
Bruno Cauet
23e6760e19 Partial rollback of bpd logging 2015-01-08 17:55:40 +01:00
Bruno Cauet
b7735bd3bf Don't register a natural song change twice
mpd responds twice to an 'idle' command upon a 'natural' song change
(i.e. not a skip). Checking the reason for mpd response avoids
registering twice the song change.

Fix issue #773
2015-01-08 12:39:28 +01:00
Bruno Cauet
2e1b0d589d Fetchart: check that the art found is a file
Fixes issue #1177
2015-01-08 10:58:08 +01:00
Bruno Cauet
1ca33a8a52 Avoid using partial() for the listener callback
partial() is not a instance of types.FunctionType so
inspect.getargspec() (used in beets/plugins:422) fails on it.
2015-01-08 10:10:42 +01:00
Bruno Cauet
422a7f6063 replaygain: fix backend instanciation 2015-01-06 22:13:17 +01:00
Bruno Cauet
00d5473187 Merge branch master into logging
Conflicts:
	beetsplug/lyrics.py
2015-01-06 21:46:04 +01:00
Bruno Cauet
b2582c5d62 MusicBrainz collection plugin: delete "print" uses 2015-01-06 21:42:34 +01:00
Bruno Cauet
f504c78681 Fix usage of embedart by convert plugin
Instanciation of EmbedCovertArtPlugin on the fly: there may be several
instances → problem with the listeners it registers?
2015-01-06 21:42:28 +01:00
Bruno Cauet
8097ff8c1d Convert fetchart plugin, with OO rewrite of sources
Art sources are now classes
2015-01-06 21:42:10 +01:00
Bruno Cauet
5c1cc6e7fc Convert the convert plugin to the new logging system 2015-01-06 21:42:10 +01:00
Bruno Cauet
11d5f93db1 Convert importadded plugin
Many listeners. Everything is now a method
2015-01-06 21:42:10 +01:00
Bruno Cauet
63041736e3 Convert lyrics plugin, with OO rewrite of backends 2015-01-06 21:42:10 +01:00
Bruno Cauet
860e7e1483 Update 3 plugins: func → methods, listeners
- functions turn into method in order to have the logger object
- registering the listener has to be updated too
2015-01-06 21:42:09 +01:00
Bruno Cauet
203b325ee7 Convert mbsync logging: big funcs → methods 2015-01-06 21:42:09 +01:00
Bruno Cauet
74e18afa94 Convert bdp: pass around with static setter on classes 2015-01-06 21:42:09 +01:00
Bruno Cauet
32673b87e7 Update multiple plugins: pass the logger around 2015-01-06 21:42:09 +01:00
Bruno Cauet
7d58a38428 Convert replaygain: pass logger to other classes
This time the logger is passed to the other classes of the module, not
to functions.
2015-01-06 21:42:02 +01:00
Bruno Cauet
38352f7058 Update chroma plugin logging: pas logger around
The logger is passed as an argument to multiple function. This showcases
the second possibility for using the new logging system. Several similar
conversions to be expected.
2015-01-06 21:42:02 +01:00
Bruno Cauet
1be3dade04 Convert freedesktop plugin logging: func → method
This serves as an introduction for many plugin updates to come.
Multiple functions have to turn into methods -- and this is one of the
shortest plugins.
2015-01-06 21:40:58 +01:00
Bruno Cauet
e14a54df05 Convert multiple plugins' logger usage (easy ones)
Those plugins only called methods and no function, which eases the
conversion.
2015-01-06 21:34:13 +01:00
Bruno Cauet
0617c0410f Remove log declarations where it was unused
Easiest conversions!
2015-01-06 21:34:12 +01:00
Bruno Cauet
78ac338c28 Delete _log definition where it was already used
Easy switch to the new logger
2015-01-06 21:27:16 +01:00
Bruno Cauet
1afe82fb41 Make 2 plugins rely on auto log level mgmt
ftintitle and title don't do manual management anymore.
2015-01-06 21:27:15 +01:00
Bruno Cauet
427f7e7035 Automatic logger level changes on import
Breaking changes: plugins should set set _import_stages instead of
import_stages. From outside the latter is replaced by import_stages().
This is because it is now wrapped with log level-getting & -setting
statements.
2015-01-06 21:27:15 +01:00
Adrian Sampson
258fa10767 Merge pull request #1206 from Freso/patch-1
lastgenre: Add "comedy" to genre whitelist.
2015-01-06 11:22:07 -08:00
Adrian Sampson
daba9e770e Fix #1204: insecure request warning in lyrics 2015-01-06 11:01:11 -08:00
Frederik "Freso" S. Olesen
3940f3a1c2 lastgenre: Whitelist "humor" + "stand-up".
https://botbot.me/freenode/beets/msg/28878482/
2015-01-06 19:50:00 +01:00
Frederik "Freso" S. Olesen
6fb810289f lastgenre: Add "comedy" to genre whitelist.
See discussion from https://botbot.me/freenode/beets/msg/28875043/
2015-01-06 15:44:39 +01:00
Bruno Cauet
b8211a3c4c Every plugin uses its own logger
logging.getLogger(__name__) everywhere!
Several loggers prefixed every log message with [logername], which we
delete here.
2015-01-06 10:35:44 +01:00
Bruno Cauet
30f158a95e Move "from beets import logging" statements
Move the import next to other beets-related imports
2015-01-05 10:05:21 +01:00
Bruno Cauet
45db930457 embedart: restore an apparent typo (which wasn't)
hashes → phashes
2015-01-05 07:59:53 +01:00
Bruno Cauet
f5c5666729 Attain pep8-cleanliness
No more E12 or E501
2015-01-04 17:29:31 +01:00
Bruno Cauet
7df8bef8b7 Update logging imports: logging → beets.logging 2015-01-04 17:02:27 +01:00
Bruno Cauet
6bdb02c721 Fix logging formatting string in duplicates plugin
{)} → {0}
2015-01-04 17:02:27 +01:00
Bruno Cauet
8cac47af2a Convert beets plugins to lazy logging 2015-01-04 17:02:27 +01:00
Malte Ried
ab996a0de0 Merge branch 'master' into import-filefilter
Conflicts:
	test/test_importer.py
2014-12-31 17:04:16 +01:00
Malte Ried
0e74c5dbaa Rearranged regex config options to reduce hierarchies 2014-12-31 11:56:50 +01:00
Fabrice Laporte
d4d5c085fa lyrics : remove empty divs before scraping
it may result in \n being inserted that we will strip in
_scrape_strip_cruft
2014-12-30 23:37:23 +01:00
Adrian Sampson
fd94094c1b Changelog and name change for #1156 2014-12-30 15:27:17 -04:00
Adrian Sampson
e547426b8c Merge pull request #1156 from djl/lastgenreunicode
lastgenre: Optionally replace unicode characters when performing lookups
2014-12-30 15:25:40 -04:00
Malte Ried
8addf3ef39 Simplified the configuration of the regular expressions for th ihate plugin
Added the docs
2014-12-30 14:11:45 +01:00
David Logie
08d5b9c138 Fix line length in docstring. 2014-12-29 19:45:33 +00:00
David Logie
f2704461cf Go back to a single lookup with specific Unicode characters replaced. 2014-12-29 19:37:03 +00:00
Marc Addeo
8cd3d0059f Remove ArtistNotFoundException in favor of returning None for simplicity 2014-12-29 11:10:43 -05:00
Malte Ried
7674399a45 Added the import_task_created event
Improved the IHatePlugin to filter files based on file names
2014-12-29 12:03:51 +01:00
Marc Addeo
e71c464c14 Initialize feat_part as None 2014-12-28 21:27:58 -05:00
Marc Addeo
8f41818434 Fix formatting to pass flake8 tests 2014-12-28 20:58:59 -05:00
Marc Addeo
a70820d8a1 Fix a bug in ftintitle with the order of album artist
There was a bug in the find_feat_part function that would cause it to
fail if the album artist was the second part of the featured string.

For example, if the Artist field was Alice & Bob, and the Album Artist
field was Bob it would return None due to the order.

This fixes that and adds test cases to ensure it doesn't return.
2014-12-28 20:23:17 -05:00
Marc Addeo
4d4113e3a4 Refactor ftintitle to extract the code to find the featured artist
This removes the code that extracts the featured artist from the
original artist field from the ft_in_title function and puts it into its
own.

It also adds a custom ArtistNotFoundException that find_feat_part will
throw if the album artist is not in the artist field.

This allows us to easily test the results of finding a featured artist
in the artist sting, and thus adds tests for the usual test cases that
the split_on_feat gets tested for.
2014-12-28 20:15:09 -05:00
Adrian Sampson
d0dcc74c7e Merge pull request #1181 from marcaddeo/fix-ftintitle-duplicate-album-artist
Fix handling of duplicate album artists in ftintitle
2014-12-28 18:58:36 -04:00
Adrian Sampson
375f9259b9 Merge pull request #1176 from Freso/issue-1172-ftintitle-less-import-verbosity
ftintitle: use log.log() for outputting
2014-12-28 18:52:21 -04:00
Marc Addeo
8c484a273c Fix handling of duplicate album artists in ftintitle
The code that determines the featured artist part of the artist only
handles two element lists. When the album artist is duplicated, it
splits into a three element list causing no featured artist to be found.

This ensures the albumartist_split can ever only have 2 elements.

Fixes #1179
2014-12-28 17:51:48 -05:00
Stig Inge Lea Bjørnsen
9227a51588 Add a missing space 2014-12-28 20:40:46 +01:00
Frederik "Freso" S. Olesen
0ec3396d3f ftintitle: Use log.log() instead of ui.print_().
Fixes #1172.
2014-12-28 20:33:56 +01:00
Frederik "Freso" S. Olesen
6182ef1b1e ftintitle: Remove empty ui.print_() call. 2014-12-28 20:33:15 +01:00
David Logie
148d9048d5 Update _cached_lookup() docstring. 2014-12-28 18:38:42 +00:00
David Logie
433d68724a Escape Unicode characters so we don't need the encoding headers. 2014-12-28 18:38:15 +00:00
David Logie
3015c22d40 Fix indent level. 2014-12-26 14:17:49 +00:00
David Logie
d9673ef9b5 lastgenre: Only replace a small set of unicode characters. 2014-12-26 14:08:22 +00:00
Stig Inge Lea Bjørnsen
a2188d475b ImportAdded support for in-place and link imports
Fix for the `ImportAdded` plugin crashing during in-place imports (#1107).

Add support for the new link imports introduced in Beets 1.3.9.

Note that link-imports that preserve file modification times will follow
the links and preserve the mtimes on the link targets. The mtimes on the
links aren't modified.
2014-12-25 21:39:28 +01:00
Michael Ludwig
c76f8bee46 embedart: Added syspath call to art exists check 2014-12-21 13:08:02 -05:00
Adrian Sampson
016c901e6f Fix 2.6 compatibility with subprocess
We can add this back once we go 2.7-only.
2014-12-21 10:09:43 -05:00
Adrian Sampson
e8158194d6 More robust templating (#1157)
Don't require $source and $dest to be bare tokens.
2014-12-21 09:42:58 -05:00
Adrian Sampson
8579412a76 No shell execution (#1157)
Now that we do the proper thing, we do not need shell parsing.
2014-12-21 09:31:41 -05:00
Adrian Sampson
4180f42194 Encoding and other fixes for #1157
Log as one statement. No need to hold the filesystem lock. New variable name.
2014-12-21 09:30:25 -05:00
Adrian Sampson
c4eba5c741 Apply #1157 by @mluds as patch (fix #1158, #1026) 2014-12-21 09:22:56 -05:00
Adrian Sampson
f45d6c2364 Merge pull request #1161 from Kraymer/lyrics_hotfixes_musixmatch
Musixmatch hotfixes
2014-12-21 09:11:45 -05:00
Fabrice Laporte
802d1521ed lyrics: don't throw when extraction fails 2014-12-21 14:38:19 +01:00
Fabrice Laporte
dfc1aa20b3 lyrics: musixmatch, disable https verification 2014-12-21 14:35:16 +01:00
David Logie
c7b6f75ca8 lastgenre: Automatically retry asciified lookups if the initial lookup fails. 2014-12-21 12:58:15 +00:00
Adrian Sampson
02e341cded Fix #1152: mbcollection: choose release collection 2014-12-20 22:21:58 -05:00
Adrian Sampson
021cdb7b4a Fix log statement in inline 2014-12-20 20:06:17 -05:00
David Logie
c227501a5d lastgenre: Optionally replace unicode characters when performing lookups. 2014-12-20 22:13:05 +00:00
Fabrice Laporte
39584a8b69 fix flake8 2014-12-19 00:19:59 +01:00
Fabrice Laporte
c3f82c65a4 fix lyrics.com extraction markers 2014-12-18 23:56:33 +01:00
Adrian Sampson
ba044f8e20 fetchart: Privatize global source list (#1148) 2014-12-18 11:14:22 +00:00
Adrian Sampson
b3bf70c11d Privatize global SOURCES in lyrics 2014-12-18 11:13:02 +00:00
Adrian Sampson
ac3f0824b0 Merge pull request #1148 from Kraymer/lyrics_musixmatch
lyrics: add 'musixmatch' source

Conflicts:
	beetsplug/lyrics.py
2014-12-18 10:36:16 +00:00
Adrian Sampson
20db9bb1a6 lyrics: Connect force option to CLI (#1150) 2014-12-18 04:03:15 +00:00
Fabrice Laporte
544d6dbe47 lyrics: add 'force' option 2014-12-17 22:40:44 +01:00
Fabrice Laporte
474adffe63 move helper functions from utils to plugins 2014-12-17 22:00:00 +01:00
Fabrice Laporte
9d0ca15ace lyrics: preserve default order of sources 2014-12-17 01:05:58 +01:00
Fabrice Laporte
e7a4b92de5 lyrics: add 'sources' option 2014-12-17 00:42:11 +01:00
Fabrice Laporte
0f2f43ca9b lyrics: add musixmatch source 2014-12-17 00:41:21 +01:00
Adrian Sampson
c2184be679 Merge branch '1060_ft_lang_support' 2014-12-16 11:53:59 +00:00
Adrian Sampson
a984c1aa44 Use a non-capturing group by default (#1060)
Now clients don't have to decide whether they need parentheses or not.
2014-12-16 11:37:40 +00:00
Fabrice Laporte
829b623665 remove capturing parentheses 2014-12-15 22:48:01 +01:00
Fabrice Laporte
b62f15d9d9 feat_tokens: change argument name, fix regex flag 2014-12-14 22:46:51 +01:00
Fabrice Laporte
91a998df3c fix #1060 2014-12-13 23:34:50 +01:00
Adrian Sampson
9ce956d648 Accuracy in variable naming (#1138)
That's a Query object, not a string.
2014-12-12 15:41:49 -08:00
David Logie
c09745f75c Remove unused dbcore import. 2014-12-12 23:06:15 +00:00
David Logie
11c60ce101 smartplaylist: Respect sort terms in queries. 2014-12-12 14:38:35 +00:00
Adrian Sampson
165ee80f81 lyrics: Handle requests exceptions (#1136) 2014-12-11 16:03:49 -08:00
Fabrice Laporte
d31a7c6b28 remove str decoding as input sources are unicode 2014-12-11 00:14:43 +01:00
Fabrice Laporte
321f862f23 fix #1135 2014-12-09 23:37:42 +01:00
Adrian Sampson
1448eab642 Parenetheses-less tuples 2014-12-02 18:12:21 -08:00
Thomas Scholtes
66b81ed081 echonest: test conversion failure 2014-12-02 11:54:36 +01:00
Thomas Scholtes
c248a71494 echonest: mock convert and truncate commands 2014-12-02 11:51:18 +01:00
Thomas Scholtes
f4fdd66b81 echonest: truncating a file converts it to OGG
Previously ffmpeg would throw an error because the file extension is
'.ogg' but the codec is 'copy'.
2014-12-02 11:15:46 +01:00
Thomas Scholtes
5633f50f27 echonest: extract logic into prepare_upload method
Also fixes a bug where both converting and truncating would leave a
temporary file.
2014-12-02 09:58:56 +01:00
Adrian Sampson
c41b8acf82 Merge pull request #1129 from geigerzaehler/zero-images
zero: Can delete embedded images

Conflicts:
	docs/changelog.rst
2014-12-01 11:40:48 -08:00
Adrian Sampson
d97b90d363 Merge branch 'master' of github.com:sampsyo/beets 2014-12-01 11:28:57 -08:00
Thomas Scholtes
17117ed4ae echonest: Remove temporary files
Fixes #979.
2014-12-01 17:53:14 +01:00
Thomas Scholtes
e2b2a505fc zero: Can delete embedded images
Fixes #1100.
2014-12-01 17:33:45 +01:00
Thomas Scholtes
9d3729dc5e mediafile: Test deleting images and implement it for MP3s 2014-12-01 17:20:16 +01:00
Adrian Sampson
5fb4003ebe echonest: Fix #896 (handle missing duration) 2014-11-30 12:21:27 -08:00
Adrian Sampson
7c08830113 Remove Echo Nest fingerprinting (fix #1121) 2014-11-30 12:18:43 -08:00
Adrian Sampson
5d37f9a2f0 Remove echonest_tempo (fix #1119) 2014-11-30 12:03:28 -08:00
Adrian Sampson
fe655e4610 discogs: Only authenticate on import (#1123)
No need to authenticate for other commands.
2014-11-30 11:18:32 -08:00
Marvin Steadfast
77f8eff78c Fixed python 2.6 compatibility in the plexupdate plugin. Added requests as dependency in the docs for plexupdate 2014-11-28 14:08:11 +01:00
Marvin Steadfast
b25393151d Added plexupdate plugin for refreshing plex music library after importing music. 2014-11-28 11:19:17 +01:00
Marvin Steadfast
d3b76d83d2 Permissions plugins listens now for album_imported and item_imported 2014-11-24 18:41:50 +01:00
Adrian Sampson
d026e7742b fetchart: Tolerate itunes bugs (fix #1109) 2014-11-22 15:32:52 -08:00
Marvin Steadfast
f8b3b96ff4 the plugin now listens also for item_moved 2014-11-21 14:58:33 +01:00
Marvin Steadfast
8784e8d8ca plugin now listens for item_copied instead of after_write. now the test works 2014-11-20 11:40:02 +01:00
Marvin Steadfast
38c509b092 created a function to convert permissions to oct 2014-11-19 17:26:39 +01:00
Marvin Steadfast
5f03185bdd did even more refactoring with the suggestions of sampsyo. added documentation page 2014-11-18 13:45:55 +01:00
Marvin Steadfast
df1136756a a little refactoring 2014-11-17 16:29:54 +01:00
Marvin Steadfast
e1db3e9f0b Added fix_permissions plugin 2014-11-17 13:42:53 +01:00
Alberto Leal
5883ee0b76 Default value for link title for page searches.
Google API may not return results with a title attribute.
2014-11-16 16:11:25 -05:00
Adrian Sampson
590b106ed0 echonest: Fix #1096: log error on repeated error 2014-11-16 12:08:07 -08:00
Adrian Sampson
d8211f1d76 fetchart: Fix RG MBID field name (fix #1080) 2014-11-12 20:56:18 -08:00
Adrian Sampson
0d529bae16 Docs tweaks for #1078 2014-11-11 11:57:08 -08:00
Francesco Rubino
2a9064ee21 Fixed format of comments and docstrings. 2014-11-11 18:44:09 +00:00
Francesco Rubino
905d76efec Merged from upstream 2014-11-11 18:41:24 +00:00
Francesco Rubino
df1503e2ca Added comments/docstrings to the AudioToolsBackend in the replaygain plugin 2014-11-11 18:11:22 +00:00
Adrian Sampson
d3f0742276 Changelog, tweaks for fetchart sources (#1075) 2014-11-11 10:10:43 -08:00
Adrian Sampson
288fb0da4c Merge pull request #1075 from Kraymer/1066-fetchart_sources
fetchart: add 'sources' option
2014-11-11 10:04:45 -08:00
Adrian Sampson
91ad0d9f58 Merge pull request #1069 from Kraymer/1035_no_copyright
Remove licensed lyrics from tests resources
2014-11-11 09:58:54 -08:00
Fabrice Laporte
ef6d3efe6d fetchart: cover engines yield their results 2014-11-10 22:17:34 +01:00
Adrian Sampson
a2d763b745 Fix ftintitle auto permanence (#485)
Oops. Plugins need to store to the database.
2014-11-09 19:21:09 -08:00
Adrian Sampson
05d5edcd0e Quiet down logging in #1070
This looks mostly helpful for debugging but redundant with the ordinary
logging.
2014-11-09 18:41:54 -08:00
Adrian Sampson
7a9a77b906 Merge pull request #1070 from frubino/master
Added backed audiotools to replaygain module and updated documentation
2014-11-09 18:38:38 -08:00
Adrian Sampson
7e4a0f6211 play: Log a message when no output is produced 2014-11-09 14:23:43 -08:00
Fabrice Laporte
09bea52a41 fetchart: fix flake8 2014-11-09 20:55:53 +01:00
Fabrice Laporte
6170c3a179 fetchart: make test_art.py tests pass 2014-11-09 20:41:21 +01:00
Fabrice Laporte
4d9ce94426 fetchart: import itunes only if necessary 2014-11-09 20:40:45 +01:00
Francesco Rubino
be43f629bf Merge branch 'master' of https://github.com/sampsyo/beets
Conflicts:
	docs/plugins/replaygain.rst
2014-11-09 14:48:32 +00:00
Francesco Rubino
4bf17486eb Fixed line lengths, typo in documentation. 2014-11-09 10:29:46 +00:00
Fabrice Laporte
41d0f4d674 remove comment 2014-11-08 23:28:10 +01:00
Fabrice Laporte
1b694e569e fetchart: add 'sources' option
Fasten cover search by enabling engines selection and prioritisation.
2014-11-08 23:20:44 +01:00
Adrian Sampson
701ed2dae9 Limit result set sizes (fix #1068) 2014-11-08 08:32:31 -08:00
Adrian Sampson
a9981c1dc7 Comment about workaround in #1073 2014-11-07 19:51:38 -08:00
David
5480ceeaf8 Encode to ascii,not utf8.Replace missing chars 2014-11-07 20:46:35 -05:00
Francesco Rubino
8af5b0e6c3 Added backed audiotools to replaygain module and updated documentation 2014-11-07 18:14:56 +00:00
Fabrice Laporte
b143ad7e3e fix #1035 do scraping tests on mock data
don’t store scraped pages with licensed lyrics in repo
2014-11-06 22:10:15 +01:00
Adrian Sampson
fc6664455a fetchart: Move iTunes priority
I like the CAA as a first-priority search because the images are generally
high-quality and there's no metadata ambiguity (we always find the right
release if it's in the catalog).
2014-11-06 10:37:58 -08:00
kerobaros
899eab334b fetchart: add iTunes Store art source; depends on python-itunes 2014-11-05 13:38:39 -06:00
Adrian Sampson
0aeadebcea freedesktop (#1056): Make handler a method
This lets us use `self.config`. The previous version, which checked
`beets.config['auto']`, was looking in the wrong scope.
2014-11-02 21:01:31 -08:00
kerobaros
3516fb67eb Added docstring, copyright and license to plugin. 2014-11-02 22:41:03 -06:00
kerobaros
8daeb7d79e Fixed up config checking to make freedesktop plugin pass flake8. 2014-11-02 22:35:40 -06:00
kerobaros
6ca34632de fd plugin now runs on album_imported hook. also logs when album has no art. 2014-11-02 22:05:37 -06:00
kerobaros
418e7c0d12 Merge remote-tracking branch 'upstream/master' 2014-11-02 21:23:31 -06:00
Angel Alonso
ad9786ce81 convert: update documentation and add a trailing comma. 2014-11-02 10:58:46 +01:00
kerobaros
2d82aa85b5 Starting on freedesktop plugin. 2014-11-01 21:47:55 -05:00
Angel Alonso
94c268d17e convert: copy album art when copying or transcoding.
Only implemented to work when matching albums instead of tracks (-a option).
Disabled by default in the configuration of 'convert'.

fix indentation.

Fix Travis nagging over indentation (hopefully).

Finally pep8 conforming.
2014-11-01 19:09:33 +01:00
Adrian Sampson
683e1a278d Merge branch 'lastimport' 2014-10-30 22:48:14 -07:00
Adrian Sampson
50c7cf0f56 discogs: Fix #1049: intermittent trailing comma 2014-10-30 09:36:39 -07:00
Adrian Sampson
69b7d1f160 Changelog for #1036 (fix #1028) 2014-10-28 11:50:36 -07:00
Adrian Sampson
6d38d9faf4 Merge pull request #1036 from kerobaros/master
Re: issue #1028: "embedart: Resize images only once per album
2014-10-28 11:49:19 -07:00
Adrian Sampson
4f3cd65943 Fix #1045: whitespace-separated queries in web 2014-10-27 23:14:28 -07:00
kerobaros
3a56077b0c Fixed logic error, added a .get(bool). 2014-10-27 21:20:26 -05:00
Adrian Sampson
72db4af7f8 Fix #1041: play unicode logging crash 2014-10-27 09:24:59 -07:00
Thomas Scholtes
464f8cdc04 Types plugin: Field types for albums and documentation example 2014-10-27 10:54:21 +01:00
Adrian Sampson
eb35d7084a Save Discogs token (#1040) 2014-10-26 15:45:34 -07:00
Adrian Sampson
a8a5191cf5 discogs #1040: Standard API key, handle failure 2014-10-26 15:24:17 -07:00
Adrian Sampson
665b4ac50a lastimport: Declare play_count type
Now you can get the fanciness of the numeric field without configuring the
`types` plugin.
2014-10-26 15:06:48 -07:00
David
d9c9e06674 Add authentication to discogs plugin 2014-10-26 16:26:59 -04:00
David
edbb97bd09 Dropping unused argument 2014-10-25 16:16:32 -04:00
kerobaros
81b513c720 Merge remote-tracking branch 'upstream/master' 2014-10-24 23:41:56 -05:00
Adrian Sampson
9137b5c2f3 Fix another lyrics scraper regression (#1034)
Along with a test.
2014-10-24 20:08:32 -07:00
kerobaros
f782dfd376 I'll get used to this git thing one day. Cleaning up. 2014-10-24 21:36:30 -05:00
kerobaros
d06da6381f Updating to master to form a new PR. 2014-10-24 21:33:09 -05:00
Adrian Sampson
0325fe2225 lyrics: Remove script tags (fix #1034) 2014-10-24 17:33:11 -07:00
Adrian Sampson
0bf7cb8657 Merge pull request #1011 from Kraymer/ftintitle_auto
ftintitle: add 'auto' option
2014-10-24 17:16:42 -07:00
Adrian Sampson
a7b7e23436 Minor fixes for #1033 2014-10-24 16:46:55 -07:00
kerobaros
9a191baca4 Working on issue #1028, resize images only once per album. 2014-10-24 15:01:52 -05:00
kerobaros
ca431b0bf8 Seperated some code out from extract() into get_art(item). Cleaner and quicker way to check for embedded art. 2014-10-23 22:37:19 -05:00
kerobaros
7f37514bb9 Whoops, trailing space. Take 2. 2014-10-23 21:17:42 -05:00
kerobaros
9be753736b Slight style tweaks. 2014-10-23 21:13:30 -05:00
kerobaros
e06f492f91 Whoops, take two. 2014-10-23 15:31:38 -05:00
kerobaros
75b62b723f Added "ifempty" config to embedart plugin, re: issue 1020 2014-10-23 15:27:15 -05:00
Fabrice Laporte
343972f5d0 move metadata management in command function 2014-10-18 11:04:10 +02:00
Fabrice Laporte
ac57ef0e67 restore write argument for ft_in_title 2014-10-14 20:58:36 +02:00
Adrian Sampson
7754fe5a40 embedart: Fix logging during import (#1014)
Regression introduced in 2813cd26c1.
2014-10-14 09:42:11 -07:00
Fabrice Laporte
4884ae3c46 register import hook only if needed 2014-10-13 22:25:09 +02:00
Fabrice Laporte
740b510ed7 restoring ft_in_title implementation 2014-10-13 21:21:28 +02:00
Fabrice Laporte
cc6080fa21 ftintitle: add 'auto' option 2014-10-12 22:44:34 +02:00
Adrian Sampson
4a61ce7c6b Use shared Last.fm API key 2014-10-12 13:27:04 -07:00
Adrian Sampson
06cfd4c549 Use MatchQuery for mb_trackid lookup 2014-10-12 13:21:26 -07:00
Adrian Sampson
490f84fc34 Style fixes 2014-10-12 13:19:03 -07:00
Adrian Sampson
a07e20eaf8 Safer GET parameter formulation for AS URL 2014-10-12 13:11:58 -07:00
Adrian Sampson
d6266c2542 Add lastimport plugin by @rafi
From rafi/beets-lastimport at 72c199d599ee76f2a5fa366a032ad33491f2c82c.
2014-10-12 13:00:27 -07:00
Heinz Wiesinger
ec56f2bbd4 Make 'media' an item level field.
Releases can consist of discs of various media types, most typically
CD/DVD combo releases. Having the media value an album level field
forces all discs to be of the same type. Making it an item level
field instead seems to be the proper thing to do here.

Fixes #161
2014-10-12 12:21:13 +02:00
Adrian Sampson
9e3a737b06 Merge pull request #1008 from otakucode/master
Added handler for requests.exceptions.ConnectionError to discogs plugin.
2014-10-11 22:11:01 -07:00
Adrian Sampson
434280f248 A couple of coverage tweaks 2014-10-11 22:05:22 -07:00
Dustin Rodriguez
020c96d99f Added handler for requests.exceptions.ConnectionError to discogs plugin. 2014-10-11 20:50:31 -04:00
Adrian Sampson
b777bde0af Fix #1006: errant info-level log
Introduced in e99df7bc65.
2014-10-11 15:05:01 -07:00
Adrian Sampson
0749d4716c duplicates: Fix #999 (check "checksum" type) 2014-10-11 12:28:41 -07:00
Stig Inge Lea Bjørnsen
6f9abf4340 Merge pull request #925 from silb/bug-911-importadded-reimport
Fixes bug #911
2014-10-11 15:53:03 +02:00
Stig Inge Lea Bjørnsen
79a9593cb9 Add quoting and use displayable paths in log messages 2014-10-10 22:52:54 +02:00
Ben Lumley
10d05a32be Trivial typo fix 2014-10-10 09:57:32 +01:00
Fabrice L.
e6bf8c21d8 Merge pull request #992 from KraYmer/lyrics-coverage
Improve lyrics coverage
2014-10-09 22:11:28 +02:00
Adrian Sampson
c5293df963 replaygain: More descriptive backend errors
This avoids a bare `except:` to catch specific errors and give better messages
when they fail. Should provide more insight to this trouble:
https://groups.google.com/d/msg/beets-users/6d-TOg0SuPY/iL39tmo3rqUJ

Also related to #874.

Feedback from @yevgenybezman or others more familiar with the backend would be
welcome.
2014-10-09 12:26:53 -07:00
Adrian Sampson
983aac287b Add a displayable_path call in embedart (fix #995) 2014-10-09 11:13:39 -07:00
Fabrice Laporte
a6f0649c40 return no lyrics when HtmlParseError occured 2014-10-09 08:22:51 +02:00
Fabrice Laporte
c0c474b20f lyrics: strip title excerpt before matching
improve the extraction of lyrics title from url title and increase the
matching threshold as a consequence.
2014-10-08 14:49:09 +02:00
Stig Inge Lea Bjørnsen
3bd3a817de Comply with PEP8. 2014-10-07 22:05:44 +02:00
Stig Inge Lea Bjørnsen
125f6422d7 Bug #911 reimport detection for the importadded plugin
Reimports are now detected by inspecting the fields for reimported items
and replaced albums in ImportTask.

Reimported albums and items are skipped.
2014-10-07 21:05:43 +02:00
Lucas Duailibe
17dbf2a22d play: remove temporary m3u file 2014-10-03 12:49:06 -03:00
Ralf Sieger
ab5c5dcfd5 added option for initial volume setting 2014-09-30 09:34:04 +02:00
Fabrice L.
54c9761135 Merge pull request #981 from KraYmer/lyrics-enh
Lyrics scraping code refactored
2014-09-27 11:25:06 +02:00
Fabrice Laporte
3ef52e8ead lyrics.py: remove unnecessary re compile step 2014-09-26 07:08:54 +02:00
Adrian Sampson
d17c148e52 Minor fixes, changelog for #974 2014-09-25 15:33:52 -07:00
Adrian Sampson
4f2d7e0aaa Merge pull request #974 from KraYmer/fetchart_issue848_2
embedart: write candidate image only if it is "similar" to already embedded one (suite)
2014-09-25 15:25:46 -07:00
Fabrice Laporte
a6a83be434 fix flake8 2014-09-24 23:30:38 +02:00
Fabrice Laporte
76b658b14a use beautiful soup strainer for a x20 performance gain! 2014-09-24 18:04:16 +02:00
Adrian Sampson
ee9e51d3cc beet convert -y should not need an argument 2014-09-24 08:01:06 -07:00
Fabrice Laporte
8ef7837d22 merge strip_cruft() and _scrape_normalize_eol() into _scrape_strip_cruft 2014-09-24 16:51:54 +02:00
Fabrice Laporte
333591fd78 no html entities in _scrape_streamline_soup output 2014-09-24 00:25:50 +02:00
Fabrice Laporte
91a7eb249c add _scrape_merge_paragraphs lyrics scraping step + others scraping enh 2014-09-23 17:58:58 +02:00
Fabrice Laporte
a938e68c98 refactor scrape_lyrics_from_url into smaller functions 2014-09-23 13:21:31 +02:00
Fabrice L.
151ee87d8d remove a log.info() 2014-09-22 17:32:15 +02:00
Fabrice Laporte
aea640d241 lyrics.py: fix regexes used by strip_cruft (make them case insensitive)
strip_cruft() should now correctly replace all <br> with \n thus making
insert_line_feeds() and sanitize_lyrics() functions superfluous (they have been
removed).
2014-09-22 17:20:25 +02:00
Fabrice Laporte
d2cf41fc70 restore command_output() implementation as of 0ec285f 2014-09-22 13:49:23 +02:00
Fabrice Laporte
c1224caab5 Merge branch 'fetchart_issue848'
Conflicts:
	test/test_embedart.py
2014-09-21 14:23:59 +02:00
Fabrice Laporte
1c2448c3e0 add can_compare flag to ArtResizer 2014-09-20 12:19:10 +02:00
Zach Denton
606d47a315 Update type of last_played to library.DateType(). 2014-09-18 17:13:09 -04:00
Thomas Scholtes
dc3c4883dc convert: Check the correct path when determening whether to skip
Fixes regression from 3197795faa
and makes tests from 56aba87fdc pass.

Fixes #970
2014-09-18 17:17:02 +02:00
Thomas Scholtes
1e45ba597d embed_item function does not raise if image file not found
Fixes #968
2014-09-18 16:19:05 +02:00
Fabrice Laporte
1bffe2a7bf obey Travis orders 2014-09-17 22:57:38 +02:00
Fabrice Laporte
e99df7bc65 embedart: add compare_threshold option
if compare_threshold > 0 we call check_art_similarity to return sooner
if it happens that candidate image and embedded one are similar.
2014-09-17 22:01:08 +02:00
Thomas Scholtes
db391c8f20 zero: Only changes media file tags not database
Uses the new API from the previous commit and fixes #963.

There is a possible issue with backwards compatibility: Changes to the
item in the 'write' event do not propagate to the tags anymore. But I'm
not aware of other plugins that use the API in that way.
2014-09-17 12:17:20 +02:00
Adrian Sampson
80116ccc9e Introduce parse_query_string for the common case
Most clients other than Library._fetch know what type they have!
2014-09-15 18:21:22 -07:00
Adrian Sampson
08b9b90f74 convert: Fix #962, extensions in auto mode 2014-09-15 17:00:59 -07:00
Adrian Sampson
84c0f909b6 replaygain: Check for bad mp3gain output (#961) 2014-09-15 10:25:57 -07:00
Adrian Sampson
77f7d18c00 Remove stray comment from #909
Yes, it is necessary.
2014-09-14 13:15:42 -07:00
Adrian Sampson
72436644a6 Merge pull request #909 from arogl/master
Clean up of logging messages as described here
2014-09-14 13:14:35 -07:00
Adrian Sampson
c38d45e273 Merge pull request #959 from geigerzaehler/dbcore-refactor
Refactor DBcore without changing behaviour
2014-09-14 13:10:36 -07:00
Adrian Sampson
20968a92ee Merge pull request #955 from robotanarchy/master
importfeeds: add new 'echo' type that writes to stdout
2014-09-14 13:03:59 -07:00
robotanarchy
2039d2effe don't use the _write_m3u function for stdout stuff 2014-09-14 20:17:53 +02:00
Lucas Duailibe
b1a5189f68 Add default value for relative_to in play plugin 2014-09-14 12:07:08 -03:00
Thomas Scholtes
492cf38927 Use item[field] instead of getattr(item, field) 2014-09-14 16:13:35 +02:00
Thomas Scholtes
5dec867ab3 mpdstats: set types for flexible fields 2014-09-14 12:34:46 +02:00
Thomas Scholtes
d4f72f62eb echonest: set types for flexible fields
Conflicts:
	beetsplug/echonest.py
2014-09-14 12:34:46 +02:00
Thomas Scholtes
f112c9610c Add 'types' plugin for flexible field types
Conflicts:
	beets/library.py
2014-09-14 12:34:46 +02:00
Thomas Scholtes
1526720982 Swap 'if not' and 'else' for readability 2014-09-14 11:49:33 +02:00
Thomas Scholtes
9e9f645e59 convert: add cli flag to skip confirmation
The flag mirrors the `--yes` flag from the modify command.
2014-09-14 11:46:24 +02:00
Thomas Scholtes
3197795faa convert: Change file extension only if actually transcoded
This makes the tests from a37cabb969
pass.
2014-09-14 11:27:59 +02:00
Adrian Sampson
af60272cc5 Merge pull request #956 from voidus/master
Added never_convert_lossy_files option to convert plugin
2014-09-13 23:45:16 -07:00
Simon Kohlmeyer
ee6f3dba1b fix coding style errors 2014-09-13 19:51:23 +02:00
Simon Kohlmeyer
9d55179d2d Added never_convert_lossy_files option to convert plugin
When set to true, this config option chooses copying over converting when the
source file is in a lossy format. At the moment, everything except ape, flac,
alac and wav is considered lossy.
2014-09-13 19:07:25 +02:00
robotanarchy
68eae9e683 didn't know about flake... 2014-09-13 17:25:10 +02:00
robotanarchy
5b0b3eee45 importfeeds: add new 'echo' type that writes to stdout 2014-09-13 17:11:00 +02:00
Thomas Scholtes
89c82dc63d fetchart: correctly handle path encoding
* Ensure that `config.as_str_seq()` returns a list of unicode objects.
* Map these to bytestring paths so we can compare them to other paths.

Fixes #887
2014-09-13 16:49:34 +02:00
Adrian Sampson
4d72643b15 Merge pull request #945 from gwern/master
lastbeats: explain that the whitelist has been modified
2014-09-11 12:21:38 -07:00
gwern
971bff95fa lastbeats: explain that the whitelist has been modified
current description sounds like the whitelist is regularly synced and should not be/has not been edited
2014-09-11 14:38:33 -04:00
gwern
35efa7283f genres.txt: rm fake genres
see issue #943; deleted all suggestions except 'early music' which some people may want/find meaningful
2014-09-11 14:37:01 -04:00
Fabrice L.
5a799c7fbe Merge pull request #924 from nrgetik/patch-1
Update genres-tree.yaml using scraping script <https://github.com/nrgetik/genre-cannon>.
2014-09-10 10:23:56 +02:00
Thomas Scholtes
cfe82e9736 convert: Pipepline stage yields result 2014-09-09 23:41:47 +02:00
Thomas Scholtes
114d3f95bd Check conversion against custom format 2014-09-09 22:06:18 +02:00
e5e4eaeacd39c5cfba4d7c852c48277ae50331e6
816e4fb152 clean up after rebase 2014-09-09 11:53:44 +10:00
e5e4eaeacd39c5cfba4d7c852c48277ae50331e6
020ee2b1ed Fix Travis errors
I was over zealous on the brackets for formatting
2014-09-09 11:31:43 +10:00
e5e4eaeacd39c5cfba4d7c852c48277ae50331e6
65de93941d flake8 cleanup
Cleanup after cleanup
2014-09-09 11:28:43 +10:00
e5e4eaeacd39c5cfba4d7c852c48277ae50331e6
66aee8094f Clean up of logging messages as described here
All logging now prefers the ' (single quote) over the " (double quote)

https://github.com/sampsyo/beets/wiki/Hacking
2014-09-09 11:28:43 +10:00
Thomas Gordon
f910ac6a63 Correct busted encoding hopefully 2014-09-06 14:14:15 -04:00
Thomas Gordon
c91c91c7da Merge remote-tracking branch 'origin/patch-2' into patch-1 2014-09-06 14:00:33 -04:00
Thomas Gordon
4c622966e6 Update genres-tree.yaml 2014-09-05 11:13:29 -04:00
Thomas Scholtes
17549b873e info: Show data for each item, not only first one 2014-09-05 16:09:57 +02:00
BrainDamage
bedc17e043 added an option to make the playlists created by play plugin to be
relative to a path much like the smart playlist plugin
2014-09-04 17:46:08 +02:00
Lucas Duailibe
5d343b1951 Display correct number of albums to play
This fixes a bug where the output of beet play for a single album would be: "Playing 12 album."
2014-09-03 22:52:31 -03:00
Thomas Gordon
0bc3836d52 Alphabetize! Thanks @KraYmer 2014-09-03 09:25:13 -04:00
Adrian Sampson
c0ce8c3e54 Changelog for #927 2014-09-02 21:45:35 -07:00
Padraic O'Donoghue
5b57032981 Remove scripts from lyrics 2014-09-03 03:15:34 +01:00
Thomas Gordon
76c8ea4a37 Update genres-tree.yaml
Scraped https://en.wikipedia.org/wiki/List_of_popular_music_genres for the first time since @KraYmer did back in (apparently) October 2011. This should be much more useful now to those who have genre canonicalization enabled. Script is in public repo of mine :)
2014-09-02 16:19:49 -04:00
Adrian Sampson
4b11eed79f Minor cleanup and changelog for #922 2014-08-27 10:55:16 -07:00
Olin Gay
3b82be1a23 Changes for issue -- mbcollection: Automatically update collection on import #793 2014-08-27 10:26:31 +05:30
Adrian Sampson
b869dbed0e info: Add syspath calls
Sorry for interposing, @geigerzaehler. 😃
2014-08-26 10:28:32 -07:00
Thomas Scholtes
71060f1453 info refcator 2014-08-26 18:58:42 +02:00
Adrian Sampson
2518f654bf info: Two minor fixes
* Decode query arguments before constructing query.
* Don't print "None" for the path in summary mode.
2014-08-26 09:16:27 -07:00
Thomas Scholtes
3554c0925c Fix doc and flake8 build (again) 2014-08-26 12:44:23 +02:00
Thomas Scholtes
fe0a2482f3 info: add --summarize option
Closes #409.
2014-08-26 12:32:26 +02:00
Thomas Scholtes
5e4600afd8 info: add tests and omit None values 2014-08-26 12:01:53 +02:00
Thomas Scholtes
9774692dc8 PEP8 fixes 2014-08-26 11:55:36 +02:00
Thomas Scholtes
9d0156e0da info: Check if normalized path is file 2014-08-26 11:54:12 +02:00
Thomas Scholtes
b278db42be info: print library fields and sort output 2014-08-25 23:47:16 +02:00
Thomas Scholtes
a9f839bbf8 info: Specify files through library query 2014-08-25 23:01:02 +02:00
Andrii Kohut
4279ac0b67 New api requires client and dict as parameters for Release initialization 2014-08-25 20:22:47 +03:00
Andrii Kohut
34584eadd1 Works faster then checking each result item with isinstance 2014-08-25 19:14:41 +03:00
Thomas Scholtes
c0b248c4a2 convert: Catch errors when writing tags
Fixes #878.
2014-08-25 14:52:40 +02:00
Adrian Sampson
900e44f1b9 Merge pull request #910 from andriykohut/master
Fix problems with new discogs_client version
2014-08-24 10:17:16 -07:00
Andrii Kohut
f8af931caa Seems like something broken in new version of discogs_client 2014-08-24 17:34:31 +03:00
Thomas Scholtes
b512a0ce37 lyrics: Use multiple lyrics search strings.
In particular we use the original artist and title before stripping
*and* and *featuring* suffixes.

Fixes #914.
2014-08-24 16:17:21 +02:00
Andrii Kohut
9a80179059 this should fix UnicodeEncodeError with non-ascii queries 2014-08-24 16:37:24 +03:00
Andrii Kohut
d0115f1110 set user agent as Client parameter, remove imports 2014-08-23 13:12:28 +03:00
Andrii Kohut
a663e52bad Fix problems with new discogs_client version 2014-08-23 13:00:25 +03:00
Adrian Sampson
eb579cf14b Merge pull request #823 from PierreRust/sortquery
Sorting support in beets query mecanism (dbcore)
2014-08-22 14:59:44 -07:00
Adrian Sampson
e52ca41456 Changelog and style for #908
Use a defaultdict for more idiomatic collection.
2014-08-21 23:11:23 -07:00
Rui Gonçalves
7c196799e5 Add support for releases with multiple versions of the same recording 2014-08-21 23:35:27 +01:00
Adrian Sampson
4f2fe19e03 Flake8 fix in spotify 2014-08-19 09:53:26 -07:00
Adrian Sampson
d8c4be100d Spotify: Use logging (#892)
Instead of one-off logging functions. This also obviates the need for a
separate verbose flag.
2014-08-18 22:30:42 -07:00
Adrian Sampson
ff875c5d61 Spotify (#892): Simplify interface
This changes the flag from --show_failures to --show-failures, which is more
standard among Unixy CLIs. It also reduces some space and line noise in the
output.
2014-08-18 17:29:58 -07:00
Olin Gay
9330e49013 Change spottily plugin output to use syserr for everything except printing the plugin tracks. Allows output to be piped. 2014-08-17 10:36:41 -04:00
Olin Gay
d076e14515 Complete PEP8 cleanup of spotify plugin 2014-08-17 09:53:54 -04:00
Olin Gay
6bab9a2cae Merge branch 'master' of https://github.com/sampsyo/beets into spotify-plugin 2014-08-17 08:36:32 -04:00
Adrian Sampson
7de6259c1d MediaFile: make id3v23 a constructor parameter
For #899, we need to change MediaFile's behavior (pre-write) based on whether
we're doing ID3v2.3 or not. So we need a field on the object, not a parameter
to `save()`.
2014-08-15 12:09:18 -07:00
Adrian Sampson
af3bdd8a66 echonest: Log on retries (for mersault_) 2014-08-11 16:52:37 -07: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
Olin Gay
ce4b45ec76 Pull request for Spotify plugin development, see: https://groups.google.com/forum/#!topic/beets-users/2xsOZC-NMNk 2014-08-03 19:55:50 -04: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
Adrian Sampson
51123d901b Fixes for chroma.auto (#888, fix #629) 2014-07-25 21:28:52 -07:00
dettrittus
e1d2b5220c Add 'auto' option in acoustid(Fix #629) 2014-07-25 23:40:23 -04:00
PierreRust
3130a6add9 Minor changes from review (mostly style) 2014-07-24 12:51:21 +02:00
nrgetik
8cc4f96548 Update genres-tree.yaml
funkd is clearly a typo
2014-07-18 11:49:29 -04:00
aroquen
090a51597d New bpm plugin to determine bpm from keystrokes 2014-07-14 02:35:07 +02:00
Adrian Sampson
711b1a5bb1 Merge branch 'sotho-master' 2014-07-01 14:38:02 -07:00
Adrian Sampson
bc35015251 Changelog for #847 (fix #805) 2014-07-01 14:29:35 -07:00
Adrian Sampson
59da6c851d Merge pull request #847 from KraYmer/issue805
lastgenre: remove duplicate genres
2014-07-01 14:27:51 -07:00
Adrian Sampson
588ecd0d7b Changelog & style for #846 (fix #836) 2014-07-01 14:22:16 -07:00
Adrian Sampson
4eb49d835e Merge pull request #846 from KraYmer/issue836
Cover images prioritization
2014-07-01 14:18:12 -07:00
Alexander Elbs
77d303b673 A few artists use three digits, e.g. 112 or 209. They are detected as a
year instead of an artist. Improve the heuristic by only allowing four
digits to be a year.
2014-06-30 20:55:28 +02:00
Alexander Elbs
9ca816f247 the bucket plugin transforms a pattern like 'A - D' into something that
matches all letters starting with A to D (upper and lower case). This
change allows to put more artists into that bucket. E.g. artists
starting with ä or Ä and 0 to 9 and … (three dots)

Example config for overriding a bucket pattern:

  bucket:
     bucket_alpha: ['A - D', 'E - L', 'M - R', 'S - Z']
     bucket_alpha_regex:
       'A - D': ^[0-9a-dA-D…äÄ]
2014-06-30 20:55:28 +02:00
Fabrice L.
eb2dbdc314 flake8ness 2014-06-28 10:35:54 +02:00
Fabrice Laporte
df47f19e86 lastgenre: remove duplicate genres 2014-06-28 10:31:12 +02:00
Fabrice Laporte
e16beb8d40 sort image names before checking for matches
images that contain substring that comes first in the cover_names
option list are prioritized
2014-06-27 23:44:12 +02:00
Yevgeny Bezman
2f9fe91121 replaygain: restore flake8 cleanliness 2014-06-27 20:02:11 +03:00
Yevgeny Bezman
b019e6a5c0 replaygain: silenced errors during import. Fixes #732 2014-06-27 19:50:41 +03:00
Pierre Rust
1303a915c1 Sort implementation
* sort can be sepcified using the 'field_name'(+|-) syntax
 * supports fixed fields and flexible attributes
 * includes plugins fix for API changes (might have missed some)
2014-06-15 22:32:25 +02:00
Adrian Sampson
4940958148 Fix #822: scrub/convert plugin conflict
We now correctly scrub the destination of a conversion, not the source.
2014-06-14 16:08:49 +01:00
Bruno Cauet
469ec40c0f Zero plugin: do not zero important fields
Prevent zeroing fields id, album_id and path.

Fix issue #475.
2014-06-08 17:26:17 +02:00
Johann Klähn
b590cfebf2 mpdstats: update rating on 'stop' (e.g. last song in playlist)
Fixes #772
2014-06-04 15:41:15 +02:00
Adrian Sampson
48189b4a54 keyfinder: Unicode literals in logging call
Log messages should *always* be Unicode. I wish we had a flake8 checker for
this...
2014-06-02 22:12:57 -07: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
Lucas Duailibe
e3c86f24ae Fix lint error :) 2014-05-25 19:30:16 -03:00
Lucas Duailibe
d1d166b5b5 Enable use of files with play -a (closes #776)
This commit changes the output of the play plugin to always use files instead of folders when generating a playlist when using the `-a` option. A new `use_folders` option was added to preserve the old behavior for anyone who wishes it.
2014-05-25 18:47:02 -03:00
Alessandro Ghedini
331674159b Print all readable fields in info plugin
This includes all audio properties (format, bit rate, channels, ...) too.
2014-05-22 16:43:59 +02:00
Adrian Sampson
3d12508cc1 Fix default config (#767) 2014-05-18 15:31:56 -07:00
Adrian Sampson
2b227f57f8 Undo variable name obfuscation (#767) 2014-05-18 15:22:10 -07:00
Adrian Sampson
9ec26f7402 Merge pull request #767 from ghedo/play_cmd
Support commands with options in play plugin
2014-05-18 15:21:09 -07:00
Adrian Sampson
dfa8445980 Style and wording for Google Images (#766) 2014-05-17 22:10:39 -07:00
Adrian Sampson
7f675dbf64 Merge branch 'Lemutar-master' 2014-05-17 22:02:09 -07:00
Adrian Sampson
32a3da5961 Clarify dependencies for RG GStreamer backend 2014-05-17 13:21:55 -07:00
Lemutar
c890384215 add a test, replace urllibs , update help 2014-05-16 10:56:55 +02:00
Alessandro Ghedini
0f20651f8b Support commands with options in play plugin
This adds support for specifying additional options in the command config value
for the play plugin. Example:

play:
    command: /usr/bin/command --option1 --option2 some_other_option
2014-05-15 11:07:58 +02:00
Lemutar
eb8048f54d add picture fetch over for google search 2014-05-14 21:23:28 +00:00
Stig Inge Lea Bjørnsen
e800c9cc62 Plugin rename importmtimes -> importadded.
This includes some minor changes to the documentation.
2014-05-14 00:05:44 +02:00
Stig Inge Lea Bjørnsen
34c256925e Fix style errors reported by Flake8. 2014-05-14 00:05:44 +02:00
Stig Inge Lea Bjørnsen
f8abd50090 Only delete album item mtimes that are in the dictionary. 2014-05-14 00:05:44 +02:00
Stig Inge Lea Bjørnsen
94aad7e309 Record mtimes instead of pre-import paths.
This adds support for move imports.

Item and file mtime preservation is now configurable and disabled by
default.
2014-05-14 00:05:44 +02:00
Stig Inge Lea Bjørnsen
0bf4222947 Add importmtimes plugin for preserving file mtimes during copy imports.
File modification times are stored as item.mtime, item.added and
album.added.
2014-05-14 00:05:44 +02:00
Adrian Sampson
5a1fa9e3f1 Merge pull request #743 from udiboy1209/master
Fix web plugin scroll and lyrics newline bug
2014-05-12 22:43:11 -07:00
udiboy1209
ac7646f0f4 Fix alignment of play button with logo 2014-05-11 19:21:50 +05:30
Adrian Sampson
7310f6e945 Documentation tweaks for bucket (#747) 2014-05-10 17:14:35 -07:00
Fabrice Laporte
02f7e78fd3 fix flake8 warnings 2014-05-10 10:57:44 +02:00
Fabrice Laporte
21feab7ab1 add tests to check bad buckets definitions
message is now printed to the user when buckets declared in the config
file cannot be parsed
2014-05-10 10:55:38 +02:00
Fabrice Laporte
0d5050bdce fix handling of digits chars in alpha buckets
Characters were search in string.ascii_lowercase that does not contain
digits chars.
2014-05-08 16:13:17 +02:00
Fabrice Laporte
4add189608 Add option to extrapolate year buckets names
- spans are now tracked via a list of dicts instead of 2 lists
previously (simpler code)
- extend_year_spans() pregenerates all possible ranges at plugin setup
stage
- a BucketError is now raised if declared bucket format not accepted
2014-05-08 01:28:17 +02:00
Fabrice Laporte
509af59d4e cleanup docstrings and add tests 2014-05-04 08:51:11 +02:00
Fabrice Laporte
31569baba7 fix range upper bound + tests added 2014-05-03 23:46:31 +02:00
udiboy1209
07b791dbd3 improve detail display and scrollbar in web plugin
Moved track, format, lyrics, etc. to separate div with id 'extra-detail'
so that theses can scroll independent of the main details(Title, Album, Artist).
Split the templates and javascript rendering objects accordingly.

This has a better scrollbar display than the previous commit.
2014-05-03 21:08:07 +05:30
Fabrice Laporte
581bf768ca add buckets plugin + tests
Add a new template functions %bucket(text, field) for path formatting.
2014-05-03 13:55:21 +02:00
udiboy1209
35eb60c393 More elegant fix to line break display problem for lyrics in web plugin
The javascript `replace` method was previously being used, which worked in a hacky way.
But the more elegant way to do it, as suggested by minitech on this question http://stackoverflow.com/questions/23440298 ,
is to use CSS, and make the browser automatically display white-spaces using `white-space: pre-wrap`
2014-05-03 10:31:02 +05:30
udiboy1209
756f4c4d29 Fix web plugin scroll and lyrics newline bug 2014-05-02 20:54:57 +05:30
Adrian Sampson
6cc643520d Merge branch 'KraYmer-lyrics-integration-sources' 2014-05-01 08:58:07 -07:00
Adrian Sampson
e19632c11d Merge branch 'master' of github.com:sampsyo/beets 2014-04-29 10:23:30 -07:00
Adrian Sampson
54445882d8 replaygain: Log when files are unsupported 2014-04-29 10:23:07 -07:00
Adrian Sampson
362db8f22f Merge pull request #728 from sampsyo/lastgenre-tests-new
Tests for lastgenre (cleaned up)
2014-04-29 08:38:56 -07:00
Adrian Sampson
233f71a457 Use real booleans for whitelist/canonical options
As opposed to the strings "true" and "false".
2014-04-28 23:00:00 -07:00
Fabrice Laporte
ef3c1cd1ff use booleans for whitelist and c14n options
homogenise options setup using booleans, while keeping the empty string
(synonym of ‘true’) for backward compatibility.
2014-04-28 10:31:22 +02:00
Adrian Sampson
d5dbaeff7a lastgenre: Restore default whitelist 2014-04-27 13:54:32 -07:00
Fabrice Laporte
0b3c5ddbe0 Canonicalization only return most common genre 2014-04-27 22:27:20 +02:00
Fabrice Laporte
817b8cc96e Allowing the whitelist to be disabled
By default it is disabled, setting the value to the empty
string will use the built-in whitelist (same behaviour than
c14n).
2014-04-27 22:26:09 +02:00
Adrian Sampson
9f5f70aeab Merge pull request #720 from sampsyo/import-refactor
Import refactor
2014-04-27 09:51:10 -07:00
Adrian Sampson
35b6602795 Use self.config instead of global config 2014-04-26 21:00:59 -07:00
Adrian Sampson
e7af3319f8 lastgenre: Restore min_weight option 2014-04-26 20:59:39 -07:00
Fabrice Laporte
d0d3c18da2 lastgenre: rewrite filtering logic to make tests pass
- remove filter_tags() as genres should not be removed this soon while
c14n has not been applied
- group all filtering logic in the function _resolve_genres (formerly
_strings_to_genre)
2014-04-26 20:51:13 -07:00
Fabrice Laporte
2e8e55736d get rid of module level options variable
Conflicts:
	beetsplug/lastgenre/__init__.py
2014-04-26 20:51:00 -07:00
Fabrice Laporte
499a7b868e Move the filtering logic of '_tags_for' function into a dedicated 'filter_tags' function. 2014-04-26 20:50:04 -07: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
Thomas Scholtes
9090f0979f Use new _embed api 2014-04-26 19:44:29 +02:00
Thomas Scholtes
9b88525736 Make function to embed art agnostic of items 2014-04-26 19:41:44 +02:00
Fabrice Laporte
74898347c0 is_page_candidate() handle more languages
Add translations in spanish and german for tokens to
ignore when comparing an url title with a song title.
2014-04-26 19:25:25 +02:00
Fabrice Laporte
8ba91a49c6 change chars replacements done by slugify()
adapt slugify() to make it return strings that can be used
as yaml keys (no spaces, etc.)
adapt is_page_candidate() accordingly
2014-04-26 19:22:40 +02:00
Fabrice Laporte
567e6300fd fix flake8 2014-04-26 07:27:13 +02:00
Fabrice Laporte
117d16f2ad lyrics: add tests to track which websites can be scraped by our algo and be
used as sources fot the google custom search engine.
2014-04-26 07:26:50 +02:00
Thomas Scholtes
e96753f96a Plugins use import_task.album 2014-04-25 13:52:03 +02:00
Thomas Scholtes
73a1b63f7d Catch and log file errors when embedding images
Fixes #723.
2014-04-25 12:33:19 +02:00
Adrian Sampson
80bec3935e config name change, changelog for #692 2014-04-22 14:50:54 -07:00