Commit graph

8853 commits

Author SHA1 Message Date
Carl Suster
e27c6e480b docs: add query API reference 2019-06-05 13:10:10 +10:00
Carl Suster
984aa223c6 docs: highlight model field API 2019-06-05 13:03:36 +10:00
Carl Suster
0e65800fbc Expand library API docs 2019-06-05 12:49:39 +10:00
Carl Suster
3b2d621099
Merge pull request #3294 from beetbox/arcresu-patch-2
Add repology badge
2019-06-05 11:45:50 +10:00
Carl Suster
da8f4a294e Add repology badge
This is just to advertise that beets is available in distros. The badge links to a list of distro packages for beets and the current versions they have available, which is useful for users and contributors.
2019-06-05 11:43:04 +10:00
Carl Suster
9f9af300e8
Merge pull request #3296 from FichteForks/pr/https
Update a lot of URLs to use HTTPS
2019-06-05 11:39:09 +10:00
FichteFoll
aa31fea037
Update a lot of URLs to use HTTPS
*All* URLs were checked manually, but only once per domain!

I mostly concerned myself with URLs in documentation rather than source
code because the latter may or may not have impactful changes, while the
former should be straight forward.

Changes in addition to simply adding an s:

- changed pip and pypi references as their location has changed
- MPoD (iOS app) url redirects to Regelian, so I replaced those
- updated homebrew references

Notable observations:

- beets.io does have HTTPS set up properly (via gh-pages)
- beatport.py uses the old HTTP url for beatport
- as does lyrics.py for lyrics.wikia.com
- https://tomahawk-player.org/ expired long ago, but the http page
  redirects to https regardless
- none of the sourceforge subdomains have https (in 2019!)
2019-06-05 03:11:49 +02:00
Carl Suster
be1daa9771
Merge pull request #3214 from arcresu/bpd-mpd16
bpd: support MPD 0.16 protocol and more clients
2019-06-03 10:39:35 +10:00
Adrian Sampson
5a3157d85d Try to make a test more reliable
As @arcresu pointed out on Gitter, this openSUSE patch adds a safeguard
to this test, which was apparently failing for them:
https://build.opensuse.org/package/view_file/openSUSE:Factory/beets/fix_test_command_line_option_relative_to_working_dir.diff?expand=1

Reading the configuration once here to make sure that we're in a clean
state seems harmless enough. The culprit is likely that a previous test
was modifying the configuration and not properly cleaning up. This
change defends against that kind of mistake.
2019-06-02 20:16:51 -04:00
Adrian Sampson
94b38ee78c
Merge pull request #3285 from arcresu/cookbook
Move wiki cookbook to the docs
2019-06-02 19:47:24 -04:00
Carl Suster
65432bbb2d Changelog for #3214 2019-06-02 23:50:20 +10:00
Carl Suster
6054550178
Merge pull request #3288 from arcresu/confuse-package-path
Avoid using an internal confuse function
2019-06-02 23:49:17 +10:00
Carl Suster
62aa358ce7 bpd: bump protocol version to 0.16 2019-06-02 23:37:07 +10:00
Carl Suster
d8be83bc0d bpd: support ranges in playlistid 2019-06-02 23:37:07 +10:00
Carl Suster
dc7e3b9b6a bpd: support nextsong in status 2019-06-02 23:37:07 +10:00
Carl Suster
fdd809fd36 bpd: support more tagtypes 2019-06-02 23:37:07 +10:00
Carl Suster
cc2c35221d bpd: avoid sending playlist events on navigation 2019-06-02 23:37:07 +10:00
Carl Suster
5187100294 bpd: accept all idle events 2019-06-02 23:37:07 +10:00
Carl Suster
27c462d287 bpd: make noidle a no-op outside idle mode
The real MPD ignores `noidle` when the client is not idle. It doesn't
even send a successful response, just ignores the command. Although
I don't understand why a client would fail to keep track of its own
state, it seems that this is necessary to get ncmpcpp working.
2019-06-02 23:37:07 +10:00
Carl Suster
e708d28f85 bpd: allow fractional seconds in seek
The documented type is float, not integer, and clients like mpDris2 send
fractional seconds, causing them to crash if these values ar enot
accepted.
2019-06-02 23:37:07 +10:00
Carl Suster
1a5263b68f bpd: support volume command for real 2019-06-02 23:37:07 +10:00
Carl Suster
5c37a58ad6 bpd: add more tests 2019-06-02 23:37:07 +10:00
Carl Suster
59c506990a bpd: fix bug in playlistid
The playlistid command is supposed to list the whole playlist if no
argument is provided, but we were accidentally trying to look up an
impossible negative id in that case causing an error to always be
returned.
2019-06-02 23:37:07 +10:00
Carl Suster
64ed54330b bpd: mention control socket address in log 2019-06-02 23:37:07 +10:00
Carl Suster
80286ea898 bluelet: catch ECONNRESET
When ncmpcpp quits after an error it causes a "connection reset by peer"
exception, also known as ECONNRESET (104) in errno terms. In Python
2 this is mapped to a `socket.error` and in Python 3 this is
  `ConnectionResetError` which is thankfully a subclass of the
  `socket.error` exception class.
2019-06-02 23:37:07 +10:00
Carl Suster
5b7b5061e7 Avoid using an internal confuse function 2019-06-02 23:16:30 +10:00
Carl Suster
176fac781f docs: update cookbook for modern beets 2019-06-02 22:25:26 +10:00
Carl Suster
aa9e39327d docs: document 'quiet' config item 2019-06-02 22:25:26 +10:00
Carl Suster
ad695a34e4
Merge pull request #3287 from beetbox/arcresu-patch-1
Retry dependency installation commands on AppVeyor
2019-06-02 22:01:32 +10:00
Carl Suster
b0d476ae78
Retry dependency installation commands on AppVeyor
There's an `appveyor-retry` command that should help to make some of the dependency installation more reliable and the AppVeyor tests less flaky.
2019-06-02 21:30:57 +10:00
Carl Suster
9e60b3101a
Merge pull request #3286 from arcresu/pytest-warnings
tests: avoid non-test classes named Test*
2019-06-02 16:53:26 +10:00
Carl Suster
10d41a1cbb tests: avoid non-test classes named Test*
When using pytest's test collector, any class with a name starting with
Test is collected. If it notices that the class has an `__init__` member
then it skips it with a warning since it's probably a false positive.
This isn't a big deal, but we can avoid warnings like this:

    test/test_ui_importer.py:33
      beets/test/test_ui_importer.py:33: PytestCollectionWarning: cannot collect test class 'TestTerminalImportSession' because it has a __init__ constructor
        class TestTerminalImportSession(TerminalImportSession):

simply by renaming TestX to XFixture.
2019-06-02 16:35:37 +10:00
Carl Suster
8bea1cc7f5 docs: add report recipe 2019-06-02 16:07:07 +10:00
Carl Suster
001183ec54 docs: add cron import recipe 2019-06-02 16:01:10 +10:00
Adrian Sampson
81b1faa053 inline: Fix a ridiculously subtle flexattr bug
As detailed here:
https://github.com/beetbox/beets/issues/2406#issuecomment-274423601

In a *function-style* definition, we didn't properly *un-define* the
values for a given item after each function invocation. So when a field
wasn't defined, it would get the value for the previously-formatted
object instead. It now properly throws a NameError.
2019-06-01 12:28:47 -04:00
Adrian Sampson
cd66c5d752 Link to beet-summarize (fix #3177) 2019-06-01 12:03:03 -04:00
Carl Suster
a0c7697353
Merge pull request #3267 from arogl/patch-1
Update setup.py to install to a directory rather than egg file
2019-06-01 12:48:07 +10:00
Carl Suster
3161e27226
Merge pull request #3224 from arcresu/confuse
confit: replace with a re-export of beetbox/confuse
2019-06-01 12:39:06 +10:00
Carl Suster
1a16537a3f
Merge pull request #3282 from beetbox/arcresu-patch-1
Update Python 3 versions for CI
2019-06-01 12:22:15 +10:00
Carl Suster
a04666eea2 Test on Python 3.7 on AppVeyor 2019-06-01 10:54:45 +10:00
Carl Suster
a86b74943a Update Python 3 versions for Travis 2019-06-01 10:54:30 +10:00
Carl Suster
57d5c77b33 Changelog for #3224 2019-06-01 10:24:15 +10:00
Carl Suster
d2f13bf65c confit: replace with confuse in tests 2019-06-01 10:13:13 +10:00
Carl Suster
6382c364e2 confit: replace with confuse in plugins 2019-06-01 10:03:41 +10:00
Carl Suster
a82002e6c1 confit: replace with confuse in core beets 2019-06-01 09:51:56 +10:00
Carl Suster
f1c9b11635 confit: depend on new confuse and remove backports 2019-06-01 09:40:48 +10:00
Carl Suster
e2d7780f97 confit: replace with a wrapper around confuse
This re-exports all of the confuse module under `beets.util.confit` and
patches in the minimum subset of commits to confit that have not yet
been ported to confuse such that the test suite passes. A warning is
issued when importing from the deprecated namespace.
2019-06-01 09:30:25 +10:00
Adrian Sampson
4fc9e2686b
Merge pull request #3277 from beetbox/arcresu-patch-3
Setup path correctly in testall.py
2019-05-30 21:51:14 -04:00
Jack Wilsdon
bc95253566 Setup path correctly in testall.py
By comparing `sys.path` as setup by nose vs. testall.py it seems that we
weren't adding the top-level beets directory to the path. The script was
also previously changing the working directory before running the tests.
2019-05-31 11:28:55 +10:00
Adrian Sampson
1da34f26ff Changelog for #3272 2019-05-30 20:58:30 -04:00