Commit Graph

5266 Commits

Author SHA1 Message Date
Thomas Adamcik
a2ae51ff65 mpd: Update auth filter and convert audio_output and connection 2014-01-23 22:02:23 +01:00
Thomas Adamcik
1dc35c2bf7 mpd: Convert channels and stickers and delete empty. 2014-01-23 21:41:06 +01:00
Thomas Adamcik
fddb299ed9 mpd: Update type converters naming and add UINT
Also adds tests for RANGE helper.
2014-01-23 21:31:18 +01:00
Thomas Adamcik
442d9d4b1e mpd: Convert almost all of protocol.current_playlist 2014-01-23 00:40:46 +01:00
Thomas Adamcik
e7017f3ccb mpd: Add protocol.position_or_range converter 2014-01-23 00:40:18 +01:00
Thomas Adamcik
b9b5a78938 mpd: Convert protocol.playback 2014-01-22 23:58:44 +01:00
Thomas Adamcik
538e46e0e7 mpd: Convert protocol.status to new helper 2014-01-22 23:27:49 +01:00
Thomas Adamcik
9df2eebfe2 mpd: Upate command reflection to handle new commands helper 2014-01-22 23:27:49 +01:00
Thomas Adamcik
55a46c31d7 mpd: Cleanup imports in reflection 2014-01-22 23:27:49 +01:00
Thomas Adamcik
eb85f92d96 mpd: Store auth required and if command should be listed 2014-01-22 23:27:25 +01:00
Thomas Adamcik
d3db5c4fe1 mpd: Install new commands helpers in _call_handler
This means we now tokenize every request, and then try in call the appropriate
handler. If none is found we simply fall back to the old handlers.
2014-01-22 22:44:40 +01:00
nathanharper
3a184f9ddd decouple mpd.protocol module from config structure
removed reference to password from protocol,
moved it to Context class.
2014-01-22 05:16:38 -05:00
nathanharper
039fc4b681 refactored mpd.protocol.music_db regex
got quote backreference working,
eliminated need for the non-capturing pattern,
fixed problem with quoted fields.
2014-01-22 05:16:38 -05:00
Thomas Adamcik
066fed1522 mpd: Update tokenizer to use mopidy.mpd.exceptions 2014-01-22 00:10:30 +01:00
Thomas Adamcik
756cf1518b mpd: Add last missing error cases for tokenizer.
If we decide that exact error message parity is not needed these can and should
be removed as they complicate the tokenizer.
2014-01-21 23:20:24 +01:00
Thomas Adamcik
f7ec1fba01 mpd: Fix tokenizer error messages to match original protocol 2014-01-21 22:10:00 +01:00
Thomas Adamcik
f7aff706a8 mpd: Move commands tests to mpd directory 2014-01-21 21:14:30 +01:00
Thomas Adamcik
d445740318 mpd: Split out tokenizer and add proper errors. 2014-01-21 21:10:55 +01:00
Thomas Adamcik
335cf4e612 mpd: Return command name in find handler. 2014-01-21 20:40:49 +01:00
Stein Magnus Jodal
7ce38de351 ext: Disable extension if a dependency isn't of the correct version
Fixes #657
2014-01-21 14:48:43 +01:00
Thomas Adamcik
3c0cc1564c local: Make browse test check ordering again 2014-01-20 23:22:15 +01:00
Stein Magnus Jodal
4c7b6ccfc4 docs: Remove broken link 2014-01-20 22:05:21 +01:00
Arnaud Barisain-Monrose
9b1b6943a8 Fix flake8's whitespace error 2014-01-19 23:57:58 +01:00
Arnaud Barisain-Monrose
fe3c27cf18 Add windows workaround for IPv6 sockets to also listen on IPv4 2014-01-19 23:05:00 +01:00
Arnaud Barisain-Monrose
81825dfa0d Do not listen for SIGUSR1 since Windows does not have it 2014-01-19 23:04:43 +01:00
Stein Magnus Jodal
809e48b5dc Release v0.18.0 2014-01-19 22:30:08 +01:00
Stein Magnus Jodal
54beea9ead docs: Update changelog for v0.18.0 2014-01-19 22:28:03 +01:00
Thomas Adamcik
9ba168e9b9 local: Update browse cache code to add all directories
Tests have been updated to make sure multiple folders are added. We had
forgotten to add child folders to the ones that had already been created.
2014-01-19 22:21:02 +01:00
Thomas Adamcik
455f3dd403 mpd: Write commands helper for tokenized command handling
This provides a class which works as a command registry. Functions are added to
the registry through a method on the class `add`.  Add acts as a decorator
taking in the name of the command and optionally type converters for arguments.

When handling requests, we can now tokenize the line, and then just pass the
arguments to our commands helper. It will lookup the correct handler and apply
any validation before calling the original function.

For the sake of testing the original function is not wrapped. This the
functions, and anything testing them directly can simply assume pre-converted
data as long as type annotations are in place.

A sample usage would be:

    @protocol.commands.add('addid', position=protocol.integer)
    def addid(context, uri, position=None)
        pass

    def handle_request(line):
        tokens = protocol.tokenizer(line)
        context = ...
        result = protocol.commands.call(tokens, context=context)
2014-01-19 19:59:07 +01:00
Thomas Adamcik
b34a8c1f73 mpd: Add MPD tokenizer
- Adds tests for correctness of tokenizer (which also would have shown shlex
  wouldn't have worked).
- Should conform with the original's behavior, though we won't be able to match
  the error messages without a lot of extra work as a non-regexp version is
  likely a no go on python due to speed.
2014-01-19 13:47:09 +01:00
Stein Magnus Jodal
4026e16996 Merge pull request #653 from adamcik/feature/local-browse-speedup
Feature/local browse speedup
2014-01-18 13:25:30 -08:00
Thomas Adamcik
1ebe7f612a local: Build browse cache backwards to reduce work needed 2014-01-18 12:26:21 +01:00
Thomas Adamcik
2faae3fc05 local: Add debug timing to loading library and building browse cache 2014-01-18 12:25:09 +01:00
Stein Magnus Jodal
85692d8c4c Merge pull request #652 from kingosticks/patch-1
MPD docs typo
2014-01-18 02:14:24 -08:00
Nick Steel
fdee34950f MPD docs typo 2014-01-18 09:31:14 +00:00
Stein Magnus Jodal
04bea8e856 docs: Remove depdendency check from validate_environment() example 2014-01-18 02:27:56 +01:00
Stein Magnus Jodal
06abe7c5e0 docs: Add logging to extension example 2014-01-18 02:27:37 +01:00
Stein Magnus Jodal
e4869e9e34 backend: Make old DummyBackend imports work 2014-01-18 02:12:04 +01:00
Stein Magnus Jodal
838f7cd4d4 docs: Update --verbose description in manpage 2014-01-18 01:39:56 +01:00
Stein Magnus Jodal
1ea0978af5 dummy: Move dummy backend back into the mopidy package 2014-01-18 01:38:10 +01:00
Thomas Adamcik
e97e620635 local: Rename json test to new naming scheme 2014-01-18 01:35:33 +01:00
Thomas Adamcik
316a1bf20f local: Ensure logging does not divide by zero in scanner. 2014-01-18 01:31:44 +01:00
Stein Magnus Jodal
6acd03995f docs: Fix syntax error 2014-01-18 01:20:51 +01:00
Stein Magnus Jodal
e7d4d362fe docs: Update changelog 2014-01-18 01:19:22 +01:00
Stein Magnus Jodal
b11338b1ab Bump version to 0.18.0 2014-01-18 01:02:36 +01:00
Stein Magnus Jodal
d447cbd798 core: Fix typo 2014-01-18 00:59:15 +01:00
Stein Magnus Jodal
da71d7fb14 Merge pull request #647 from adamcik/feature/browse-by-uri
Convert browse API to be fully URI based.
2014-01-17 15:58:39 -08:00
Stein Magnus Jodal
31abe0bc93 mpd: Annotate exceptions with current command automatically (fixes #649) 2014-01-18 00:34:41 +01:00
Thomas Adamcik
52e66add97 review: Update browse docstring with respect to URI type 2014-01-18 00:16:53 +01:00
Thomas Adamcik
08b7d199f7 review: Typos and code formating 2014-01-17 23:52:18 +01:00