Commit graph

2752 commits

Author SHA1 Message Date
Carl Suster
0f53ae9a87 bpd: error instead of crashing on extra argument
If an MPC client is expecting a command to take an argument that bpd
isn't expecting (e.g. because of a difference in protocol versions) then
bpd currently crashes completely. Instead, do what the real MPD does and
return an error message over the protocol.
2019-04-01 14:49:27 +11:00
Carl Suster
d94a5393b2 bpd: fix crossfade command
Although crossfade is not implemented in bpd, we can store the setting
and repeat is back to clients. Also log a warning that the operation is
not implemented.

The real MPD doesn't show the crossfade in status if it's zero since
that means no crossfade, so now we don't either.
2019-04-01 14:49:27 +11:00
Adrian Sampson
c74a7059b4 Merge pull request #3192 from translit/yaml-safe-load
Fix PyYAML yaml.load(input) Deprecation
2019-03-31 21:46:29 -04:00
Adrian Sampson
0208ec69ef Merge pull request #3197 from arcresu/deprecation
Fix several deprecation warnings
2019-03-31 21:44:37 -04:00
Adrian Sampson
0042f3205e Merge pull request #3196 from arcresu/bpd-log
bpd: use plugin logger instead of global logger
2019-03-31 21:41:22 -04:00
Carl Suster
b4c4f3ca19 bpd: use plugin logger instead of global logger 2019-03-31 22:06:43 +11:00
Carl Suster
a6305c36e1 Fix deprecated plistlib function
https://docs.python.org/3.7/library/plistlib.html#plistlib.readPlist
2019-03-31 19:53:17 +11:00
Carl Suster
e4c03fd63f Fix deprecated placement of inline regex flags
https://bugs.python.org/issue22493
2019-03-31 19:44:49 +11:00
Carl Suster
ca60555ffa Fix deprecated call log.warn -> log.warning
https://bugs.python.org/issue13235
2019-03-31 19:44:40 +11:00
Carl Suster
7557bb06d6 bpd: use log instead of stdout 2019-03-31 18:43:18 +11:00
Carl Suster
0b4293de6e
the: log a debug only when text is changed
Previously the `the` plugin would log a debug message when the text _didn't_ get changed by the plugin, whereas I think what was intended was the opposite. With this change the logged messages show the actual transformations made by the plugin.
2019-03-31 18:19:09 +11:00
Alexei Datskevich
be12a89372 Fix PyYAML yaml.load(input) Deprecation 2019-03-30 08:34:13 +01:00
Adrian Sampson
6ee824fb0f Fix #3184: AttributeError in error handler 2019-03-14 09:53:32 -04:00
Jack Wilsdon
9bb6c29d22
Always use custom formatter for formatting hook commands 2019-02-25 14:41:59 +00:00
Adrian Sampson
80f4f0a0f2 badfiles: Fix decoding for command output
Probably fixes #3165. There were several things going wrong here:

1. For some reason, this was using the *filesystem* encoding, which is
   what you use to decode filenames. But this was general command
   output, not filenames.
2. Errors in decoding threw exceptions, even though all we do with this
   output is show it to the user.
3. The prints were using `displayable_path`, even though the lines are
   *already* Unicode strings.

Hopefully this cleans up that mess.
2019-02-24 16:06:36 -05:00
Jan Holthuis
3e10d5d39f badfiles: Fix #3158 by calling superclass __init__ method 2019-02-21 12:40:54 +01:00
Adrian Sampson
be118b922a
Merge pull request #3155 from Holzhaus/fetchart-error-handling
fetchart: Add some error handling to prevent crashes
2019-02-20 08:45:22 -05:00
Bernardo Meurer
9374983e9d
Fixed import order 2019-02-19 18:49:29 -08:00
Bernardo Meurer
e209fe5886
Parallelized beet bad 2019-02-19 18:47:47 -08:00
Jan Holthuis
c07903ed66 fetchart: Add some error handling to prevent crashes
Today I had some network problems regarding dbpedia.org, which made
beets crash because a requests.exceptions.ConnectionError was raised
("[Errno 113] No route to host"). This commits adds some error handling
around network requests to prevent further crashes in the future.
2019-02-19 16:16:56 +01:00
Bernardo Meurer
1dad5ded03
Move absubmit plugin parallelization to util.par_map 2019-02-18 22:42:20 -08:00
Adrian Sampson
81c5ae3fdf
Merge pull request #3151 from Holzhaus/playlist-plugin-additions
playlist: Add auto-update functionality and more tests
2019-02-18 08:40:55 -05:00
Jan Holthuis
4ba5dfaa43 playlist: Remove leftover print call and fix 'auto' option access style 2019-02-18 09:13:39 +01:00
Jan Holthuis
7bca5cf549 playlist: Don't use syspath() when checking if path is absolute 2019-02-17 22:28:39 +01:00
Jan Holthuis
ee2cce4280 playlist: Work around Windows' Mandatory File Locking on playlist updates 2019-02-17 22:12:13 +01:00
Jan Holthuis
d991e2a7d8 playlist: Normalize path before lookup in changes dict 2019-02-17 21:51:09 +01:00
Adrian Sampson
9320db21eb
Merge pull request #3150 from beetbox/named-query
Add support for "named queries" and use them in the playlist plugin
2019-02-17 15:08:31 -05:00
Adrian Sampson
55ef2ffd39 Add future imports to playlist plugin 2019-02-17 14:02:26 -05:00
Adrian Sampson
7efc67eb03 playlist: Use new "named query" functionality 2019-02-17 13:52:00 -05:00
Jan Holthuis
6d42028057 playlist: Add playlist auto-update functionality 2019-02-17 19:38:21 +01:00
Adrian Sampson
00667bda0f Merge pull request #3145 from Holzhaus/playlist-plugin
Playlist plugin
2019-02-17 13:16:26 -05:00
Jan Holthuis
4f1a468aa9 playlist: Restore case sensitivity in col_clause method 2019-02-17 17:34:36 +01:00
Jan Holthuis
055f2d3702 playlist: Also catch IOErrors to restore Python 2.7 compatiblity 2019-02-17 16:00:04 +01:00
Jan Holthuis
f9f2fa0e26 playlist: Restructure playlist reading code and add error handling 2019-02-17 15:17:10 +01:00
Jan Holthuis
19b92e1199 playlist: Improve speed in PlaylistQuery class
Implement the col_clause method for faster, sqlite-based querying. This
will only make a difference if the "fast" kwarg is set to True.
2019-02-17 14:38:36 +01:00
Jan Holthuis
a80a07f093 playlist: Add playlist plugin
Adds M3U playlist support as a query to beets and thus partially
resolves issue #123. The implementation is heavily based on #2380 by
Robin McCorkell.

It supports referencing playlists by absolute path:

    $ beet ls playlist:/path/to/someplaylist.m3u

It also supports referencing playlists by name. The playlist is then
seached in the playlist_dir and the ".m3u" extension is appended to the
name:

    $ beet ls playlist:anotherplaylist

The configuration for the plugin looks like this:

    playlist:
        relative_to: library
        playlist_dir: /path/to/playlists

The relative_to option specifies how relative paths in playlists are
handled. By default, paths are relative to the "library" directory. It
also possible to make them relative to the "playlist" or set the option
or set it to a fixed path.
2019-02-17 14:38:36 +01:00
Adrian Sampson
69fbba1eed
Merge pull request #3144 from Holzhaus/add-id3v23-to-convert
Add id3v23 option to convert plugin
2019-02-15 09:51:46 -07:00
Jan Holthuis
7afeb9b2ac convert: Add id3v23 config option to convert plugin 2019-02-14 23:42:36 +01:00
Adrian Sampson
f54042f194 Make a comment into a full sentence 2019-02-08 18:18:30 -08:00
jan
5ace667757 add forgotten request_finished 2019-02-08 01:09:07 +01:00
jan
9bc3898951 add request_finished function, rename wait_for_rate_limiter to request_start, add doc and changelog 2019-02-08 01:02:33 +01:00
jan
77fd5ee548 keep discogs requests below rate limit 2019-02-08 00:05:07 +01:00
Adrian Sampson
c7c90a51c6
Merge pull request #3135 from wildthyme/master
Support ipfs add --nocopy in ipfs plugin
2019-02-01 10:04:00 -05:00
Jack Wilsdon
2bc04bb605
Use "==" when comparing strings 2019-01-31 00:15:55 +00:00
Jack Wilsdon
768770d561
Fix incorrect indentation 2019-01-31 00:15:42 +00:00
Iris Wildthyme
2b82831b7b added --nocopy support 2019-01-30 16:36:46 -05:00
Rahul Ahuja
5fbb28637d Set Spotify AlbumInfo.mediums 2019-01-23 19:54:14 -08:00
Rahul Ahuja
6a9b62a9c2 Specify None rtype in doscstrings 2019-01-22 20:54:46 -08:00
Rahul Ahuja
8c6cc6573c Unidecode query string 2019-01-22 19:42:25 -08:00
Rahul Ahuja
b91406b252 Backwords-compatible str/unicode 2019-01-22 18:59:15 -08:00
Rahul Ahuja
c6b8f6d143 Fix formatting/spelling 2019-01-22 18:09:10 -08:00
Rahul Ahuja
f7d20090e6 Fix _handle_response reauth bug and empty str query construction 2019-01-22 12:14:52 -08:00
Rahul Ahuja
7b57b0b608 Appease Flake8 2019-01-22 10:53:18 -08:00
Rahul Ahuja
3a67eae46d Use track attrs directly, better naming/docstrings 2019-01-22 10:41:18 -08:00
Rahul Ahuja
09fc53eaea Only parse Spotify ID when necessary 2019-01-21 23:53:19 -08:00
Rahul Ahuja
96fda0df0d Docstring formatting 2019-01-21 23:36:51 -08:00
Rahul Ahuja
77f9a930b7 Fix remaining test, use official doc wording 2019-01-21 23:15:08 -08:00
Rahul Ahuja
0527edbd48 Fix test index, add docstrings 2019-01-21 23:05:47 -08:00
Rahul Ahuja
f63beca39a Switch filter ordering in test 2019-01-21 22:35:12 -08:00
Rahul Ahuja
48401c60dc Switch query filter ordering for tests 2019-01-21 22:27:31 -08:00
Rahul Ahuja
42e852cc7e Clarify _search_spotify return type 2019-01-21 22:12:56 -08:00
Rahul Ahuja
aa18f9116d Refine doc wording 2019-01-21 22:01:30 -08:00
Rahul Ahuja
265fcc7cea utilize track_for_id in item_candidates 2019-01-21 21:45:50 -08:00
Rahul Ahuja
5472a49991 Add candidates and item_candidates, modularize Search API queries 2019-01-21 21:24:41 -08:00
Rahul Ahuja
dab62f2194 inline auth_header property 2019-01-21 09:23:38 -08:00
Rahul Ahuja
b50e148bec use official client ID/secret, remove usage from docs 2019-01-21 08:32:57 -08:00
Rahul Ahuja
cb8b0874d4 naming 2019-01-21 01:56:57 -08:00
Rahul Ahuja
415b21cbc1 fix var reference, add docstring 2019-01-21 01:30:37 -08:00
Rahul Ahuja
844b940832 capture TrackInfo.medium_total 2019-01-20 15:32:07 -08:00
Rahul Ahuja
dbf17f760e add TrackInfo.medium 2019-01-20 15:09:51 -08:00
Rahul Ahuja
78a46fd4d0 doc typo 2019-01-20 15:02:19 -08:00
Rahul Ahuja
b4d54b0950 set TrackInfo.index in track_for_id 2019-01-20 15:00:32 -08:00
Rahul Ahuja
082357b063 document new functionality, use Spotify ID for AlbumInfo.album_id 2019-01-20 12:40:11 -08:00
Rahul Ahuja
287c767a6d fix formatting 2019-01-20 11:24:33 -08:00
Rahul Ahuja
695dbfaf80 copy album_distance, track_distance from Beatport plugin 2019-01-20 03:20:18 -08:00
Rahul Ahuja
bb1ed67e2d use open.spotify.com URL for data_url 2019-01-20 02:43:54 -08:00
Rahul Ahuja
02aa79ae61 add more docstrings 2019-01-20 02:28:59 -08:00
Rahul Ahuja
b95eaa8ffe fix test, document Spotify ID 2019-01-20 02:20:10 -08:00
Rahul Ahuja
9a30000b56 better naming, formatting 2019-01-20 02:04:46 -08:00
Rahul Ahuja
60c9201e4a modularize Spotify ID parsing 2019-01-20 01:54:08 -08:00
Rahul Ahuja
91b2e33569 support album autotagging 2019-01-20 01:33:19 -08:00
Rahul Ahuja
e95b8a6ee0 add docstrings, separate TrackInfo generation 2019-01-20 00:41:14 -08:00
Rahul Ahuja
3309c555ed better naming, documentation 2019-01-20 00:05:56 -08:00
Rahul Ahuja
104f6185ab revert unnecessary double --> single quotes 2019-01-19 23:57:36 -08:00
Rahul Ahuja
337cf2a1c3 appease Flake8 2019-01-19 23:35:06 -08:00
Rahul Ahuja
dc77943da2 try oauth token mock 2019-01-19 23:21:02 -08:00
Rahul Ahuja
e6c8f79a07 resolve python2/3 bytes/str incompatibilities, simplify authentication 2019-01-19 22:55:40 -08:00
Rahul Ahuja
c1cb7a2941 address py3 compatibility later 2019-01-19 19:29:35 -08:00
Rahul Ahuja
8bdd927d20 try b64 encode/decode 2019-01-19 19:17:34 -08:00
Rahul Ahuja
160d66d05c b64encode with bytes 2019-01-19 19:04:15 -08:00
Rahul Ahuja
3639971391 remove unused import 2019-01-19 18:48:46 -08:00
Rahul Ahuja
1a9f20edfe unregister import_begin listener 2019-01-19 18:42:29 -08:00
Rahul Ahuja
82319734cb black -S -l 79 autoformat 2019-01-19 18:32:41 -08:00
Rahul Ahuja
204a1453c4 Update spotify.py 2019-01-19 18:06:17 -08:00
Adrian Sampson
8cfbc8274e
Merge pull request #3099 from regagain/fetchart_respect_ignore_settings
Fetchart respect ignore settings
2018-12-21 11:45:40 -05:00
Reg
2ea77652a7 Fetchart: Respect ignore and ignore_hidden settings when fetching art
from the local filesystem.
2018-12-20 18:44:46 +01:00
Reg
21145731e4 Fixed docstring typo. 2018-12-20 18:19:00 +01:00
Jan Holthuis
d2521d9256 Fix acoustid_fingerprint type confusion
Since pyacoustid returns the fingerprint as bytes (and thus causes the
database to store a bytes/BLOB object), but the tag value is a string,
the acoustid_fingerprint tag always causes file change when using beet's
"write" command, even if the actual value didn't change.

Issue #2942 describes the problem.

This commit fixes that issue for newly imported/fingerprinted files. However,
you still need to change the type of all acoustid_fingerprint fields
that are already present in the database:

    $ sqlite3 beets.db
    SQLite version 3.26.0 2018-12-01 12:34:55
    Enter ".help" for usage hints.
    sqlite> UPDATE items SET acoustid_fingerprint = CAST(acoustid_fingerprint AS TEXT);
2018-12-19 10:30:50 +01:00
Adrian Sampson
17d9882389 Make the path-field-remover function more obvious
An amendment to #3084.
2018-12-01 16:57:25 -05:00
Domen
5de3ee9a5f Export plugin can now export path from library, if explicitly specified as field to export. Info plugin behaviour is unchanged. 2018-11-28 20:19:37 +01:00