Commit graph

2921 commits

Author SHA1 Message Date
Adrian Sampson
0131ce263d badfiles: Better logging and error handling (#2428) 2017-02-04 13:42:24 -06:00
Jeffrey Aylesworth
8638157e17 Change license and email address in mbcollection plugin. 2017-01-30 23:37:01 -05:00
wordofglass
bc582701ff fetchart: Internally pass settings in a cleaner way.
Dump the 'extra' dictionary which only duplicated attributes of the
plugin onject in favor of passing a reference to the plugin directly.
2017-01-25 00:01:05 +01:00
Artem Utin
40eef2056c Add changelog entry, wrap long comment lines. 2017-01-24 11:41:55 +10:00
Artem Utin
2ab1f3ae89 More general approach to multiple on_play calls for the same song - now it ignores such calls, if time between calls was below threshold 2017-01-23 23:15:14 +10:00
Pauligrinder
ca8832809d Removed a couple of unnecessary imports
json and requests.BasicAuthentication
2017-01-23 13:14:36 +02:00
Pauligrinder
77d155cdea Add a plugin to update a Kodi music library
I created one for an older version before, but it didn't work since the change to Python 3. So I created a new one that works.
2017-01-23 12:43:40 +02:00
Adrian Sampson
44963598e8 Remove unused import 2017-01-21 23:32:36 -08:00
Adrian Sampson
ca904a9d0c mpdstats: Fix Python 3 compatibility (fix #2405)
We previously needed a hack to get the client to consume and produce Unicode strings. The library has since added Unicode support, behind a constructor flag. We can remove the hack now, which was causing a crash on Python 3 because the library uses Unicode by default there, and instead use its built-in support.
2017-01-21 23:21:11 -08:00
Adrian Sampson
958ad430fc bpd: Use integers for time values (fix 2394) 2017-01-17 11:37:10 -08:00
Steve Johnson
926dce241c Use util.displayable_path instead of naive .decode() 2017-01-15 11:25:03 -08:00
Steve Johnson
e3707e45f3 Maybe fix code and tests for Windows 2017-01-15 11:21:59 -08:00
Steve Johnson
e2be6ba781 Query path with bytestring. Might fix tests. 2017-01-15 11:21:59 -08:00
Steve Johnson
4434569ddc beets.library.Library adds custom bytelower function to all connections, not just one 2017-01-15 11:21:59 -08:00
Steve Johnson
866a650bc0 Rename /item/by_path to /item/path and use PathQuery instead of direct file access 2017-01-15 11:21:33 -08:00
Steve Johnson
05bc4996a8 Rename and invert new config option 2017-01-15 11:21:33 -08:00
Steve Johnson
50ea74635b Fix tests I broke 2017-01-15 11:21:33 -08:00
Steve Johnson
f6cb46d490 Fix broken tests (no new ones yet) 2017-01-15 11:21:33 -08:00
Steve Johnson
43936cd84c /item/at_path/ endpoint
More at_path

/item/by_path docs
2017-01-15 11:21:33 -08:00
Steve Johnson
29d61ca634 web.exclude_paths_from_items option
More exclude_paths_from_items
2017-01-15 11:21:33 -08:00
Mike Cameron
c58c49d77f Fixed trailing whitespace issue. Changed alternate track property name. 2017-01-10 18:39:01 -05:00
Mike Cameron
24b02e8215 Merge remote-tracking branch 'upstream/master' 2017-01-10 17:33:45 -05:00
Adrian Sampson
998e6ac1c7 Remove unused import 2017-01-10 14:54:17 -05:00
Adrian Sampson
bc93a11141 Fix #2382: replaygain backend parsing on Python 3 2017-01-10 14:45:57 -05:00
Adrian Sampson
153b01e5a6 replaygain: Don't muck with logging level
This is now handled by the central logging infrastructure; no need to change
it here. I think this must be a leftover from the era when plugins had to
explicitly muck with their verbosity level, but even still it doesn't make
sense to do set the level to INFO unconditionally...
2017-01-10 14:24:18 -05:00
Adrian Sampson
2706339a83 Fix #2381: mpdupdate on Python 3
Communicate bytes over the socket, obvi.
2017-01-10 12:22:30 -05:00
Adrian Sampson
0b5b20d799 Robust import of distutils submodule (fix #2376)
This would fail if the `spawn` module in the `distutils` package was not
already imported somewhere else.
2017-01-07 17:15:13 -05:00
Adrian Sampson
6b9d766082 Remove compatibility with misspelled config option
This has been hanging around long enough; it's about time to drop the old
name.
2017-01-07 17:09:51 -05:00
Adrian Sampson
c9ec5e411c A little fiddling with embyupdate
Clean up some wording w/r/t efbd58cd55.
2017-01-07 17:07:01 -05:00
Adrian Sampson
ffa22d6ce1 Merge pull request #2360 from diomekes/importer-play
play: Add prompt choice to importer
2017-01-07 17:02:22 -05:00
diomekes
8d613425fd small docstring rewrite 2017-01-06 23:46:16 -05:00
Marvin Steadfast
efbd58cd55 embyupdate: fix bug that config for password and api is needed
even if it only used api key it needed the password key. this is fixed
now.
2017-01-06 11:52:53 +01:00
diomekes
8d97257647 use shlex_split, clean up code and docs 2017-01-03 22:10:35 -05:00
Adrian Sampson
d389ac15e1 Use HTTPS for MS translator API (from #2247) 2017-01-02 21:00:01 -05:00
Adrian Sampson
fbc0f322f6 Merge branch 'tigranl-https_fix' 2017-01-02 20:54:17 -05:00
Adrian Sampson
f941fd42de Always use SSL on servers that don't require SNI
I did a little audit using the `openssl` command-line tool to find the servers
that don't require SNI. Here's what I found:

icbrainz.org: SNI
images.weserv.nl: inconclusive, but docs say yes SNI
coverartarchive.org: SNI
webservice.fanart.tv: *no* SNI
dbpedia.org: *no* SNI
en.wikipedia.org: *no* SNI
ws.audioscrobbler.com: *no* SNI
api.microsofttranslator.com: *no* SNI

In summary, *only* MusicBrainz and CoverArtArchive were found to require SNI.
So I'm using SSL unconditionally on all the other sites.
2017-01-02 20:39:10 -05:00
inytar
a5aee3f677 Absubmit close temporary file
Fix error when deleting the file under Windows
2017-01-02 14:05:59 -05:00
inytar
0975ee709b Absubmit fix failing to load distutils.spawn 2017-01-02 14:05:17 -05:00
Adrian Sampson
f621d7f4f1 Merge pull request #1992 from jackwilsdon/add-write-bpm
Add write option to bpm plugin
2017-01-01 23:09:41 -05:00
Mike Cameron
8a00791ecc Oops. Forgot to actually stage the correct file. 2017-01-01 04:52:32 -05:00
Adrian Sampson
4c1b8c2935 Merge pull request #2342 from inytar/master
Implement the basic AcousticBrainz Submit plugin
2017-01-01 00:45:24 -05:00
inytar
b57b3f761e Add header to the absubmit plugin 2016-12-31 18:27:27 -05:00
inytar
cfe9c0f3d4 Remove fixed TODO comment 2016-12-31 14:11:55 -05:00
Tigran Kostandyan
1c5c74f1d7 Fix a typo 2016-12-31 18:46:01 +03:00
diomekes
ab4246c5db add prompt choice to play items before import
fix line number

add comments
2016-12-30 23:51:20 -05:00
Adrian Sampson
8bb24e3134 lyrics: Set User-Agent header (fix #2357) 2016-12-30 10:55:24 -05:00
Diego M. Rodriguez
3f36f67940
discogs: tweak pruning of empty candidate albums 2016-12-30 11:39:19 +01:00
Diego M. Rodriguez
37cb1c295f
Merge remote-tracking branch 'upstream/master' into discogs-relax-assumptions
Conflicts:
	docs/changelog.rst
	test/test_discogs.py
2016-12-30 10:42:50 +01:00
Diego M. Rodriguez
5f83f8db1f
Merge remote-tracking branch 'upstream/master' into discogs-subtrack-handling
Conflicts:
	docs/changelog.rst
2016-12-30 10:20:58 +01:00
Diego M. Rodriguez
072e6de3ae
discogs: add changelog for #2318, fix typo 2016-12-30 10:17:53 +01:00
Adrian Sampson
1e215aedef Merge branch 'master' of github.com:beetbox/beets 2016-12-29 13:31:00 -05:00
Adrian Sampson
ac41b6d6e5 Fix #2339: scrub resets art type
We now use the richer `images` field instead of the more basic `art` field.
2016-12-29 13:30:17 -05:00
Diego M. Rodriguez
0a9cb1fd3d
discogs: revise subtrack merging based on subindex
Modify the coalescing of subtracks by taking into account the subindices
of the subtracks for deciding if they represent "logical" tracks
(merging them into one single track, as previously) or if they represent
physical tracks (treating them as individual tracks).
Add unit tests for nested logical/physical subtracks, and disc titles.
2016-12-29 18:03:54 +01:00
Diego M. Rodriguez
4364757fcc
Merge remote-tracking branch 'upstream/master' into discogs-relax-assumptions
Conflicts:
	docs/changelog.rst
2016-12-29 13:27:06 +01:00
Diego M. Rodriguez
30f238151e
discogs: additional sanity checks parsing release
Add extra checks for the presence of specific field (artists, title,
id, tracklist) when parsing a Release from discogs, failing gracefully
if the fields could not be found.
Add a test for releases without required fields.
2016-12-29 13:19:01 +01:00
dopefishh
8bb703619f use util.py3_path for web attachment filenames (#2353)
Web attachment filenames must be passed as a string for Python 3
2016-12-29 05:38:27 -05:00
Adrian Sampson
413666a825 Fix #2351: crash in scrub on MediaFile errors 2016-12-28 16:36:51 -05:00
Diego M. Rodriguez
02666424d4
discogs: improve robustness when parsing an album
Improve the robustness of `get_album_info()` by preferring the use of
`get()` over accesing the dictionary keys directly for several fields,
plus adding extra checks for fields that depend on nested containers on
the Release data.
Add a test for parsing a release that contains a minimal amount of
fields.
2016-12-28 21:07:18 +01:00
Adrian Sampson
a414872430 Fix a missing parameter (#2349) 2016-12-28 13:36:19 -05:00
Adrian Sampson
8a62087376 Documentation tweaks for #2349 2016-12-28 12:03:57 -05:00
Adrian Sampson
2a3f3d9bfa acousticbrainz: Make some strings into comments
When not in the docstring position, it's better to use "real" comments instead
of string literals.
2016-12-28 12:01:08 -05:00
Adrian Sampson
c27879edbc Slight code formatting tweaks for #2349 2016-12-28 11:59:14 -05:00
Adrian Sampson
9db79835d6 Merge pull request #2349 from SusannaMaria/#2347
#2347: First hack of ignoring already tagged items
2016-12-28 11:55:21 -05:00
Susanna Maria Hepp
7e1e31bddd E128: continuation line under-indented for visual indent? 2016-12-28 15:30:57 +01:00
Susanna Maria Hepp
165f2e189e Repair findings from Travis CI 2016-12-28 15:11:03 +01:00
Susanna Maria Hepp
00371de0bb Changes suggested by @sampsyo 2016-12-27 21:56:39 +01:00
Susanna Maria Hepp
c632949b64 Changes suggested by @Kraymer 2016-12-27 21:48:06 +01:00
nath@home
8e29a3ffcb Zero: Last minute unimportant fixes:
*Remove the artifact of a debug log.
*Remove meaningless version number.
*Rephrase some docstrings.
*Remove tautological comments.
2016-12-27 19:13:29 +01:00
Susanna Maria Hepp
bbaad2f17d Introduce force option in acousticbrainz 2016-12-27 13:22:16 +01:00
Susanna Maria Hepp
f93ee3accc First hack of ignoring already tagged items 2016-12-26 23:54:24 +01:00
Adrian Sampson
a92323945e Merge pull request #2329 from SJoshBrown/master
Add manually triggered mode for zero plugin
2016-12-26 17:29:17 -05:00
Adrian Sampson
641e62f2e0 Vastly simplify main random function
This is the payoff from the earlier refactorings: the control flow is now
consistent and clear, and the two factors (time vs. number, equal-chance or
not) are orthogonal. See also #2322.
2016-12-26 17:04:21 -05:00
Adrian Sampson
33eb4ff91b Refactor time-based selection (#2322) 2016-12-26 17:01:02 -05:00
Adrian Sampson
d053f98e81 random: Refactor equal chance logic 2016-12-26 16:43:47 -05:00
Adrian Sampson
5bbf16c2b1 Refactor length calculation (#2322)
Also, avoid setting an unnecessary field on the album objects. :/
2016-12-26 16:32:03 -05:00
Adrian Sampson
4c2457d6ce Refactor random plugin a bit
Separate the callback function from the random selection logic.
2016-12-26 16:27:31 -05:00
inytar
146516704f Update comments for clarification 2016-12-26 16:11:48 -05:00
Adrian Sampson
9adfcbddd1 Merge pull request #2322 from diomekes/random-timelimit
random: add --time option, update docs
2016-12-26 16:08:14 -05:00
inytar
b86187089b Update errors and logging of ABSubmit plugin
A UserError is now raised if the plugin can be started.
If an item fails to be analyzed or be submited an error is logged and
the next item is tried.
2016-12-26 16:05:10 -05:00
Josh Brown
b6577b4226 refactor long line for PEP8 2016-12-26 14:42:10 -06:00
Josh Brown
7833469261 add confirmation for empty query 2016-12-26 14:13:01 -06:00
Josh Brown
2903925e2f Rewrite zero plugin manual mode 2016-12-26 13:34:34 -06:00
nathdwek@laptop
96d331ace0 Zero: cleanup plugin 2016-12-24 19:13:10 +01:00
inytar
f61aa7a016 Move extractor sha calculation to pluging init. 2016-12-23 17:48:29 -05:00
inytar
fd3ff917d2 Implement the basic AcousticBrainz Submit plugin 2016-12-23 17:27:46 -05:00
Adrian Sampson
a063336446 Fix #2332: Unicode trouble in bpd 2016-12-20 15:16:46 -05:00
diomekes
1bc5456986 random: make --album work with --time 2016-12-17 17:24:58 -05:00
Kier Davis
eb85ff422b
convert plugin: fix braces in filenames causing tracebacks in "pretend" mode
Previously "pretend" mode (a.k.a. dry run mode) passed the command to be
printed directly to _log.info, whose first argument is technically a
format string. Thus the command string was parsed for replacement fields, such
as '{foo}', which could cause the format evaluation to fail if the filenames
contained in the command contained valid (or partially valid) replacement fields.

This fix simply inserts an argument '{0}' to the call to _log.info, which is a
format string that simply evaluates to the second argument to _log.info (the
command string). By doing this, the command string is not parsed for replacement
fields.
2016-12-16 00:21:35 +00:00
diomekes
fc8411f3b8 random: add --time option, update docs 2016-12-15 16:15:38 -05:00
tigranl
dd115b1310 Add ui import 2016-12-11 00:35:51 +03:00
tigranl
5ca664e4aa Fix typos 2016-12-11 00:25:37 +03:00
tigranl
471f875dc1 Fix typo 2016-12-10 21:26:51 +03:00
tigranl
68b4a03ecd Add tests for https 2016-12-10 19:54:44 +03:00
Johnny Robeson
bca6d2af01 Remove requests/urllib3 logging override in discogs
Discog plugin overrides the global logging for `requests` for a reason
that seems no longer valid.

I can't seem to reproduce the logging behavior mentioned in the
preceding comment, so I'm removing it.

If we do want to modify `requests` logging in the future, then we should
hook it into beets verbose logging.
2016-12-09 00:52:24 -05:00
tigranl
b65a7da8e2 Add SNI_SUPPORTED 2016-12-08 19:20:18 +03:00
tigranl
21208b8c39 Add SNI_SUPPORTED 2016-12-08 19:09:15 +03:00
tigranl
efa90416a0 Add SNI_SUPPORTED
Add SNI_SUPPORTED
2016-12-06 19:51:15 +03:00
tigranl
d065b33a81 Add SNI_SUPPORTED variable for https check 2016-12-06 18:42:01 +03:00
tigranl
73a7a4ff67 Add SNI_SUPPORTED variable for https check 2016-12-06 18:38:26 +03:00
tigranl
0fb19cfa10 Merge branch 'master' of github.com:beetbox/beets into https_fix 2016-12-06 16:20:54 +03:00
tigranl
6ba5099034 Python version check for lyrics.py 2016-12-06 16:17:25 +03:00
Adrian Sampson
991c9936fd Fix #2299: non-Unicode logging in badfiles 2016-12-03 11:20:06 -05:00
anshuman73
430369062b Fixed a small typo 2016-11-29 00:28:38 +05:30
nath@home
147ced9eaa acousticbrainz: latest adjustments
* Readability and consistency
* Better logging: warn by default for attributes that were not found,
  but don't drown user with info when everything is going well.
2016-11-20 22:45:07 +01:00
nathdwek@laptop
eb1ea6177d acousticbrainz: drop DefaultList, be explicitly careful
* I don't see DefaultList be really helpful in many other cases, so having
  a beets.util.collections module (which could also conflict with the collections
  module from standard library) with only that in it is a little silly.
* It was elegant and concise, but there are implementation issues: it is not
  recommended to subclass builtin types, but the alternatives differ between python
  2 and 3 (subclass sequence or container or collections.abc?), moreover,
  interpreters can differ in the way they map syntaxic sugar to magic functions.
* Also, slicing and negative indexing could do weird things, so the class wouldn't
  be really intuitive and simple at the same time
2016-11-20 22:03:41 +01:00
nathdwek@laptop
1d972b9907 acousticbrainz: rewrite _map_dict_to_scheme:
* Less lazy names
* Separate root function from childs more naturally
* Actually use defaultdict
2016-11-20 22:03:41 +01:00
nathdwek@laptop
324c67191d acousticbrainz: log fetched attributes and values as info 2016-11-20 22:03:41 +01:00
nathdwek@laptop
3979619f9f acousticbrainz: remove redundant comments 2016-11-20 22:03:41 +01:00
nath@home
7a676400dc acousticbrainz: Refactor the json handling part 2016-11-20 22:03:41 +01:00
nath@home
1963b52903 acousticbrainz: Initial cleanup 2016-11-20 22:03:41 +01:00
Adrian Sampson
62e9a15f4d Fix a copy n' paste error found by flake8 2016-11-16 12:03:07 -05:00
nath@home
2e78628507 convert: Don't ask for confirmation if query result is empty 2016-11-13 17:46:29 +01:00
nath@home
d53b677e0f convert: initial cleanup of convert_func
Get cli options and configuration in a more readable, uniform way
2016-11-13 00:20:01 +01:00
michaelbub
0a88338f8b obey style guide 2016-11-11 16:23:32 +01:00
michaelbub
0bdc621d99 sanitizing playlist name AFTER values have been filled in and updated test accordingly 2016-11-11 15:21:34 +01:00
michaelbub
5942adba01 fixed/updated test to consider sanitized playlist names 2016-11-11 10:07:25 +01:00
michaelbub
3e53d4caff sanitize playlist names
Make e. g.
- name: $albumartist/$year-$album.m3u'
work when album data includes non fs-friendly characters
2016-11-10 13:05:18 +01:00
root
f37df2dbd4 Whitespace for flake8. 2016-11-08 16:56:13 -08:00
root
acd5c6404f missing plugin, modify "missing" attribute by modifying album_types,
making it of type INTEGER. also changelog for above.
2016-11-08 16:23:57 -08:00
nathdwek@laptop
a0877dc092 images: Make sure all jpegs work everywhere
Apply #1545 to a public function used everywhere
2016-11-08 18:48:44 +01:00
Max Ammann
7242c5ed03 Revert "Expose the relative path to the library instead of omitting the 'path' variable"
This reverts commit 5e8ac9e4a5, because of
a slowdown. Resolves #2182.
2016-10-26 23:08:44 +02:00
kooimens
373cf19f8b Fix discogs disc field is set to zero
Fixes #587. The disc field is only zero when there is only one medium, so I think this will do the trick. I wasn't able to reproduce the real problem within the code. This is just a small workaround.
2016-10-17 19:51:03 +02:00
Diego Moreda
1f4bef9e61 discogs: docstring style fix 2016-10-10 20:30:21 +02:00
Diego Moreda
f4907ca5d0 discogs: handle nested subtracks, add try block
Modify coalesce_tracks() in order to handle the case where subtracks
are defined inside an index track (as `sub_tracks` attribute),
reorganizing the if logic to avoid duplicated code.

Add a try..catch block enclosing the call to clean_tracklist, as a
measure for avoiding side effects (and reverting to just parsing the
raw_list if there are any problems).
2016-10-10 19:59:42 +02:00
Diego Moreda
fb398c5f2c discogs: add medium_total to tracks (#415) 2016-10-10 17:46:41 +02:00
Diego Moreda
1148acaaf1 discogs: revise position regexp, add tests, tox
Revise the regular expression used for extracting information from a
discogs position, making the subtrack_index only be matched if one of
the other groups is matched as well. Split the definition into several
lines in order to try to document it a bit more clearly.
Add unit tests for position parsing and non standard positions.
Fix the underscore on tox dependency.
2016-10-10 17:42:27 +02:00
Diego Moreda
e7f2a111e4 discogs: add test dependencies, fix spelling 2016-10-09 17:57:36 +02:00
Diego Moreda
be223d966e discogs: coalesce subtracks (#1543)
Detect subtracks and merge them into a single track, taking into account
the index tracks if present. This includes a revision of the regular
expression used for converting a discogs "position" into medium, medium
index and subtrack index pieces, following the standard discogs
positions (12.2.9).
2016-10-07 19:09:09 +02:00
Diego Moreda
c55885c9e8 discogs: take into account two-sided media (#1762)
Revise the discogs plugin so two-sided mediums are taking into account
and each pair of consecutive *sides* is treated as single *medium*.
2016-10-07 19:01:50 +02:00
Diego Moreda
911117ef49 discogs: set media on tracks (#1921)
Set the media for all the tracks when fetching a release using discogs,
as autotag.apply_metadata requires it in order to work properly.
2016-10-06 19:49:43 +02:00
Adrian Sampson
4ae02e0d27 Merge pull request #2211 from heylookltsme/better-genre
Proposal: Add specificity option to lastgenre plugin
2016-09-27 09:07:39 -04:00
Corinne Hoener
a7e3bf2d0b third time's a charm 2016-09-27 06:21:51 -04:00
Corinne Hoener
1c9202cc86 moar indents! 2016-09-26 21:21:15 -04:00
Corinne Hoener
c10fe1e126 change option name to prefer_specific 2016-09-26 19:06:34 -04:00
Corinne Hoener
be5ce3194f better syntax; better comments 2016-09-26 19:02:10 -04:00
Corinne Hoener
288ff6ba19 Add specificity option to lastgenre in order to prefer the most specific genres 2016-09-26 16:13:04 -04:00
Fabrice Laporte
0140f2f287 Merge pull request #2206 from Kraymer/issue2205
Issue2205: search for lyrics using part of song title preceding ':'
2016-09-25 21:24:56 +02:00
Fabrice Laporte
7226624405 replace strip_part() by generate_alternatives()
Delegate the update of titles and artists lists to the helper
generate_alternatives() function.
2016-09-25 19:37:14 +02:00
Fabrice Laporte
e2703b9a7c always yield item artist and title first
Rather than using an unordered set for storing pairs, append to a list
and build an OrderedDict from it to filter duplicated strings while
keeping order.
2016-09-25 15:46:22 +02:00
Johnny Robeson
3db656a685 use py3_path on gstreamer location prop setters
Location properties require strings, so we give them to them!
2016-09-24 01:16:56 -04:00
Fabrice Laporte
8b4f39da42 lyrics: search for song title part preceding colon. fix #2205 2016-09-23 22:23:32 +02:00
Fabrice Laporte
4b702b338e lyrics: reduce code duplication in search_pairs() 2016-09-23 22:21:00 +02:00
Johnny Robeson
6b73aa25d2 Use b'' in discogs medium query regex
Since the first arg to `re.sub()` is bytes, thus must be the
replacement string.
2016-09-20 17:38:39 -04:00
Johnny Robeson
db782a2404 wrap 2 results in a list in cue and random plugin 2016-09-14 00:40:53 -04:00
Cody W. Opel
d384b07914 fromfilename: fix dict view conversion for python3 (fix #2195)
dict.values() returns a view rather than a list in python3
2016-09-12 09:29:32 -04:00
Adrian Sampson
d00c0fb5cf Replace varargs_callback in duplicates
Now you just use `-k KEY1 -k KEY2`, which seems more natural to me anyway.
2016-09-10 05:13:06 -04:00
Adrian Sampson
f8a8388e0c Avoid using None when format is unspecified 2016-09-07 21:47:31 -04:00
Adrian Sampson
15a5512ea5 Require Unicode format strings
Fallout from #2188. Following @jrobeson's suggestion, I just turned the check
in LibModel.__format__ into an assert. This turned up a few badly-behaved
clients, which are also fixed.
2016-09-07 21:42:59 -04:00
Adrian Sampson
ed8d04f594 Unicode templates in duplicates (fix #2188) 2016-09-07 21:04:05 -04:00
Johnny Robeson
7a2bdf502f s/utf8/utf-8/ in all encoding/decoding contexts
This matches up with the python documentation.
2016-09-06 23:10:24 -04:00
nathdwek@laptop
3acd44260a Apply #2175 to mpdstats to keep consistency 2016-08-26 18:17:37 +02:00
Thiago de Arruda
9963fd0432 mpdupdate: Support $MPD_HOST environment variable.
This environment variable is also used by mpc. See
http://linux.die.net/man/1/mpc for details.
2016-08-26 11:36:39 -03:00
Marvin Steadfast
5592499b31 embyupdate: backwards compatible hostname
`host` takes `localhost`, `http://localhost` and `https://`.
2016-08-26 12:28:48 +02:00
Marvin Steadfast
a282d4abc5 embyupdate: Fix authentication header problem
There was a problem with the authentication header in the latest
versions. The header creation function changed to fix that. Username and
passwort authentication should work again.

The `host` config variable takes now a full hostname. For example
`http://localhost` instead of just `localhost`. This makes it easier to
use https hosts.
2016-08-26 10:29:08 +02:00
Johnny Robeson
6bedbd84df removebyte conversion/literals for command args
Paths are obviously untouched.

We definitely don't need these as they are entirely ascii.
2016-08-25 03:37:30 -04:00
Johnny Robeson
4c4d8cff60 s/get(list)/as_str_seq() for keys in duplicates plugin
stolen from @sampsyo in the click branch
2016-08-17 02:18:48 -04:00
Adrian Sampson
0833c82075 web: Fix a crash related to byte paths on Python 3 2016-08-12 19:59:07 +00:00
arogl
86d2129c52 Spelling update 2016-08-12 14:48:55 +10:00
Johnny Robeson
fb78830788 fix incorrect bytes() usages in replaygain
We encode the method and gain offset values to ascii.
2016-08-09 05:17:53 -04:00
Johnny Robeson
d41949d326 close files we open, but forgot to close
This fixes all the obvious `ResourceWarning`s seen in the tests
2016-08-09 01:15:28 -04:00
Johnny Robeson
fcbfce3984 replace deprecated log.warn() with log.warning() 2016-08-09 00:33:38 -04:00
Johnny Robeson
47bddb394c decode yaml dumped data as utf-8 in edit plugin for PY2
Yaml doesn't return a true unicode string even with `allow_unicode`
passed to `safe_dump_all`.
2016-08-08 23:59:54 -04:00
Johnny Robeson
303627e44f Read and write edit plugin yaml as utf-8 2016-08-07 06:12:48 -04:00
Johnny Robeson
5b3cd44608 add coding: utf-8 magic comment to every .py file 2016-08-07 04:09:17 -04:00
Johnny Robeson
304df82361 rename/move ui._arg_encoding to util.arg_encoding
We use this for more than ui concerns, so it should be in util.

It is also no longer marked as a "private" method.
2016-08-04 17:16:11 -04:00
Adrian Sampson
e2981dec4a Merge pull request #2143 from Jell-E/patch-1
Add BPM data with acousticbrainz
2016-07-27 14:58:10 -04:00
Adrian Sampson
c241f09bce Tiny text tweaks for #2144 2016-07-27 14:56:55 -04:00
Adrian Sampson
6f99c4ccd9 Merge pull request #2144 from tweitzel/master
fix bug where $args would be included in the command output
2016-07-27 14:55:20 -04:00
xarph
be7c9d3b67 Remove unneeded if clause since .format will silently pass if the needle
is not found.
Add changelog note.
2016-07-27 11:23:37 -07:00
Adrian Sampson
5e3bbf2aeb Remove remaining links to Google Code (fix #2145) 2016-07-27 13:32:41 -04:00
Johnny Robeson
01483f9600 change most googlecode refs to their new locations 2016-07-27 02:57:04 -04:00
xarph
349a3260f8 Apparently py34-flake8 wants whitespace around operators. 2016-07-26 16:08:52 -07:00
xarph
9fb763e151 fix bug where $args would be included in the command output if $args was
set in config but -A or --args was left off the beet play command.
2016-07-26 15:41:45 -07:00
Jelle Besseling
b4caa0e475 Add BPM data with acousticbrainz
The bpm plugin is a very slow way to add bpm data to songs, using the acousticbrainz plugin is much faster and can doesn't need a new plugin.
2016-07-26 15:42:35 +02:00
Adrian Sampson
58afaf07a5 Switch to new noqa syntax for flake8 3.0
Apparently, `# noqa ignore=X` worked before, but now the syntax is more terse,
like this: `# noqa: X`.

See the changelog here:
http://flake8.pycqa.org/en/latest/release-notes/3.0.0.html
2016-07-25 15:02:10 -04:00
Johnny Robeson
1b103b087b reencode convert args on py3 for util.command_output
command_output requires bytestrings, so we put em back that way.
2016-07-25 04:57:02 -04:00
Johnny Robeson
e5497c7494 use stringed template vars on PY3 in convert plugin
We decode them with `surrogateescape`, so we avoid decoding errors
2016-07-25 03:28:02 -04:00
Adrian Sampson
039825e0e0 Only use CodingFormatter on Python 2 2016-07-24 15:01:06 -07:00
Adrian Sampson
c67fbefc4c A little more spcificity in CodingFormatter 2016-07-24 14:59:31 -07:00
Rob McGhee
84b8cf0ab5 Merge remote-tracking branch 'refs/remotes/beetbox/master' 2016-07-20 21:13:32 +01:00
Johnny Robeson
1da919bc40 open lastgenre genres file with codecs.open()
This should fix an error when decoding the file on Windows. It defaults
to using the code page there and not utf-8 as intended for yaml.
2016-07-17 06:57:38 -04:00
Johnny Robeson
a1edf1928d treat bpd command and args as strings, not bytes 2016-07-10 19:21:52 -04:00
Johnny Robeson
f82f5f51a4 use !r for command exec logging in play plugin
This is a bit simpler and is compatible with py2 and 3.
2016-07-10 06:00:53 -04:00
Johnny Robeson
5107f2e6d2 add missing py3_path to tempdir in convert plugin 2016-07-10 04:59:58 -04:00
Johnny Robeson
17883bc501 replace os.symlink() with util.link() in importfeeds 2016-07-09 22:44:26 -04:00
Johnny Robeson
3db81a3345 bytestringify tmpdir in convert plugin
This works fine in py 3.5, but not 3.4
2016-07-09 03:50:16 -04:00
Johnny Robeson
cb6efc4c22 Reorganize Gst import and version req in bpd
This avoids

```sh
PyGIWarning: Gst was imported without specifying a version first. Use
gi.require_version('Gst', '1.0') before import to ensure that the right
version gets loaded.
```

by silencing E401 import ordering warning
2016-07-08 05:48:26 -04:00
Rob McGhee
2dad86291e Emby API Key
Corrected the use of spaces rather than tabs. Add the option to use an
Emby API key to authenticate rather than a password
2016-07-07 22:46:33 +01:00
Johnny Robeson
c9c37a8f79 adding missing b' to command name checks in replaygain 2016-07-07 03:44:19 -04:00
Johnny Robeson
1119e219b3 adjust bytestring treatment of ext in convert plugin 2016-07-07 03:44:19 -04:00
Rob McGhee
3710c139fb Emby API Key
Add the option to read an API Key from the config file and submit that
instead of needing a password. Doesn't remove the use of password so is
backwards compatible with users current config file
2016-07-06 19:42:57 +01:00
Johnny Robeson
a15ae96616 add a missing text_string in play plugin
I don't think wanna send the cli args as bytes to the logger
2016-07-04 02:48:54 -04:00
Johnny Robeson
b9cd889ef4 decode ipfs item paths to satisy python -bb 2016-07-03 23:52:05 -04:00
Johnny Robeson
527b51147e add py3_path to NamedTemporaryFile suffixes 2016-07-02 04:53:57 -04:00
Johnny Robeson
be08d4b129 replace unichr with six.unichr in lyrics plugin 2016-07-02 02:36:05 -04:00
Johnny Robeson
9020dc1f45 use text_string() in a few places for io output 2016-07-02 00:03:46 -04:00
Johannes Baiter
4c324fae2a beatport: Use track numbers from API (#2091)
* beatport: Use trackNumber from API instead of enumerating the tracks

* beatport: Set medium_index to track number

* Update changelog with fixes to beatport plugin
2016-06-29 20:34:05 +02:00
Adrian Sampson
a6098928f5 Merge branch 'master' of github.com:sampsyo/beets 2016-06-29 10:33:00 -07:00
wordofglass
e2c6547635 fetchart: Clarify the deprecation of remote_priority in docs and
warning, closes #2092
2016-06-29 19:18:06 +02:00
Johnny Robeson
6b3cc6ff37 adapt print_() callers to send unicode strings 2016-06-29 03:17:02 -04:00
Adrian Sampson
192dd321f1 permissions: Add debug logging 2016-06-28 10:53:23 -07:00
Adrian Sampson
890b9e81e3 Fix #2089: correct permissions configuration
This reverts the change in 44380db6e8, where we
lost the ability to "reinterpret" decimals in the YAML configuration file as
octal permissions values.
2016-06-28 10:51:13 -07:00
Adrian Sampson
84bfbe95b9 permissions: More helpful logging (#2089) 2016-06-28 10:39:35 -07:00
Adrian Sampson
b099503a6c permissions: Use correct path conversions
It looks like the original author mistook `bytestring_path` for `syspath`.
2016-06-28 10:31:57 -07:00
Adrian Sampson
e33c19a3e9 permissions: Use proper logging (#2089)
Refactored so we can use the proper logging infrastructure instead of `print`.
2016-06-28 10:29:26 -07:00
Christoph Reiter
629241efd3 mediafile: Cleanup mutagen error handling
Instead of the individial mutagen format exceptions use the
mutagen.MutagenError exception introduced in 1.25.

Since 1.33 mutagen will only raise MutagenError for load/save/delete
and no longer raise IOError. Translate both errors to UnreadableFileError
to support older and newer mutagen versions. Unify error handling
in __init__(), save() and delete().

Since it's no longer possible to get an IOError from MediaFile, adjust
all callers and tests accordingly.

This was tested with mutagen 1.27 and current mutagen master.
2016-06-28 16:43:34 +02:00
Max Ammann
5e8ac9e4a5 Expose the relative path to the library instead of omitting the 'path' variable 2016-06-26 19:53:57 +02:00
Max Ammann
2ae26548fc Modified and simplified is_expand(...) method 2016-06-26 19:53:57 +02:00
Max Ammann
619344c813 Added documentation for the expand parameter 2016-06-26 19:53:57 +02:00
Max Ammann
041adf47ac Fixed lines which are mor than 79 characters 2016-06-26 19:53:57 +02:00
Max Ammann
5831b99b9f Adding 'expand' flag for json requests
This allows you to query the individual items of an album
2016-06-26 19:53:57 +02:00
Adrian Sampson
a8b039da78 Remove a spurious six use
I'm not sure what that `encode` was doing anyway.
2016-06-25 19:24:59 -07:00
Adrian Sampson
5efd5b21c5 Use new as_str method
Instead of `get(six.text_type)`, which was a surprisingly large portion of our
uses of six.
2016-06-25 19:16:14 -07:00
Adrian Sampson
de62a59d35 Remove an unnecessary six.range use
Ordinary `range` works fine here.
2016-06-25 18:39:29 -07:00
Adrian Sampson
e16cc58cb9 Walk back some six.iter* uses
In places where it doesn't much matter whether we use an iterator or the old
Python 2 list way, using the six name just hurts legibility.
2016-06-25 18:29:55 -07:00
Adrian Sampson
349a6e6c1d Fix an erroneous six usage in fuzzy 2016-06-25 18:11:15 -07:00
Adrian Sampson
736ad66518 Merge pull request #2066 from beetbox/use-six
Use the six package to handle py2/p3 compatibility
2016-06-25 18:09:56 -07:00
wordofglass
5d00ca8bda fetchart: do not unnecessarily reset Candidate.path on download failure 2016-06-25 14:10:55 +02:00
wordofglass
697291b04e fetchart: improve error resilience of the Content-Type detection by file magic 2016-06-25 14:10:50 +02:00
wordofglass
9968288358 fetchart: update comments 2016-06-25 13:49:15 +02:00
Johnny Robeson
b6678019ea use @six.python_2_unicode_compatible 2016-06-24 05:53:56 -04:00
Johnny Robeson
78334876c3 treat HTMLParseError as a noop when missing
Strict mode no longer exists in html.parser on python >= 3.5, and no longer means anything on python >= 3.3
2016-06-24 05:53:56 -04:00
Johnny Robeson
edb1cbc5fc replace iter{items|values} with six.iter{items|values} 2016-06-24 05:53:55 -04:00
Johnny Robeson
83f6ba3ce4 handle metaclasses with six 2016-06-24 05:53:55 -04:00
Johnny Robeson
e57b7faf69 replace basestring with six.text_types 2016-06-24 05:53:55 -04:00
Johnny Robeson
e8afcbe7ec replace unicode with six.text_type 2016-06-24 05:53:49 -04:00
wordofglass
34cdf0f3f3 fetchart: complain about unsupported images only after validating the Content-Type 2016-06-23 17:38:01 +02:00
wordofglass
d47182a3e5 fetchart: do not rely on the server-provided Content-Type, but determine the image format from the file magic 2016-06-23 17:37:55 +02:00
Johnny Robeson
8e682f14a1 replace xrange with range from six.moves 2016-06-23 04:40:18 -04:00
Johnny Robeson
31cca684f2 replace itertools.izip with zip from six.moves 2016-06-23 04:40:18 -04:00
Johnny Robeson
1f8e08d168 replace raw_input with input from six.moves 2016-06-23 04:40:18 -04:00
Johnny Robeson
4649226b9b use urllib from six.moves 2016-06-23 04:40:18 -04:00
Johnny Robeson
1f8fe0f9a6 use _thread from six.moves 2016-06-23 04:40:18 -04:00
Johnny Robeson
129e140015 use html_parser (really html.parser) from six.moves 2016-06-23 04:40:18 -04:00
Johnny Robeson
7713be4c0f use http_client (really http.client) from six.moves 2016-06-23 04:40:18 -04:00
Johannes Baiter
ed2580d5b1 Fix bugs in beatport plugin (#2076)
* Fix naming bug

* Fix another minor bug

* Remove debugger statement

* Another fix for developer clumsiness in beatport plugin

* Fix typo in error description
2016-06-23 08:51:26 +02:00
Johnny Robeson
ea02269dee remove ext encode from fetchart (py3 fix for #2068) 2016-06-23 02:29:53 -04:00
Adrian Sampson
d3928008e1 Merge pull request #2068 from beetbox/fetchart_mime_extension
Fix fetchart hardcoding the image extension
2016-06-22 10:19:12 -07:00
Adrian Sampson
5e7ba73f5e Merge pull request #2067 from jbaiter/beatport
Revive Beatport plugin with support for OAuth API (#1989)
2016-06-21 14:33:34 -07:00
Adrian Sampson
351b6f8c9d Remove raw Unicode literals (fix #2069)
PEP 414 didn't add `ur"..."` literals to Python 3. So for hybrid 2/3
compatibility, these had to be replaced with ordinary Unicode string literals.
This was only painful for one string; the others were only raw strings by
convention. (All were regexes.)
2016-06-21 14:29:14 -07:00
Johannes Baiter
ae0269372c Docstrings for beatport.BeatportClient 2016-06-21 21:39:25 +02:00
Johannes Baiter
c4835336a5 Fix PEP8 checks 2016-06-21 11:20:16 +02:00
Johannes Baiter
85d6ef4a80 Revive Beatport plugin with support for OAuth API (#1989) 2016-06-21 11:02:16 +02:00
wordofglass
c4617c2c1f fetchart: do not hardcode the downloaded extension to jpg, fixes #2053 2016-06-21 10:57:45 +02:00
Philipp Beckmann
f9ed53a096 Multiple corrections as advised in the codereview 2016-06-20 18:44:37 +02:00
Philipp Beckmann
7b154cedd7 Added double line spacings between definitions 2016-06-20 18:29:46 +02:00
Philipp Beckmann
9fd227c8cc Fixed flake8 errors 2016-06-20 18:22:07 +02:00
Philipp Beckmann
0a3d18c5c4 Merge remote-tracking branch 'upstream/master' into bpd_gst10 2016-06-20 18:11:11 +02:00
Philipp Beckmann
5613d9d4ea bpd: Added correct error check for query_position/query_duration 2016-06-20 18:09:37 +02:00
Johnny Robeson
09322530ca replace 2 map() calls with a list comprehension 2016-06-19 22:30:58 -04:00
Philipp Beckmann
0917e675d7 bpg: Converted gstplayer.py to GStreamer 1.0 2016-06-19 22:06:55 +02:00
Johnny Robeson
1c761c60fb bytstringify extra cover_names in fetchart 2016-06-17 03:37:28 -04:00
Johnny Robeson
cf5ab2617a reorient bytestring_path code in convert replace_ext 2016-06-17 01:20:42 -04:00
Johnny Robeson
fff0439b06 add missing blank line in mpdstats 2016-06-17 00:09:22 -04:00
Johnny Robeson
12136e1d32 adapt is_url checking for bytestring paths 2016-06-17 00:00:08 -04:00
Johnny Robeson
411e4957b0 bytestringify replace_ext in convert plugin 2016-06-16 23:40:59 -04:00
Johnny Robeson
b602faabb8 more bytestringification in thumbnails plugin 2016-06-16 23:11:16 -04:00
Johnny Robeson
15c07613bf decode the filename written to .desktop file 2016-06-16 23:04:52 -04:00
Johnny Robeson
52f2ab2547 encode uri passed to hashlib in thumbnails plugin 2016-06-16 23:00:45 -04:00
Johnny Robeson
a903b57dae encode the passwords passed to hashlib in embyupdate 2016-06-16 21:47:10 -04:00
Johnny Robeson
d3d52da012 bytestringify paths in filefilter plugin 2016-06-16 04:08:49 -04:00
Johnny Robeson
cb54955485 more bytecasting in smartplaylist plugin 2016-06-15 23:55:17 -04:00
Johnny Robeson
a02a1f0201 cast year ints to str, not bytes in bucket plugin
This seems to work equally well in py2/3
2016-06-15 03:34:03 -04:00
Johnny Robeson
4fbad7dd67 bytestringify path in file_filter 2016-06-14 23:17:08 -04:00
Johnny Robeson
44380db6e8 If the permission is an int, then simply return it
It doesn't seem necessary to convert it, and if it does, then
we're missing a test
2016-06-14 03:50:29 -04:00
Johnny Robeson
8e1bc16228 set default perms as strings in perms plugin itself
I originally changed them to octal in my py3 branch,
but they are gonna end up as strings anyways, so I figured we should
just use them that way by default.
2016-06-14 03:47:59 -04:00
Johnny Robeson
0a5c6ce4c0 open tempfile in edit plugin in text mode 2016-06-14 03:38:21 -04:00
Johnny Robeson
3112a18463 treat ctypes .value as bytes in thumbnails plugin 2016-06-14 00:51:12 -04:00
Johnny Robeson
8fa71f78fe decode bytes from .encode() in lyrics plugin 2016-06-14 00:44:43 -04:00
Johnny Robeson
0f4b907ff5 wrap filter()s in a list() in replaygain plugin 2016-06-14 00:28:46 -04:00
Johnny Robeson
6745759ea5 open even more files in binary mode
* play plugin
* smartplaylist plugin
2016-06-13 05:18:33 -04:00
Johnny Robeson
4dd43f1081 write to the m3u file in binary mode in importfeeds 2016-06-12 20:27:01 -04:00
Johnny Robeson
a76de95183 return a bytestring path from RemoteArtSource 2016-06-12 01:19:39 -04:00
Johnny Robeson
69c9fb8b07 check dirname result against b'' in fetchart 2016-06-10 02:52:58 -04:00
Johnny Robeson
5e62b39f75 replace TEMPORARY with FIXME in discogs plugin
We're more likely to search for this later by FIXME.

NOTE: the bug is fixed, but the versions with the fix may not be widely
distributed yet
2016-06-10 02:30:00 -04:00
Johnny Robeson
5485bdb706 add missing b' in discogs query regex 2016-06-10 02:23:14 -04:00
Johnny Robeson
ab67727283 wrap the cover_names map with a list in fetchart
most `cover_names` users expect to operate on a list
2016-06-10 00:09:15 -04:00
Johnny Robeson
02165fc3a9 open lastgenre whitelist in binary mode 2016-06-09 23:53:40 -04:00
Adrian Sampson
f400a2431e fetchart: Fix path types on Windows 2016-06-08 10:20:25 -07:00
Johnny Robeson
790b1b5153 replace some filter/map calls with list comps
These are places where the surrounding/calling code needs a list, not an iter.
2016-06-08 00:17:18 -04:00
Adrian Sampson
b752a58ed6 Improve a couple of docstrings 2016-06-05 12:16:41 -07:00
Adrian Sampson
0051bdb506 lyrics: Avoid a spurious warning 2016-06-02 21:33:33 -07:00
Adrian Sampson
ae7990322a Merge pull request #2032 from pszxzsd/bs1770
make bs1770gain calculate sample peak instead of true peak
2016-06-02 16:17:04 -07:00
Adrian Sampson
581fba6288 lyrics: Avoid crash when enabling google
If you *both* haven't set an API key *and* BeautifulSoup wasn't
installed, the list.remove() call would crash. (This came up when
running the tests on a fresh machine without many dependencies.)
2016-06-02 11:58:14 -07:00
pszxzsd
8dcd50b18f make bs1770gain calculate sample peak instead of true peak 2016-06-01 20:00:08 +02:00
Adrian Sampson
33a4767eaf Portable mock command for testing convert plugin 2016-05-31 11:48:29 -07:00
Adrian Sampson
395877d903 Remove the Echo Nest plugin 😢 (#1920) 2016-05-30 22:25:58 -07:00
Johnny Robeson
81484529c9 remove b' from a few more stdlib calls 2016-05-31 00:13:09 -04:00
Johnny Robeson
330306bbe2 remove bytes casts from object/method resolution code 2016-05-30 23:21:24 -04:00
Johnny Robeson
e6ab231f72 Revert "Remove bytes casting for non-path command args/opts"
This reverts commit 2a6e74bc27.
2016-05-30 22:00:42 -04:00
Johnny Robeson
2a6e74bc27 Remove bytes casting for non-path command args/opts 2016-05-30 21:42:44 -04:00
Johnny Robeson
94bab42f97 use strings (not bytes) for flask responder names 2016-05-30 21:19:15 -04:00
Adrian Sampson
71b9fd785c Revert "Do __name__ comparison with bytes and not unicode"
This reverts commit 9c41c39913.
That commit used byte strings for the `if __name__ == '__main__'` pattern,
which was necessary when we were doing unicode_literals. But it is wrong on
Python 3, and now that we're liberated from unicode_literals, we need to go
back to native strings for this comparison.
2016-05-29 19:19:59 -07:00
Adrian Sampson
59435792e9 Merge pull request #2010 from sumpfralle/web-api-unique-results
web: add API functions for retrieving unique values of specific keys
2016-05-27 00:15:34 -07:00
Johnny Robeson
a405a072f7 use reduce() from functools 2016-05-26 23:52:35 -04:00
Lars Kruse
d50923553d web: add API functions for retrieving unique values of specific keys
the following API paths are added:
* /item/values/FIELD
* /album/values/FIELD

Both paths will deliver a json dictionary with the key 'values' containing a
list of unique values belonging to the requested table and field.
Sorting is possible by supplying the query argument "sort_key".

This feature is useful for remote clients, e.g. Mopidy-Beets:
* track genres: /item/unique/genre
* track languages: /album/unique/language
* album artists: /album/unique/albumartist?sort_key=albumartist_sort
* album years: /album/unique/year
2016-05-27 04:12:09 +02:00
Lars Kruse
be4dc227fc web: handle missing art gracefully 2016-05-24 03:05:51 +02:00
Frederik “Freso” S. Olesen
37b9360706
acousticbrainz plugin: Access acousticbrainz.org over HTTPS. 2016-05-20 01:08:15 +02:00
Adrian Sampson
ef7cca4c12 Fix #2005: list AIFF as a lossless format 2016-05-18 11:24:34 -07:00
Jack Wilsdon
5f3c27990d Merge pull request #1974 from jackwilsdon/make-convert-extension-optional
Make convert extension optional
2016-05-08 16:30:30 +01:00
Jack Wilsdon
fcce9c02ac Revert removal of trailing comma 2016-05-06 17:51:21 +01:00
Jack Wilsdon
2d5c68cec9 Remove write option from bpm and use import.write 2016-05-06 17:50:27 +01:00
Jack Wilsdon
2038a40fa2 Add write option to bpm plugin
Add write option to bpm plugin and tidy up command function.
2016-05-05 11:27:28 +01:00
Jack Wilsdon
982272deb3 Merge pull request #1981 from jackwilsdon/fix-hook-unicode
Fix command formatting for hook plugin
2016-05-03 17:45:38 +01:00
Profpatsch
2d36626d25 convert plugin: Change the default ogg quality
According to the `oggenc(1)` man page (in vorbis-tools), the default quality is 3, not 2. So we should use that.
2016-05-02 01:53:20 +02:00
Jack Wilsdon
92af723682 Format individual command pieces instead of whole command 2016-05-01 23:04:22 +01:00
Jack Wilsdon
9f0db13675 Remove unnecessary variable 2016-05-01 21:44:40 +01:00
Jack Wilsdon
63caf1fceb Add documentation for coding formatter 2016-05-01 21:44:05 +01:00
Jack Wilsdon
ba7004de6e Remove unneeded AutoFieldCountFormatter 2016-05-01 21:33:06 +01:00
Jack Wilsdon
e66981c4d8 Use beets shlex_split instead of shlex.split 2016-05-01 21:31:53 +01:00
Jack Wilsdon
b4715d61e1 Fix over-indentation of wrapped code 2016-05-01 21:30:20 +01:00
Jack Wilsdon
576ec92992 Fix encoding for hook plugin
- Add a AutoFieldCountFormatter formatter for auto field
   incrementation.
 - Add a CodingFormatter for formatting encoded strings.
 - Fix encoding for hook plugin using CodingFormatter.
2016-05-01 21:21:40 +01:00
Adrian Sampson
04bbdede38 hook: Typed configuration accessors 2016-05-01 13:04:35 -07:00
Jack Wilsdon
b9464d1ea4 Use unicode for command formatting 2016-05-01 18:26:06 +01:00
Patrik
2f608fce0a convert.py: Fix error message 2016-05-01 01:53:03 +02:00
Patrik
4f596725ae convert.py: Fix error message 2016-05-01 01:27:02 +02:00
Adrian Sampson
950e1b5e85 Merge pull request #1603 from jackwilsdon/add-hook-plugin
Add hook plugin (fixes #1561)
2016-04-30 15:03:42 -07:00
wordofglass
1dd6739218 lyrics: fix a bug where the lyricswiki fetcher would try to unescape an empty (None) response and crash 2016-04-30 01:25:02 +02:00
Jack Wilsdon
ae9ece1e62 Make format extension optional
The format extension defaults to the name of the format if it is not
provided.
2016-04-29 14:51:13 +01:00
wordofglass
c3c7da8061 lyrics: simplify source handling a little 2016-04-28 18:31:22 +02:00
wordofglass
2928a16bd5 lyrics: actually disable translation when there's no langdetect 2016-04-28 17:22:55 +02:00
wordofglass
c4b11f889f lyrics: clean up import handling and source removal 2016-04-28 17:15:25 +02:00
Jack Wilsdon
7c9440cf13 Merge master back in to fork 2016-04-28 04:15:02 +01:00
Jack Wilsdon
48fff93e78 Merge pull request #1961 from jackwilsdon/pep8-naming
Add flake8 check for pep8 naming
2016-04-28 04:07:17 +01:00
Jack Wilsdon
79d602b2a0 Use correct methods for ImageMagick and PIL info 2016-04-27 20:41:09 +01:00
Jack Wilsdon
8317a20bcd Use correct methods from art resizer 2016-04-27 20:34:28 +01:00
Jack Wilsdon
b1c58e99ec Update code to match pep8 naming standards 2016-04-27 20:15:10 +01:00
Adrian Sampson
09bc250413 Fix #1960: Unicode in fetchart Wikipedia source
The SparQL query needed to use a Unicode literal.
2016-04-26 16:59:23 -07:00
Jack Wilsdon
c5e2334fb5 Remove useless unescape
Remove useless unescape as _scrape_script_cruft does it for us.
2016-04-25 19:24:26 +01:00
Jack Wilsdon
1be9c3003e Use different method to remove junk from LyricsWiki
Use `_scrape_strip_cruft` instead of `scrape_lyrics_from_html` so that
LyricsWiki does not depend on Beautiful Soup.
2016-04-25 19:14:30 +01:00
wordofglass
607f41be43 Fix the previous fix... 2016-04-24 00:42:31 +02:00
wordofglass
4a5b886944 Fix two non-guarded import statements in the lyrics plugin
These could make the import process crash with a traceback.
2016-04-24 00:35:15 +02:00
Guilherme Danno
bf1b06f0c7 don't print entire lyrics during import 2016-04-22 17:30:06 -03:00
wordofglass
ac2f7fe712 Fix the fanarttv source failing when there were images found, but no cover art 2016-04-20 12:59:18 +02:00
wordofglass
5fbca32ea4 reuse the 'sources' names from the configuration for art_source 2016-04-19 11:25:03 +02:00
wordofglass
740efc0a0e small fixes; consistently use 'source' instead of 'origin' 2016-04-19 11:23:57 +02:00
wordofglass
c27907b043 enable fetchart to store the artworks origin in a flexible field; as of now untested 2016-04-19 11:23:42 +02:00
Jack Wilsdon
85fd60852f Remove unused dependencies 2016-04-18 19:21:31 +01:00
Jack Wilsdon
ffa2fdd278 Merge master back in to fork 2016-04-18 19:19:08 +01:00
Jack Wilsdon
dea091ee53 Improve error handling for invalid commands 2016-04-18 19:16:31 +01:00
wordofglass
9e774fdccd Merge branch 'master' into fetchart_almost_square 2016-04-18 19:00:45 +02:00
wordofglass
11c6ca5271 Merge remote-tracking branch 'beetbox/master' 2016-04-18 18:53:46 +02:00
wordofglass
c3be244109 remove the personal key warning altogether; it's also in the docs and rather obtrusive 2016-04-18 18:52:18 +02:00
Guilherme Danno
019d7cd2e6 fix some typos 2016-04-18 12:36:42 -03:00
Guilherme Danno
09073630e3 Merge pull request #1945 from beetbox/export-plugin
Export plugin: Export data from queries to a json
2016-04-18 12:24:27 -03:00
Jack Wilsdon
070469e259 Remove unicode_literals from __future__ imports 2016-04-18 16:00:13 +01:00
Jack Wilsdon
3e35660ff3 Remove unnecessary escaping on double quotes 2016-04-18 15:36:08 +01:00
Jack Wilsdon
686e069bc4 Replace double quotes with single quotes 2016-04-18 15:35:15 +01:00
Jack Wilsdon
8b4f349e27 Improve hook plugin design and configuration
- Remove `shell` option and split all commands using `shlex.split`
   before passing them to `subprocess.Popen`.
 - General refactor of hook plugin code - move hook creation function
   inside `HookPlugin`.
 - Add improved error handling for invalid (i.e. empty) commands or
   commands that do not exist.
2016-04-18 15:04:57 +01:00
wordofglass
20235264a4 rewire logic a bit; reasonable debug messages 2016-04-18 15:23:38 +02:00
Jack Wilsdon
dd949a9488 Merge master back in to fork 2016-04-18 14:06:45 +01:00
wordofglass
30bca5c8af fix unconditionally printing the personal key warning for in fanart.tv in fetchart 2016-04-18 11:39:09 +02:00
Guilherme Danno
228ffc91be use sort_keys to make the data more "predictable" 2016-04-17 23:47:12 -03:00
Guilherme Danno
5e3c65d32e change option letter 2016-04-17 23:37:51 -03:00
Guilherme Danno
10acea4efd Remove json monkey-patching and use encoder subclassing 2016-04-17 23:35:23 -03:00
Guilherme Danno
1e3704a27e fix NotImplementedError() 2016-04-17 21:52:09 -03:00
Guilherme Danno
c211aabd72 simplify json printing 2016-04-17 21:39:53 -03:00
wordofglass
6cbbba7dae initial work on allowing slightly non-square images in fetchart 2016-04-18 01:47:39 +02:00
Guilherme Danno
f58d4e838a Query data from items and export the json
Based on the ``info`` plugin
2016-04-17 18:26:17 -03:00
wordofglass
8169983074 fix translation of the old remote_priority option for fetchart, add a test 2016-04-17 21:18:31 +02:00
Adrian Sampson
3fb2185925 Merge pull request #1898 from beetbox/flake8-future-import
Add __future__ import style checker
2016-04-16 15:24:46 -07:00
wordofglass
0f89f17227 add missing division future imports 2016-04-16 18:33:54 +02:00
wordofglass
36e91fc78b fix fanart.tv merge 2016-04-16 14:17:46 +02:00
wordofglass
9ce10c2fda Merge branch 'master' into fetchart_unify_sources,
i.e. adapt the fanart.tv source
2016-04-16 13:34:46 +02:00
wordofglass
0cfddfaa8a add missing absolute_import future imports 2016-04-16 02:28:54 +02:00
wordofglass
6b43e1204f add missing print_function future imports 2016-04-16 01:53:39 +02:00
Adrian Sampson
4691deb5a5 Merge pull request #1941 from wordofglass/fetchart_fanarttv
Fetchart: add fanart.tv source
2016-04-15 11:45:00 -07:00
wordofglass
4763fec35b fanart.tv: remove overly verbose logging left over from debugging 2016-04-15 19:42:06 +02:00
wordofglass
3a2eb03e0e Add fanart.tv API key 2016-04-15 19:32:17 +02:00
wordofglass
87aa5dab13 fixes according to feedback by @Kraymer 2016-04-15 14:15:25 +02:00
wordofglass
d46b45861b typo, rename project key config option 2016-04-15 02:40:52 +02:00
wordofglass
ecc6e1c3d6 fanart.tv albumart fetching, missing a project API key 2016-04-15 02:28:04 +02:00
Fabrice Laporte
05970e8a93 re-query token when it has expired 2016-04-14 22:57:41 +02:00
Fabrice Laporte
56d7e5dfa0 send as little text as possible to bing api
Bing API has a limit of 2M chars/month. It’s common to have repeating
sentences in lyrics so to reduce number of chars sent per song, store
sentences in a set and send it, instead of sending the whole lyrics.
2016-04-14 22:57:17 +02:00
wordofglass
7322e212a4 fetchart: adapt test to earlier config read 2016-04-14 16:49:06 +02:00
wordofglass
aaf614c869 fetchart: move config reads to __init__ 2016-04-14 16:00:24 +02:00
wordofglass
6bc3fb8f67 fetchart: make Candidate a new-style class 2016-04-14 15:27:47 +02:00
Fabrice Laporte
6cfc106b8a better docs and debug msg 2016-04-14 08:31:55 +02:00
Fabrice Laporte
58df77e2cb langdetect conditional import 2016-04-14 08:31:14 +02:00
Fabrice Laporte
e03c3af91f don't translate lyrics already in the target language 2016-04-14 01:11:14 +02:00
Fabrice Laporte
66a627fed8 restore module docstring 2016-04-14 00:58:42 +02:00
Fabrice Laporte
3c2479ab49 translate lyrics using Bing API
By subscribing to Microsoft Translator API, one can now activate the
translation of lyrics from one set of source langages to a target
langage.
Translations are appended to each original sentence using ‘/‘ as
separator.
2016-04-14 00:53:58 +02:00
Fabrice Laporte
d67950cdcc pep8 2016-04-14 00:45:55 +02:00
wordofglass
1cc4d11baf Fetchart: fix tests and fetachart logic 2016-04-13 22:56:18 +02:00
wordofglass
a4994d2bf8 fetchart: fix more tests 2016-04-06 01:36:32 +02:00
wordofglass
bc877a6d7f fetchart: fix tests (mostly pep8, syntax) 2016-04-06 01:19:44 +02:00
wordofglass
bbc06e9de9 fetchart: Adapt ArtForAlbumTest 2016-04-05 23:24:30 +02:00
wordofglass
a2141c6f3a fetchart: fix refactoring 2016-04-05 22:44:13 +02:00
Adrian Sampson
fa2aa82a0d Fix #1927: useful error message for failed edit 2016-04-03 17:42:25 -04:00
Adrian Sampson
3f4f077272 edit: Log the invoked command 2016-04-03 17:38:40 -04:00
wordofglass
50bf28edd4 move constants into Candidate 2016-03-23 16:46:39 +01:00
wordofglass
8356e7d33d fix syntax 2016-03-23 00:47:11 +01:00
wordofglass
b37cc02f1a fetchart: Introduce the Candidate class, some fixes to the previous commit. 2016-03-22 20:52:25 +01:00
wordofglass
c0a041b87e fetchart: Unify handling of local and remote sources. 2016-03-22 19:42:16 +01:00
Cédric Tissières
e5be804802 importadded: adapt doc for new option preserve_write_mtimes 2016-03-22 06:24:09 +01:00
Cédric Tissières
8ef36198fb importadded: preserve mtime after any write 2016-03-21 20:47:05 +01:00
Adrian Sampson
d1753b341e lyrics: Some comments and better naming 2016-03-21 10:28:30 -07:00
Adrian Sampson
f684f29a25 lyrics: Tolerate pages without text (fix #1914) 2016-03-21 10:24:13 -07:00
Adrian Sampson
c9be5bc7d1 Merge pull request #1911 from jackwilsdon/fix-musixmatch-url
Fix MusixMatch issues
2016-03-18 11:51:27 -04:00
Jack Wilsdon
60148918d9 Fix LyricsWiki scraping code
LyricsWiki now escapes song lyrics using HTML entities (presumably to
prevent scraping), so we now unescape these before parsing.

LyricsWiki has also added a script tag inside the div we are scraping,
so we have to remove this using `scrape_lyrics_from_html`.
2016-03-17 17:49:41 +00:00
Jack Wilsdon
c417003184 Add missing newline 2016-03-16 21:07:28 +00:00
Jack Wilsdon
1ec06e14c5 Fix lyrics extraction from MusiXmatch
Remove "lyrics_" prefix from extract_text_between arguments to reflect
changes made to the MusiXmatch website.
2016-03-16 20:48:57 +00:00
Jack Wilsdon
44c799320f Improve URL generation in lyrics plugin
Allow custom replacements to be defined in subclasses of
SymbolsReplaced.

Replace spaces with a hyphens when the source is MusiXmatch, instead of
(incorrectly) using underscores. This fixes #1880.
2016-03-16 20:46:36 +00:00
Adrian Sampson
8a0b18c960 Fix #1903: scrub sometimes ignored id3v23 2016-03-15 23:06:10 -04:00
Adrian Sampson
c18b5dbadd Fix #1907: redact MusicBrainz password 2016-03-11 16:50:32 -05:00
Ivan Shapovalov
4d40b058d3 treewide: add u to instances of 'singleton:true'
Fixes #1901.
2016-03-06 02:12:43 +03:00
Adrian Sampson
eac7d64545 Merge branch 'master' into no_unicode_literals 2016-02-28 15:21:43 -08:00
Adrian Sampson
e54c7eec3d Standardize __future__ imports without parentheses
Since the list is short enough now, we don't need parentheses for the line
wrap. This is a little less ugly.
2016-02-28 15:03:51 -08:00
Adrian Sampson
d53019f9db Further whitespace fiddling
Most commonly, this sticks with:

    log.debug(
        'some long message here'
    )

instead of placing the closing ) at the end of the string literal.
2016-02-28 14:48:10 -08:00
Adrian Sampson
031d50abbf Human-readable message in non-pretend mode (#1894) 2016-02-27 09:58:05 -08:00
Ali Graham
a98bc481cd tweaks for style, option name 2016-02-27 19:05:56 +10:30
Ali Graham
a1f80275c4 revert a chunk of the work to be the way it was 2016-02-25 21:35:14 +10:30
Ali Graham
bc21afab42 better text for artwork resize/copy logs 2016-02-25 18:51:00 +10:30
Ali Graham
1fc6efe3b4 fix indentation 2016-02-25 18:45:53 +10:30
Ali Graham
04c12a50ac add copy_album_art_maxwidth config option to convert plugin 2016-02-25 12:44:56 +10:30
Ali Graham
e58e04f0ab move and split fetchart valid_image 2016-02-25 12:44:09 +10:30
Peter Kessen
c2e7d59db7 Removed import of unicode_literals from plugin web 2016-02-20 14:36:56 +01:00
Peter Kessen
7155999d00 Removed import of unicode_literals from plugins
* thumbnails
* types
2016-02-20 14:34:49 +01:00
Peter Kessen
30cf407074 Removed import of unicode_literals from plugins
* rewrite
* scrub
* smartplaylist
* spotify
* the
2016-02-20 14:31:27 +01:00
Peter Kessen
456565b6f2 Removed import of unicode_literals from plugins
* play
* plexpudate
* random
* replaygain
2016-02-20 14:22:45 +01:00
Peter Kessen
feab3df910 Removed import of unicode_literals from plugins
* mpdstats
* mpdupdate
* permissions
* zero
2016-02-20 14:12:37 +01:00
Peter Kessen
48098c3741 Removed import of unicode_literals from plugins
* lastgenere
* mbcollection
* mbsubmit
* mbsync
* missing
2016-02-20 14:08:05 +01:00
Peter Kessen
f2fc1a78bf Removed import of unicode_literals from plugins
* keyfinder
* lastimport
* lyrics
2016-02-20 13:59:58 +01:00
Peter Kessen
fc3d10d248 Removed unicode_literals from plugins
* fuzzy
* ihate
* importadded
* importfeeds
* info
* inline
2016-02-20 13:53:10 +01:00
Peter Kessen
7d00ab3b50 Removed unicode_literals from plugins
* fetchart
* freedesktop
* fromfilename
* ftintitle
2016-02-20 13:44:45 +01:00
Peter Kessen
53d2c8d9db Removed unicode_literals from plugins
* echonest
* edit
* embedart
* embyupdate
2016-02-20 13:35:54 +01:00
Peter Kessen
5547a82848 Removed unicode_literals from plugin duplicates 2016-02-20 13:26:27 +01:00
Peter Kessen
40900aa1cb Removed unicode_literals from plugins
* bucket
* chroma
* convert
* discogs
2016-02-20 12:10:01 +01:00
Peter Kessen
5db57bdc01 Removed unicode_literals from plugin bpd 2016-02-20 11:57:36 +01:00
Peter Kessen
6852ab5472 Removed unicode_literals from plugins
* acousticbrainz
* badfiles
* bpm
2016-02-20 11:49:10 +01:00
Adrian Sampson
6e3d72afa6 Merge pull request #1846 from diego-plan9/interactiveedit
edit: allow interactive editing during the importer
2016-02-07 14:34:54 -08:00
Adrian Sampson
314521b6ae replaygain: Fix obvious typo (fix #1873, I hope) 2016-02-07 14:28:33 -08:00
Josh Brown
ea36c5a825 Allow default lastfm key to be overridden in config 2016-02-06 00:41:59 -06:00
Josh Brown
0f155ce3b9 Use beets API key for lastimport plugin. 2016-02-05 23:50:24 -06:00
Diego Moreda
8d3f9a573c edit: revert album-field changes, use temporary id
* Revert the changes related to allowing the album- and item-level
fields to be edited at the same time, as the increase in complexity
was deemed excesive during review.
* Modify the interactive execution so temporary Item.id's are used,
removing the extra functionality needed for dealing with both id and
path as reference fields.
* Docstrings and comments cleanup.
2016-02-05 12:35:11 +01:00
Diego Moreda
0ba8f83929 edit: allow edit album+item fields in single yaml
* Add support for editing both the item fields and the album fields in
a single YAML file, by appending an Album-like object as the front of
the objects to be edited.
* The FakeAlbum class provides that object, mimicking the original
Album behaviour and including an _apply_changes() method that propagates
the changes read from the yaml onto the Items.
* Modify edit_objects() so the flattening of the objects takes into
account the type of object, using different fields for Albums and for
Items.
* Renamed apply() to apply_() to prevent an IDE warning about reusing a
reserved built-in symbol.
2016-02-03 17:34:39 +01:00
Adrian Sampson
60888274c4 lyrics: Re-disable Genius backend
As #1854 pointed out, the Genius API service is down *again*.
2016-02-02 08:14:22 -08:00
Adrian Sampson
0aea7e398b replaygain: Handle missing GStreamer data (#1855) 2016-02-02 08:08:58 -08:00
Diego Moreda
b8ec22ca34 edit: use action.RETAG, cleanup
* Make the edit plugin return action.RETAG when invoked during an
interactive import session, making the importer handle the writing of
the tags to the files (if needed) properly.
* Move the logic relative to the "reference field" to
_set_reference_field(), simplifying a bit the functions that depend on
this field.
* Hide the "edit Candidates" choice if no candidates are found.
2016-02-01 18:57:03 +01:00
Diego Moreda
30927a901f Fix flake8 error 2016-01-29 19:54:23 +01:00
Diego Moreda
98abe69520 edit: invoke editor during importer, on Items
* Initial draft for invoking the edit plugin during an importer session.
* Add prompt choices for editing the original file tags ("eDit") and
apply a candidate and then edit ("edit Candidates").
* Modify plugin (_get_fields, apply_data, edit_objects) so "path" can be
used as a reference field instead of "id", as the Items are not still on
the database when the plugin is invoked via the importer.
* Modify ImportTask.manipulate_files() with a temporary flag for writing
the item tags even if ASIS was selected.
2016-01-29 17:09:12 +01:00
Diego Moreda
76d7c65c1b replaygain: refine test by subclassing exception
* Subclass FatalReplayGainError into FatalGstreamerPluginReplayGainError
in order to handle gstreamer plugin errors more cleanly on
test_replaygain.
2016-01-26 22:20:42 +01:00
Diego Moreda
c12e974852 Merge remote-tracking branch 'upstream/master' into mbid 2016-01-19 21:58:10 +01:00
Diego Moreda
48c92fbf5a Allow multiple MB ids to be passed to the importer
* Modify the "--musicbrainzid" argument to the importer so multiple IDs can be
specified by the user instead of a single one.
* Revise autotag.match.tag_album and autotag.match.tag_item signature to expect
a list of IDs (search_ids) instead of a single one (search_id), and add logic
for handling and returning multiple matches for those IDs.
* Update calls to those functions in other parts of the code.
2016-01-19 21:43:32 +01:00
Adrian Sampson
1866264732 Docsring for #1812 2016-01-15 10:10:56 -08:00
Guilherme Danno
20e4f5d209 Info plugin: add option to print only keys 2016-01-14 18:08:22 -02:00
Adrian Sampson
8cb545b779 Possibly fix #1805: bytes headers for requests 2016-01-11 10:30:33 -08:00
Adrian Sampson
c7045daf90 sampsyo -> beetbox (#1730) 🎉 2016-01-08 20:36:16 -08:00
Adrian Sampson
0301bb517d Update links for our new domain 2016-01-08 16:26:13 -08:00
Adrian Sampson
635052e2ff Fix #1804: edit plugin moves files 2016-01-08 15:22:28 -08:00
Adrian Sampson
963a66a40c Refactor try_sync to also include moving
This will remove a bunch of duplication we currently have for moving files
*inside the library directory* when their metadata changes.
2016-01-08 14:56:52 -08:00
Adrian Sampson
36ad0cf70d lyrics: Re-enable genius backend (#1770) 2016-01-06 14:29:51 -08:00
nath@laptop
6e2b249c54 fix-typos: Write changelog
Also stealth-reformulate a recent comment of mine which contained
another (!) typo
2016-01-06 11:18:39 +01:00
nath@laptop
1e72ba75c7 play: Preserve backwards compat when fixing typos 2016-01-06 10:12:45 +01:00
nath@laptop
72056e8e07 play: Fix typo treshold > threshold:
We should warn users that the corresponding config key changed accordingly.
2016-01-06 09:21:37 +01:00
Ben Ockmore
c074ed37f1 Album is never present in user.getTopTracks, so this is now redundant 2016-01-04 17:36:30 +00:00
Ben Ockmore
e2a8bdb23d Changed initial value of song variable to None, which is clearer 2016-01-04 17:33:03 +00:00
Ben Ockmore
0a6983b759 Replaced custom requests in fetch_tracks with pylast
Also changed from using the library.getTracks API method to user.getTopTracks, since Last.fm has broken the former.
2016-01-04 17:29:18 +00:00
Adrian Sampson
15fe43219e Merge pull request #1793 from JesseWeinstein/fix_default_command
Fix default command in interactive_open
2016-01-03 14:25:27 -08:00
Adrian Sampson
04618f9aef acousticbrainz (#1787): Fix typos in keys 2016-01-03 14:17:39 -08:00
Adrian Sampson
4041c3ceb2 acousticbrainz (#1787): Write tags
Now that we modify the built-in field, this is necessary.
2016-01-03 14:14:10 -08:00
Adrian Sampson
b44601176a Merge pull request #1787 from opatel99/AcousticBrainzP2
AcousticBrainz: More features (autotag)
2016-01-03 14:12:07 -08:00
Jesse Weinstein
246afda9c4 Actually, push the job off on the caller 2016-01-03 13:07:27 -08:00
Ohm Patel
a1db349bf9 ABrainz: Variable parameters 2016-01-02 19:20:20 -06:00
Ohm Patel
b5f71a88e8 ABrainz: replace lambda with operator 2016-01-02 19:05:53 -06:00
Ohm Patel
e5c46cf6ac PEP-8 Cleanup 2016-01-02 18:59:47 -06:00
Ohm Patel
39b565d8d8 Refactor JesseW's suggestions 2016-01-02 18:52:28 -06:00
Ohm Patel
1bb55c5c13 ABrainz: Used existing initial_key variable 2016-01-02 14:55:34 -06:00
Ohm Patel
4184f9dd13 ABrainz: Chords metadata from low_level 2016-01-02 12:03:07 -06:00
Ohm Patel
17dd7496a2 ABrainz: Added low-level data and updated docs 2016-01-02 11:33:19 -06:00
Diego Moreda
75636a2503 Merge branch 'master' of github.com:sampsyo/beets into prompthook
Conflicts:
	docs/changelog.rst
2016-01-02 13:39:42 +01:00
Diego Moreda
9bba782e9c mbsubmit: final style fixes (closes #1779) 2016-01-02 13:32:52 +01:00
Ohm Patel
c5f25429e9 ABrainz: Fixed docstrings and documentation 2016-01-01 18:29:36 -06:00
Ohm Patel
52de238076 ABrainz: Removed PEP8 Whitespace violation 2016-01-01 01:32:42 -06:00
Ohm Patel
82709f1c1b ABrainz: Added more metadata for plugin to fetch and updated docs 2016-01-01 01:28:17 -06:00
Ohm Patel
26679f891e ABrainz: Added acousticbrainz to autotagger and updated docs 2016-01-01 01:01:14 -06:00
Adrian Sampson
b0c94f4f47 Merge pull request #1785 from sampsyo/play-fix-cleanup
play: remove dead code, fix error catching
2015-12-31 14:38:04 -08:00
nath@laptop
775ac4ed83 play: Log exception from os call more accurately
Depending on raw or not, we do not necessarily play a 'playlist'. Use 'query' generically instead.
2015-12-31 21:49:03 +01:00
Adrian Sampson
aad2cf1feb acousticbrainz: Log an error for missing data 2015-12-31 11:38:05 -08:00
Adrian Sampson
3a3dc8b3ae acousticbrainz: Don't write tags
Since we aren't updating any on-disk tags anyway.
2015-12-31 11:35:14 -08:00
Adrian Sampson
5d89b7da67 acousticbrainz: Allow filtering on a query
Like other, similar commands.
2015-12-31 11:33:58 -08:00
Adrian Sampson
878161bb4f acousticbrainz: Avoid re-parsing the JSON 2015-12-31 11:31:32 -08:00
Adrian Sampson
18e5b30d19 acousticbrainz: Handle requests errors 2015-12-31 11:29:57 -08:00
Adrian Sampson
eb2b081dfd acousticbrainz: A bit more logging
This way, the command shows you that it's making progress.
2015-12-31 11:28:28 -08:00
Adrian Sampson
519f86fd3a Merge pull request #1784 from opatel99/AcousticBrainzPlug
AcousticBrainz Plugin
2015-12-31 11:17:44 -08:00
Ohm Patel
ad57943819 Updated Copyright Year 2015-12-31 09:35:01 -06:00
Ohm Patel
6337b7ff08 Rename commands and files 2015-12-31 08:57:19 -06:00
Ohm Patel
5201e1cde7 Rename 2015-12-31 08:56:55 -06:00
nath@laptop
f685a59e71 play: remove dead code
This piece of code won't ever execute because interactive open terminates python execution
2015-12-31 13:51:18 +01:00
Ohm Patel
d15d7efbf4 ABrainz: Removed repeated portion of error message 2015-12-31 00:53:05 -06:00
Ohm Patel
ed6d9087a9 ABrainz: Added error catching and renamed to abrainz 2015-12-31 00:50:49 -06:00
Ohm Patel
59a1333732 ABrainz: Renamed danceable to dance to match five character attribute 2015-12-30 23:38:19 -06:00
Ohm Patel
9daa02b5b0 ABrainz: Added write for three attributes to metadata and easier
dictionary traversal format.
2015-12-30 23:34:56 -06:00
Ohm Patel
29e6cbedfe ABrainz: Added copyright header, docstrings, and followed long line
standards.
2015-12-30 22:27:53 -06:00
Adrian Sampson
c0dde8da28 echonest: Fix capitalization in help text 2015-12-30 20:23:29 -08:00
Ohm Patel
ff81bbf8f5 ABrainz: Added first pass of plugin. Only prints MBID and response status code to console. 2015-12-30 22:03:50 -06:00
Diego Moreda
418ad58686 Merge remote-tracking branch 'upstream/master' into prompthook 2015-12-30 20:23:44 +01:00
Diego Moreda
798dd72bb6 mbsubmit: style fixes 2015-12-30 20:19:03 +01:00
Jack Wilsdon
12cd5306b7 Update copyright dates to 2016 2015-12-30 15:42:06 +00:00
Lachlan Charlick
0d16f764f2 fetchart: Tidier google backend configuration keys 2015-12-30 13:34:58 +10:30
Diego Moreda
8746869f7c mbsubmit: cleanup, revise logic, config options
* Cleanup the "mbsubmit" plugin to remove a choice ("print tracks and skip")
and make the logic depend on the strength of the Recommendation.
* Add configuration options for the Recommendation threshold that triggers
the addition of the "Print tracks" choice and for the formatting string to
be used for printing the items.
* Include link to the official-ish MusicBrainz format page on the docstring.
2015-12-29 17:26:42 +01:00
Lachlan Charlick
7b273b4310 fetchart: PEP8 fixes 2015-12-29 17:29:17 +10:30
Lachlan Charlick
b017a750d8 Merge remote-tracking branch 'upstream/master' into fetchart-google 2015-12-29 16:00:19 +10:30
Adrian Sampson
a976c371f6 lyrics: Disable Genius backend by default (#1770) 2015-12-28 16:35:39 -08:00
Adrian Sampson
1a2ffd0426 lyrics: Catch errors in Genius backend (fix #1770)
The HTTP requests had no error handling. Now they have lots.
2015-12-28 16:32:28 -08:00
Lachlan Charlick
be64df6409 fetchart: Handle errors when parsing malformed JSON from google 2015-12-29 01:48:33 +10:30
Lachlan Charlick
2e10b8c284 fetchart: Pass config object to backends when initialized 2015-12-29 01:37:53 +10:30
Lachlan Charlick
03a41e82da fetchart: minor google backend refactor 2015-12-29 00:02:41 +10:30
Lachlan Charlick
99fb656f52 fetchart: Remove some debug logging from google backend 2015-12-28 23:57:38 +10:30
Lachlan Charlick
deadc4d049 fetchart: Automatically disable google backend if no API key is set 2015-12-28 23:57:03 +10:30
Lachlan Charlick
b73cfb9f8d fetchart: Fix typo in google API config key 2015-12-28 23:53:56 +10:30
Lachlan Charlick
ff15f4af9b fetchart: Use config singleton rather than passing object to each backend 2015-12-28 23:42:11 +10:30
Lachlan Charlick
c14abe56a5 fetchart: Add new google backend using google custom search
Requires an API key from google similar to lyrics plugin.
Limited to 100 queries/day.
2015-12-28 23:16:12 +10:30
Adrian Sampson
b25b4db9e1 replaygain: Dodge possible encoding issues
In error reporting. May avoid the error in #1774, but it's hard to find out
exactly what the Python types of these arguments are from the GStreamer
documentation.
2015-12-26 22:40:13 -08:00
Diego Moreda
6f8a1aa40a Prompt event documentation and mbsubmit fixes
* Fixes for documentation of the prompt event (missing reserved letter, typos).
* Update sample mbsubmit plugin to conform to the new PromptChoice structure.
2015-12-16 19:26:39 +01:00
Diego Moreda
f5241f7c28 mbsubmit: update to style changes, remove comments
* Update mbsubmit plugin in order to use PromptChoice instead of the previous
ExtraChoice.
* Remove comments as they are now present on the pull request and documentation.
2015-12-15 20:15:42 +01:00
Diego Moreda
03dea7459e Merge remote-tracking branch 'upstream/master' into prompthook 2015-12-15 16:30:51 +01:00
Adrian Sampson
7749cba00e scrub: Demote a log message to debug
This seems unnecessary in the `beet scrub` output.
2015-12-12 18:29:49 -08:00
Adrian Sampson
d5c51dd816 scrub: Restore tags & art in auto mode (#1657) 2015-12-12 18:28:58 -08:00
Adrian Sampson
f5448d1531 scrub: Run on import in auto mode (#1657) 2015-12-12 18:20:05 -08:00
Adrian Sampson
5a285cc11f Fix #1673: Escape regex terms in lyrics 2015-12-12 18:09:24 -08:00
Adrian Sampson
d11fe020ce snake_case variable names 2015-12-12 18:03:12 -08:00
Adrian Sampson
6f6794f560 Merge pull request #1706 from sampsyo/editor
Edit plugin
2015-12-12 18:00:25 -08:00
Adrian Sampson
5597313ea0 fetchart: Remove Google backend (fix #1760) 2015-12-12 16:47:00 -08:00
Adrian Sampson
3314db2f77 fetchart: Better logging for iTunes (#1760) 2015-12-12 16:44:55 -08:00
Diego Moreda
11f4add687 mbsubmit: add example mbsubmit plugin
* Add example "mbsubmit" plugin, which allows the user to print the tracklist
of an unmatched album during the import process in a format understood by
MusicBrainz track parser.
* The plugin listens for the before_choose_candidate event and appends the
track printing options depending on the task status (candidates and
recommendation).
2015-12-11 16:04:13 +01:00
Peter Kessen
f1f1288b30 Merge branch 'master' into editor 2015-12-02 21:35:33 +01:00
Adrian Sampson
a333777946 Merge pull request #1737 from diego-plan9/mbtracks
info plugin: Allow custom formatting and human-readable lengths
2015-11-26 10:31:12 -08:00
Diego Moreda
3cdcaa45a8 info: modify emitter output, clearer path handling
* Make emitters produce a pair (dict, Item), in order to preserve the output
at print_data (dict is used if no custom format is specified, Item otherwise).
* Simplify the handling of the paths, printed at the top of print_data. The
path key is removed from the dict entirely and fetched from the Item.
2015-11-26 15:55:00 +01:00
Diego Moreda
ca63311101 info: revert human_length changes 2
* Remove human_length parameter from print_data()
2015-11-25 17:36:51 +01:00
Diego Moreda
83279ebe5b info: revert human_length changes
* Remove human length changes from the plugin and the tests, as they will
eventually be handled at a higher level.
2015-11-25 16:06:19 +01:00
Diego Moreda
8d9db9ffe6 info: minor cleanups
* Rename filter() function to avoid warning of reserved built-in symbol.
* Remove mediafile fixture on two tests.
2015-11-24 16:41:56 +01:00
Diego Moreda
1ef407672a info: add item format and length format arguments
* Add custom output formatting via a format string to InfoPlugin. The command
accepts a formatting string via the "-f" parameter, which is handled by its
CommonOptionsParser and applied during print_data().
* Modify the emitters in order to include an Item into the list of fields, that
is formatted according to the format string if specified.
* Add an argument to allow the user to choose if track lengths are displayed as
raw floats or using a human-readable form (mm:ss), defaulting to human-readable
form.
2015-11-24 16:31:01 +01:00
Adrian Sampson
c90ca1096c fetchart: Log reasons for rejecting art 2015-11-23 17:30:09 -08:00
Adrian Sampson
1d0984a294 Slight log rewording 2015-11-21 12:54:50 -08:00
Adrian Sampson
eb68177fee Fix #1735: convert --pretend encoding error 2015-11-21 12:40:45 -08:00
Adrian Sampson
6c0f43cf1c Thumbnails: Fix string memory management
Should fix #1433. The problem now was that we were freeing the string memory
that Python expected to be managing in a string object held by the `uri`
variable. Now, we do a silly dance to copy the memory out of the buffer
returned by the library and return that instead.
2015-11-20 11:26:35 -08:00
Adrian Sampson
530b42156b Thumbnails: Declare more interface types
Seems to address a segfault indicated in #1433, but there are still crashes
lurking.
2015-11-20 10:55:25 -08:00
Adrian Sampson
69ffb83453 Eliminate some copypasta 2015-11-19 16:26:27 -08:00
Adrian Sampson
f995ab38db Fix a test and a bug revealed by a test 2015-11-19 16:11:45 -08:00
Adrian Sampson
437959018c Pass through certain "safe" types to YAML
This avoids some round-tripping problems with types (such as ScaledInt) that
are not represented in strings with 100% fidelity. It also makes the syntax
nicer when editing numbers and booleans: they no longer appear to be
needlessly surrounded by quotes in the YAML.
2015-11-19 16:07:20 -08:00
Adrian Sampson
0e20770cc3 Convert YAML keys and values back to strings
I hadn't quite realized before that the user could also change the *keys* to
be non-strings too! This also prevents against that by just reinterpreting
everything as strings.
2015-11-19 15:38:20 -08:00
Adrian Sampson
0873d31419 Catch unexpected YAML type
We need a sequence of dictionaries back; validate this assumption.
2015-11-19 15:34:49 -08:00
Adrian Sampson
3176b83cd7 Use type-based formatting and parsing
All editable values are now strings and are parsed from strings. This closely
matches the behavior of the `modify` command, for example.
2015-11-19 15:25:49 -08:00
Peter Kessen
6b408507f6 added encoding as comment in files
added line like
# -*- coding: utf-8 -*-
to all files without license
2015-11-19 18:52:57 +01:00
Peter Kessen
3eb8008b11 added encoding as comment in files
added line like
# -*- coding: utf-8 -*-
to all files with correct license in header
2015-11-19 18:41:01 +01:00
Adrian Sampson
775a48eb28 --extra/-e is now --field/-f 2015-11-17 14:40:52 -08:00
Adrian Sampson
b33d25a0ad --extra option can use any field
Not just the built-in fields.
2015-11-17 14:39:40 -08:00
Adrian Sampson
f68dc4652a Fix a typo 2015-11-17 13:14:15 -08:00
Adrian Sampson
4db91c8bd2 Fix a too-long line 2015-11-16 13:03:50 -08:00
Adrian Sampson
f767f1c2a3 New confirmation prompt
We now ask for a trinary edit/apply/cancel confirmation *after* showing the
updates. This lets you decide whether you're done based on a "preview" of the
changes and keep editing if they don't look right.
2015-11-16 13:01:24 -08:00
Adrian Sampson
d87a747477 Condense edit plugin documentation
Also avoided adding some unused command-line options.
2015-11-16 12:43:59 -08:00
Adrian Sampson
c679e3f307 Merge branch 'editor' of github.com:sampsyo/beets into editor 2015-11-16 12:28:35 -08:00
Adrian Sampson
feabf1a6ef Offer a chance to fix YAML parse errors
An alternative to 749ef85638 by @jmwatte.
2015-11-16 12:27:32 -08:00
jmwatte
bb39cd509d cleaned up edit.rst 2015-11-16 10:37:38 -08:00
Diego Moreda
917628340e edit: save only items with changes
* Modify save_write() so only the items that do have pending changes (ie. dirty
items) are saved to the database.
2015-11-16 14:48:05 +01:00
Peter Kessen
ecbd337c47 Added file encoding definition to badfiles.py 2015-11-15 14:51:12 +01:00
Adrian Sampson
cfba04bc9d Don't ask for confirmation if nothing changed 2015-11-14 14:58:53 -08:00
Adrian Sampson
80facbab6f More robust forbidden-change detection 2015-11-14 14:57:32 -08:00
Adrian Sampson
1c44969255 Simplify interfaces and add docs 2015-11-14 14:50:24 -08:00
Adrian Sampson
eb1bb132b1 Simplify metadata application 2015-11-14 14:48:10 -08:00
Adrian Sampson
58205e1bef Simplify data filtering 2015-11-14 14:33:04 -08:00
Adrian Sampson
029915814b Abort if nothing changed 2015-11-14 14:28:00 -08:00
Adrian Sampson
5096653483 Simpler serialization
Just use a dictionary instead of a list of tiny one-key dictionaries. Still
need to update the deserialization.
2015-11-14 14:23:57 -08:00
Adrian Sampson
9848b51008 Simplify field selection 2015-11-14 14:19:09 -08:00
Adrian Sampson
105cd73906 Start expunging opts carry-through
A dedicated command function takes care of the options and turns them into
normal variables.
2015-11-14 14:05:40 -08:00
Adrian Sampson
3c01c49a2c Less chatty interface
Removed three prompts:
1. The "really edit?" prompt. If you don't want to edit, you can just not make
   any changes.
2. The "done?" loop. This seems unnecessary; we'll confirm afterward anyway.
3. The YAML checker. This removal could indeed make things inconvenient, since
   your changes get thrown away if you make a YAML mistake. For the moment,
   simplicity is taking priority.
2015-11-14 13:53:25 -08:00
Adrian Sampson
ce31c2df23 Remove some dead code and hoist utility functions 2015-11-14 13:43:58 -08:00
Adrian Sampson
de6813eab5 Remove vestigial editor config option
We now just use $EDITOR.
2015-11-14 13:38:41 -08:00
Adrian Sampson
b33a024549 Simplify write logic 2015-11-14 13:37:17 -08:00
Adrian Sampson
b593d01100 Use qualified names for ui utilities 2015-11-14 13:33:02 -08:00
Adrian Sampson
2d8350ef03 Use standard machinery for opening editor 2015-11-14 13:31:42 -08:00
Adrian Sampson
72b26235ad Merge branch 'master' into editor 2015-11-14 13:28:04 -08:00
Adrian Sampson
e235cb7c42 Remove vestiges of diff_method option 2015-11-14 12:56:53 -08:00
Adrian Sampson
d7d609442e Remove diff_method option
Our built-in "diff"-like functionality is pretty good because it's aware of
beets' data structures and types. This makes it more legible, in my opinion,
than an ordinary textual diff. So for now, I'm making this the only option (in
the spirit of making the plugin as straightforward as humanly possible).
2015-11-14 12:53:45 -08:00
Adrian Sampson
71e1547291 Remove some communication through fields
This is the first of many changes to reduce the use of `self.x` where plain
parameter passing can make things more clear.
2015-11-14 12:50:53 -08:00
jmwatte
5eca75321e simplify by removing sum-option and renaming for clarity 2015-11-13 17:56:03 +01:00
jmwatte
024ab0159b remove webbrowser for opening default editor/browser 2015-11-13 15:03:27 +01:00
jmwatte
386578d69c change opts.extra to type choice 2015-11-13 11:24:19 +01:00
Marvin Steadfast
4b2b9fe2ce Added embyupdate plugin
Its a simple plugin that triggers a library refresh after the library
got changed. It does the same thing like the plexupdate plugin.
2015-11-10 10:15:01 +01:00
Adrian Sampson
48637f22e9 smartplaylist: Handle exceptional cases in setup 2015-11-09 21:52:10 -08:00
Adrian Sampson
9165b7cf45 Trailing comma (#1708) 2015-11-08 13:02:07 -08:00
Diego Moreda
1c09eeb714 edit: delete temporary files, minor style fixes
* Delete NamedTemporaryFiles once they are not needed on several functions
(change_objs(), vimdiff(), html()).
* Fix use of reserved word "id" on same_format().
* Colorize "really modify" prompt with action_default.
2015-11-08 19:37:10 +01:00
Manfred Urban
57faf015d9 Adapted va_name in other files 2015-11-08 17:28:55 +01:00
Manfred Urban
485870f288 Made various artist title configurable 2015-11-08 16:22:36 +01:00
Adrian Sampson
34e6e39fe5 mbsync: Debug logging
Log *something* for each album, so you can tell that it's doing something even
when there are no changes. To help diagnose #1707.
2015-11-07 15:37:13 -08:00
Adrian Sampson
80bfd186ae Use should_write for modify, update, and mbsync
This should address the surprising situation in #1697, where `import` went
fine but then `update` unexpectedly changed filenames.
2015-11-07 13:34:47 -08:00
Adrian Sampson
9f7aa866bd Use ui.should_write everywhere
There sure are a lot of plugins that want to write metadata!
2015-11-07 13:20:09 -08:00
Adrian Sampson
331ced3cca Use existing query mechanism 2015-11-07 12:51:22 -08:00
Adrian Sampson
417eb5e588 Remove use of nonexistent option 2015-11-07 12:46:35 -08:00
Adrian Sampson
519df6da04 Use standard output format for confirmation 2015-11-07 12:45:39 -08:00
Adrian Sampson
7de33c83c4 Remove an unused parameter 2015-11-07 12:39:31 -08:00
Adrian Sampson
fefb2e9914 A little cleanup for legibility and style 2015-11-07 12:36:22 -08:00
Adrian Sampson
7413e17782 Merge pull request #1692 from kooimens/patch-2
Discogs: change album artist to musicbrainz naming
2015-11-06 13:01:23 -08:00
kooimens
414ae131a5 Fix style error 2015-11-06 19:27:36 +01:00
jmwatte
f95611dde4 fixed albumid needs to be int 2015-11-05 16:51:33 +01:00
jmwatte
17a32e33c5 added grouping of fields and "$BROWSER" and "$EDITOR" 2015-11-05 15:41:33 +01:00
jmwatte
51658a7ea6 Merge branch 'editor' of https://github.com/jmwatte/beets into editor 2015-11-05 15:18:46 +01:00
jmwatte
ab3bc356b2 updateMerge branch 'master' of https://github.com/sampsyo/beets into editor 2015-11-05 15:13:07 +01:00
kooimens
da0360bd90 Update discogs.py 2015-11-05 14:50:40 +01:00
Adrian Sampson
7d52fa72ae Fix #1699: Outdated API call
get_fields() was removed in 5420599839.
2015-11-04 20:25:17 -08:00
Adrian Sampson
19cf37263d Fix #1700: Tolerate missing Location in iTunes 2015-11-04 20:11:58 -08:00
Adrian Sampson
be49955884 metasync: More precise exception catching (#1700) 2015-11-04 20:07:49 -08:00
reiv
81a72f74c9 Merge branch 'master' into 314-reimport-art 2015-11-04 18:37:06 +01:00
reiv
0ebc4c799d fetchart: in auto, ignore albums with art
When re-importing an album, we don't want fetchart to interfere
with any existing album art.
2015-11-04 15:08:42 +01:00
Adrian Sampson
a735a6b4a2 discogs: Better exception logging
Might have helped diagnose #1669 more easily.
2015-11-03 22:38:31 -08:00
Adrian Sampson
023a33ca31 Revert "Fix #1656, maybe: encode Discogs token strings"
This reverts commit f784cd1a22.
2015-11-03 22:29:33 -08:00
kooimens
2293e1e09d Discogs: option to change 'various' album artist to 'Various Artists' (Musicbrainz naming)
Just a simple config option to change 'various' album artist to the one that MusicBrainz uses: Various Artists.
2015-11-03 20:03:24 +01:00
jmwatte
1f3a42faf0 Update edit.py 2015-11-03 14:57:07 +01:00
jmwatte
5a8a534a3f Delete yamleditor.py 2015-11-03 14:05:06 +01:00
jmwatte
00b21dfa51 Merge branch 'editor' of https://github.com/jmwatte/beets into editor 2015-11-03 13:59:38 +01:00
jmwatte
2d77861e4d renamed and updated editplugin 2015-11-03 13:55:08 +01:00
Adrian Sampson
38edb18a74 Merge pull request #1683 from sampsyo/1264-unnecessary-resize
Fix #1264: Avoid unnecessary art resizes
2015-11-02 22:39:06 -08:00
reiv
1625dfc17e Merge branch 'master' into 1264-unnecessary-resize 2015-11-03 02:46:33 +01:00
reiv
19dcc25a93 fetchart: Improve validation of image dimensions
This avoids images being resized unnecessarily if the dimensions
are correct.
2015-11-03 02:19:47 +01:00
Adrian Sampson
d79d11fb15 Docstring and rewrap for #1675 2015-11-02 16:45:45 -08:00
Adrian Sampson
e84414c822 Fix syntax (and unused variable) in #1675 2015-11-02 16:44:02 -08:00
Adrian Sampson
efcea9a57f Merge pull request #1675 from kooimens/patch-1
Embedart: remove_art_file on import
2015-11-02 16:42:59 -08:00
kooimens
bcef3a7123 Create function remove_artfile
Damn it, that was really hard for me:D. First time seriously using python. Please review it carefuly.
2015-11-02 23:56:38 +01:00
jmwatte
fdbf9e59e7 Update yamleditor.py
polishing
2015-11-02 23:11:42 +01:00
jmwatte
fe012eae77 new plugin yamleditor 2015-11-02 21:13:58 +01:00
Adrian Sampson
a18506f471 Fix #1686: thumbnails using unicode paths 2015-11-02 11:03:43 -08:00
reiv
db08896d8c fetchart: add docstring to helper function
_is_valid_image_candidate() now has three different return values.
These are documented here.
2015-11-02 03:04:45 +01:00
reiv
9182fd8f04 PEP8 amendments 2015-11-01 16:20:48 -08:00
reiv
3250fa80ae fetchart: Only resize when necessary
Fixes #1264: When a re-import triggers fetchart, the existing album art is no
longer resized if it already has the correct dimensions. This avoids creating
new album art files with unique filenames ("cover.n.jpg").
2015-11-01 16:20:18 -08:00
reiv
269d0e5403 fetchart: Check if album art file actually exists
Fixes #1126.
2015-11-01 16:14:51 -08:00
Adrian Sampson
c617033476 convert: Add some comments 2015-11-01 11:01:40 -08:00
Adrian Sampson
5f5a8946c3 convert: Debug log when embedding images
To help diagnose #1671.
2015-10-30 15:25:01 -04:00
kooimens
0257b1077f Simplify some code 2015-10-30 17:49:57 +01:00
kooimens
0ed98515ad Embedart: remove_art_file on import
Should fix #1662.

I think the fix is easy. Don't know if it's clean though. Did some tests (+/- 10 albums), all successful. This is the first time I'm using python so please let me know what I should improve:)
2015-10-30 17:04:11 +01:00
Adrian Sampson
16ad174d29 A debug message for ReplayGain 2015-10-29 17:43:31 -04:00
Frederik “Freso” S. Olesen
5f5365021d lastgenre: Clean up Spanish reggae in the genre list.
* Add missing subgenres to whitelist and tree.
* Use proper terminology.
  * Add English term as child of Spanish one.

Source: https://en.wikipedia.org/wiki/Reggae_en_Espa%C3%B1ol
2015-10-29 05:00:33 +01:00
Frederik “Freso” S. Olesen
1aa808f37b lastgenre: Add raggamuffin.
Already recognised by the genres.txt whitelist, and is a more proper
term for `ragga`.

https://en.wikipedia.org/wiki/Ragga
2015-10-29 04:58:44 +01:00
Frederik “Freso” S. Olesen
1678c1d847 lastgenre: Replace top-level genre ska with reggae
… and move relevant genres from the tree to be children of the `reggae`
top-level genre as well as add `roots reggae` to the list.

See discussion at https://github.com/sampsyo/beets/issues/1661
2015-10-29 04:55:57 +01:00
Frederik “Freso” S. Olesen
b187251a7e lastgenre: Remove dance hall and polish reggae.
Neither of the two are recognised in the genres.txt whitelist.
2015-10-29 04:53:14 +01:00
Frederik “Freso” S. Olesen
004fb7d1c8 lastgenre: Fix up ragga jungle.
* Move `ragga jungle` to beneath `oldschool jungle`.
* Remove `ragga-jungle` which isn't recognised by the genre whitelist.

https://en.wikipedia.org/wiki/Ragga_jungle
2015-10-29 04:44:15 +01:00
Adrian Sampson
f784cd1a22 Fix #1656, maybe: encode Discogs token strings 2015-10-24 12:07:40 -07:00
Alex Nerten
a4ae7fa891 Update plexupdate.py
Fix #1649
2015-10-19 15:24:59 +03:00
Adrian Sampson
000487c757 Merge pull request #1639 from sadatay/genius_lyrics
Add Genius as a lyric source
2015-10-17 14:51:01 -07:00
Adrian Sampson
8c35a24073 zero: Check for conflicts only once (#1641)
The old version would trigger the warning twice.
2015-10-17 14:39:53 -07:00
Joe LaSala
3ab9932059 Add Genius as a lyric source
Makes use of the Genius API and genius-api.com, a separate resource that
provides readable lyrics.
2015-10-13 19:14:08 -05:00
Adrian Kowalski
d180d42ddb Fix flake8 complaint about line length 2015-10-12 09:50:12 +02:00
Adrian Kowalski
da655534ae Change function name and correct documentation style 2015-10-12 09:39:20 +02:00
Adrian Kowalski
158486319f Improve code quality, separate shared logic into functions 2015-10-09 21:23:59 +02:00
Adrian Kowalski
9f51e46bae Add whitelist feature to zero plugin 2015-10-09 18:41:42 +02:00
Aaron Cruz
5fd836b173 Remove yaml keys without sublists 2015-10-07 12:15:09 +02:00
Adrian Sampson
3475b91c00 Remove unused import
Oops. I was trying to use shlex.quote, but that's Python 3.3+.
2015-09-30 10:32:37 -07:00
Adrian Sampson
2607bee997 Tiny fixes for play 2015-09-30 10:11:17 -07:00
Peter Kessen
6993449602 removed deprecated checko for mtime!=None 2015-09-30 16:40:30 +02:00
Jack Wilsdon
55bd513278 Remove completed TODO comments 2015-09-12 02:17:06 +01:00