Commit graph

2519 commits

Author SHA1 Message Date
konman2
578143ae12 updated to pass pep8 checks 2017-10-07 21:28:33 -07:00
konman2
fdeef05cc9 clearart asks for permission before deleting embedded albumart 2017-10-07 20:42:01 -07:00
Adrian Sampson
114a2f8bd4 Merge pull request #2707 from gdtwst/mpdstats_edits
mpdstats: update stats when switching from song to stream and when playing a song consecutively
2017-10-07 09:06:51 -07:00
gdtwst
e5afc5e0b3 Remove whitespaces from empty line 2017-10-07 19:00:08 +07:00
Heinz Wiesinger
bd6645d135 Fix album replaygain calculation with gstreamer backend.
Fixes #2636
2017-10-04 20:22:01 +02:00
gdtwst
c2770a5f6b Enable play counts for repeated plays of the same song. 2017-10-04 19:10:59 +07:00
gdtwst
eb338d208b Register song changes when switching from song to stream URL 2017-10-04 16:35:22 +07:00
j000
5a82c7ead1 Remove whitespaces from empty line 2017-09-27 23:31:35 +02:00
j000
77e8f21094 [Play plugin]Respect relative paths when using albums 2017-09-26 03:20:00 +02:00
Jonas Wagner
114a6f80da Fix the --key option in the duplicates plugin.
During a refactoring, the "dest='keys'" parameter was lost. This caused
the option to not have any effect.
2017-09-22 20:27:47 +02:00
David Logie
bed003f97b Use the built-in method of overriding config with cli options. 2017-09-18 18:19:51 +01:00
David Logie
61b0246651 mbcollection: Add support from removing albums.
Add a new ``mbcollection.remove`` configuration option (default: None)
and a new ``-r`` (``--remove``) flag which removes albums from
collections that are no longer present in the beets database.

The ``-r`` flag takes precedence over the ``remove`` configuration
option.
2017-09-14 15:49:42 +01:00
zigarrre
b376139663 Refactored move functions for clarity according to #2682
The move functions in library.py and manipule_files in importer.py where
changed to use a single parameter for the file operation instead of
multiple boolean flags.

A typo in the documentation of the Album.move and Item.move functions
confusing True and False when describing the store parameter was fixed
as well.
2017-09-11 17:03:44 +02:00
David Logie
7db09c6aba Silence pep8 warning. 2017-09-09 19:13:44 +01:00
David Logie
46f7ce78f1 mbcollection: Support specifiying collection ID. 2017-09-09 18:59:25 +01:00
euri10
25fb2453b4 Modified the name of the fetchart plugin switch from missing to quiet 2017-09-05 18:27:47 +02:00
euri10
b2fd274e2c Added a missing switch to the fetchart command so that only missing albums
are displayed
2017-09-05 16:34:26 +02:00
Adrian Sampson
34246a00e7 Fix #2673: JSON file encoding in absubmit
First, it's best to open the file as binary so the JSON module itself
can figure out how to decode it (it will just use UTF-8). Then, we can
use `load` instead of `loads` to avoid needing to read the file
explicitly ourselves.
2017-08-27 10:20:36 -04:00
Adrian Sampson
015aee3662 Fix #2671: missing syspath on acoustid call 2017-08-26 11:18:27 -04:00
wordofglass
8833fef249 Merge pull request #2668 from wordofglass/edit_logic
Edit plugin logic: Regression from previous PR; incorrect diffs
2017-08-25 15:52:40 +02:00
wordofglass
7f12cc0c88 edit, Model.copy: documentation improvements 2017-08-25 15:47:07 +02:00
wordofglass
352d99cccd edit: Do not deepcopy objects, finally fixes the regression from #2659
Deepcopying fails if a database is attached as Model._db since the
sqlite connection objects it contains are non-copyable
2017-08-24 15:03:18 +02:00
wordofglass
33f7e67943 edit: Fix a regression from #2659 when re-tagging albums 2017-08-24 13:40:50 +02:00
wordofglass
989845199b edit: Correctly reset the old object, do not reload it from the tags
Previously, if continuing to edit (i.e. invoking the $EDITOR) multiple
times in one invocation of EditPlugin.edit_objects, the plugin would
reload the old state from the file tags. The initial 'old state' is
usually only loaded from the database, though. As a consequence, if
database and tags were not in sync, the diffs from first and all
subsequent edits could differ unexpectedly.
2017-08-24 13:40:35 +02:00
Adrian Sampson
d87c73efb3 Merge pull request #2662 from natezb/master
Fix kodiupdate URL and add better error reporting
2017-08-22 12:59:19 -04:00
wordofglass
df479d686d Fix the edit plugin displaying bogus data or even crashing on re-imports 2017-08-21 00:32:03 +02:00
Nate Bogdanowicz
f5dbb7b0c5 Make error handling and logging more detailed 2017-08-20 14:51:03 -07:00
Nate Bogdanowicz
7eb9913391 Fix kodi url 2017-08-20 13:14:48 -07:00
Adrian Sampson
51961bbba2 gmusic: Use Unicode literals (#2660) 2017-08-20 13:03:40 -04:00
David Logie
f909f092fc Fix importfeeds plugin on Python 3. 2017-08-12 16:45:13 +01:00
Adrian Sampson
c06eca7e58 Merge pull request #2634 from anarcat/musixmatch-block-detect
lyrics: detect MusixMatch blocking
2017-07-18 17:13:31 -04:00
Antoine Beaupré
5ef68783a8
strip trailing and leading extra dashes
those are introduced if non-word characters are found, and are ugly
2017-07-18 16:33:22 -04:00
Antoine Beaupré
b4b5473093
add pointer to slugify in slug 2017-07-18 16:14:10 -04:00
Antoine Beaupré
a8afabea80
move slug utility function to top-level
it's a generic utility function that can be reused, there's nothing
class-specific about it.
2017-07-18 16:12:48 -04:00
Antoine Beaupré
5e8d17a4fc
lyrics: detect MusixMatch blocking
we just look for the bad string in the HTML. this has the downside
that we may consider songs that have those exact lyrics (you never
know, really) may trigger this warning as well and we would fail to
fetch those songs.

we also fail if lyrics contain another magic string that seems to come
up when you do fill in the CAPTCHA after being blocked.
2017-07-17 12:21:55 -04:00
Antoine Beaupré
458f3636f4
compare artists based on the slug
this is necessary because otherwise artists with different string
representations but the same slug would overwrite one another

this outlines more clearly the code duplication between the rst code
and the slugify function, something which can be fixed later.
2017-07-17 11:59:14 -04:00
Antoine Beaupré
9c36a41ea8
slight refactoring: strip album only once 2017-07-17 11:50:15 -04:00
Antoine Beaupré
9894e8752b
ignore trailing/leading whitespace when comparing artists 2017-07-17 11:49:35 -04:00
Antoine Beaupré
36f84bfedd
add missing trailing newline after lyrics block
this would yield a warning for every song
2017-07-17 11:44:06 -04:00
Adrian Sampson
b303d5beb0 Slightly more complete sentences in comments 2017-07-17 10:59:04 -04:00
Antoine Beaupré
93966ed4ee
strip whitespace in titles
this would cause problems with songs that had trailing spaces with the
index directive
2017-07-17 09:00:22 -04:00
Antoine Beaupré
b6e42ee2e8
fix another unicode error
the unicode strings are not binary - rely on Python to do the right
thing here instead of encoding a string we know is already properly
encoded
2017-07-17 08:55:09 -04:00
Antoine Beaupré
6d58110bd2
move heredocs to top-level globals 2017-07-17 08:50:19 -04:00
Antoine Beaupré
7e0a48a46d
s/rest/rest/ 2017-07-17 08:49:40 -04:00
Adrian Sampson
9de94378b9 An even shorter metavariable 2017-07-16 10:14:49 -04:00
Adrian Sampson
813cf97686 Better metavariable for lyrics --help output 2017-07-16 10:10:41 -04:00
Antoine Beaupré
5d8c15980e
fix flake8 warning 2017-07-15 16:24:07 -04:00
Antoine Beaupré
0bcd16f1ab
deal with encoding issues in python3
when we encode explicitly, we return bytes, so open files as binary
2017-07-15 16:21:41 -04:00
Antoine Beaupré
f667428758
write sphinx base files
we write the artists files in a subdirectory, to avoid infinite
recursions or flooding the current directory needlessly.

this way, the user has a good base structure and can just chain the
command into sphinx to continue building the next format, after
possible tweaks.
2017-07-15 15:43:16 -04:00
Antoine Beaupré
e6adb5e7da
cosmetic: do not use needless heredoc 2017-07-15 15:33:35 -04:00
Antoine Beaupré
91de8aac84
move rst writer to a different function
this simplifies and clarifies the code, although we need to call the writerst function twice to wrap up at the end of the loop
2017-07-15 15:33:35 -04:00
Antoine Beaupré
d330353e1c
rename the skip option to local
skip was a misnomer: we actually skip "unfetched" lyrics. this means
it's somewhat of a double-negative and really confusing.

--local is clearer, although less in opposition with --force
2017-07-15 14:19:25 -04:00
Antoine Beaupré
ac32ae574c
optimize: write only 3 times per file
this makes the code more readable and reduces the number of syscalls
to write files
2017-07-15 09:23:59 -04:00
Antoine Beaupré
469c03a7bf
deal properly with empty album titles 2017-07-15 09:23:59 -04:00
Antoine Beaupré
63aa3b3165
write to separate rst files
this makes the ePUB easier to parse by e-readers, because they do not
need to load one giant HTML file, but one per author. it also makes
sphinx rendering more efficient and interactive
2017-07-15 09:23:58 -04:00
Antoine Beaupré
0fbfa1feae
render RST instead of HTML
ReStructuredText has the advantage over HTML that it can be rendered
easily to multiple formats (HTML, ePUB, PDF) and it supports indexes.

the output needs to be fed into a file and integrated into an existing
Sphinx document, of course.
2017-07-14 17:34:55 -04:00
Antoine Beaupré
9f3e5b28b4
output lyrics in HTML, allow skipping
the idea here is to format the lyrics output a little better so that
it can (for example) be shown as a web page or an ebook.

the new skip option allows for faster generation of the output in the
(most common) case where not all lyrics are available.
2017-07-14 15:31:22 -04:00
Michal Koutenský
70a2ad354b fixes issue #2615 2017-07-04 15:53:02 +02:00
masi
3bea876111 Fix #1918: ValueError on trying to import 2017-06-17 23:20:46 +02:00
Adrian Sampson
f2b6801e6c Merge pull request #2596 from aranc23/metasync-fixes
do not quote the value in xml, use quoteattr to add quotes as needed
2017-06-15 21:01:46 -04:00
Adrian Sampson
8ba0060f44 Wrap a long line 2017-06-15 20:46:54 -04:00
Adrian Sampson
009c6a4f6d Slightly clearer layout for #2593, and comments 2017-06-15 17:51:14 -04:00
Aran Cox
f36c70c754 do not quote the value in xml, use quoteattr to add quotes as needed 2017-06-15 09:00:59 -05:00
robot3498712
cafbb2438e fixed failing test - line too long 2017-06-15 13:27:28 +02:00
robot3498712
bc8a8ecf5f fix /issues/2592: web: Use Unicode paths to send files on Windows under Python 2 2017-06-15 12:49:00 +02:00
Adrian Sampson
ace5656e36 Complete set of __future__ imports 2017-06-14 19:08:27 -04:00
Adrian Sampson
1f2b8cef97 Tiny code and docs fixes for gmusic (#2586) 2017-06-14 19:05:38 -04:00
Adrian Sampson
4563e3b6dd Merge pull request #2586 from tigranl/gmusic
Add Google Music plugin
2017-06-14 18:52:20 -04:00
Tigran Kostandyan
06f86c82e5 PEP8 2017-06-11 22:36:09 +03:00
Tigran Kostandyan
28ba733ebe Add custom exception and mark fields as redacted.
Remove Musicmanager global variable.
Update gmusic.rst
2017-06-11 22:27:44 +03:00
Adrian Sampson
290162a7eb Merge pull request #2294 from anshuman73/master
Fixed #2200 and a small typo
2017-06-10 20:50:50 -04:00
Adrian Sampson
15a7dfccff Merge pull request #2583 from yacoob/master
Fix a lastgenre crash
2017-06-10 20:47:19 -04:00
tigranl
b1d8321e40 Add Google Music plugin 2017-06-05 16:48:23 +03:00
Jakub Turski
ee46a5150f Don't crash if non-canonical genre and prefer_specific: yes.
Also, add a test for this.
2017-06-02 15:48:05 +01:00
Michal Koutenský
2685f13315 replaygain: support r128 2017-05-17 21:48:01 +02:00
Adrian Sampson
faf8be089b Merge pull request #2549 from Kraymer/drop-lyrics-com
Drop lyrics.com backend
2017-05-04 09:34:48 -04:00
Adrian Sampson
b57c49d738 Add a period to a comment, simplify one expression
w.r.t. #2542
2017-05-04 09:29:27 -04:00
Adrian Sampson
908b8dca97 Merge pull request #2542 from ocelotsloth/2532-web-serializer-bytes
web: #2532 - Decode bytes values to strings
2017-05-04 09:20:38 -04:00
Fabrice Laporte
409f070970 Remove lyrics.com source 2017-05-03 22:54:09 +02:00
Mark Stenglein
22f07b91e9 web: __init__: _rep: Make the looping more pythonic
As suggested, changes around the for loop to make it a bit more
pythonic by using an if loop inside a normal for loop.

Signed-off-by: Mark Stenglein <mark@stengle.in>
2017-05-03 16:36:40 -04:00
Mark Stenglein
9394e0ac63 web: __init__: _rep: change to base64 encoding
As suggested, this commit adds base64 encoding for the bytes
encoding.

Signed-off-by: Mark Stenglein <mark@stengle.in>
2017-05-03 16:34:30 -04:00
Fabrice Laporte
fc6b65d592 Merge pull request #2538 from Kraymer/lyrics-test
Tests to track whether lyrics websites are correctly fetched
2017-05-03 20:02:03 +02:00
Mark Stenglein
471d46d67e web: __init__: _rep: Filter all bytes for serializer
This commit fixes issue #2532 by filtering out any byte values
added by any other extensions and decoding them to strings for the
JSON serializer.

It does not remove any of the keys, instead opting to just convert
them.

Signed-off-by: Mark Stenglein <mark@stengle.in>
2017-05-03 00:03:05 -04:00
Fabrice Laporte
7dab9f339e Restore beets module import 2017-05-02 23:48:20 +02:00
Fabrice Laporte
07af27e44b Lyrics are last paragraph with class 'mxm-lyrics__content'
Remove ‘data-reactid’ from marker.
2017-05-02 23:40:25 +02:00
Fabrice Laporte
3e38a33c4a Fix PEP8 2017-05-02 23:37:20 +02:00
Fabrice Laporte
11eb90c758 Fix PEP8 2017-05-02 07:46:51 +02:00
Fabrice Laporte
3e3ad6974c Fix PEP8 2017-05-02 07:30:40 +02:00
Fabrice Laporte
a165d6c00b Fix MusiXmatch text extraction markers 2017-05-01 23:40:09 +02:00
Fabrice Laporte
2bf58a61c3 Decode string with Unicode escape 2017-04-30 23:14:23 +02:00
wordofglass
bb5629ea1d Remove untyped except statements 2017-04-29 00:05:20 +02:00
Jakub Wilk
95a868bb50 Don't hardcode errno constant
The value of ENOENT is architecture-dependent, so don't assume
it's always 2.
2017-04-23 23:28:32 +02:00
Adrian Sampson
fae8fcc932 ftintitle: Clarify indexing
This can only be a two-element array, so just use the index 1. This matches
better with the comments, that say "right-hand side" instead of "the last
value in the list."
2017-04-19 19:08:15 -04:00
Adrian Sampson
9d42728f7f ftintitle: Clarify control flow
Assigning to this variable made it hard to tell what the function was actually
returning.
2017-04-19 19:07:29 -04:00
Adrian Sampson
78f19db511 Merge pull request #2521 from tweitzel/master
add --yes argument to play command
2017-04-19 18:59:50 -04:00
xarph
02aa6191c1 rename --force to --yes in play plugin
fix some pep8 goo
2017-04-19 10:51:44 -07:00
xarph
ffcaf33845 add -f argument to play command 2017-04-18 15:30:24 -07:00
Adrian Sampson
a2eb6fae0b Merge pull request #2518 from jwilk/re.sub
Fix misuse of flags in re.sub() calls
2017-04-15 12:00:09 -04:00
Jakub Wilk
d3664ad5db Fix misuse of flags in re.sub() calls
The 4th argument of re.sub() is maximum number of substitutions,
not flags.
2017-04-15 14:44:19 +02:00
Adrian Sampson
c7801d4cc0 Attempted fix for #2515 (convert on Windows)
On Python 3, this tries to pass through the Unicode filename representation
for paths to the Windows API.
2017-04-14 09:31:30 -04:00