Change the semantic of the searchplaylist protocol command

Old: searchplaylist {NAME} {FILTER} [{START:END}]
New: searchplaylist {NAME} {FILTER} [window {START:END}]

This is more similar to the other search commands and we can reuse search specific functions in libmpdclient.
This commit is contained in:
jcorporation 2024-08-30 21:06:50 +02:00
parent a3a07280e8
commit 3f718e8924
3 changed files with 5 additions and 3 deletions

View File

@ -996,7 +996,7 @@ remote playlists (absolute URI with a supported scheme).
.. _command_searchplaylist: .. _command_searchplaylist:
:command:`searchplaylist {NAME} {FILTER} [{START:END}]` :command:`searchplaylist {NAME} {FILTER} [window {START:END}]`
Search the playlist for songs matching Search the playlist for songs matching
``FILTER`` (see :ref:`Filters <filter_syntax>`). Playlist ``FILTER`` (see :ref:`Filters <filter_syntax>`). Playlist
plugins are supported. A range may be specified to list plugins are supported. A range may be specified to list

View File

@ -176,7 +176,7 @@ static constexpr struct command commands[] = {
{ "searchaddpl", PERMISSION_CONTROL, 2, -1, handle_searchaddpl }, { "searchaddpl", PERMISSION_CONTROL, 2, -1, handle_searchaddpl },
{ "searchcount", PERMISSION_READ, 1, -1, handle_searchcount }, { "searchcount", PERMISSION_READ, 1, -1, handle_searchcount },
#endif #endif
{ "searchplaylist", PERMISSION_READ, 2, 3, handle_searchplaylist }, { "searchplaylist", PERMISSION_READ, 2, 4, handle_searchplaylist },
{ "seek", PERMISSION_PLAYER, 2, 2, handle_seek }, { "seek", PERMISSION_PLAYER, 2, 2, handle_seek },
{ "seekcur", PERMISSION_PLAYER, 1, 1, handle_seekcur }, { "seekcur", PERMISSION_PLAYER, 1, 1, handle_seekcur },
{ "seekid", PERMISSION_PLAYER, 2, 2, handle_seekid }, { "seekid", PERMISSION_PLAYER, 2, 2, handle_seekid },

View File

@ -164,8 +164,10 @@ handle_searchplaylist(Client &client, Request args, Response &r)
args.shift(); args.shift();
RangeArg window = RangeArg::All(); RangeArg window = RangeArg::All();
if (args.size() == 2) { if (args.size() == 3 && StringIsEqual(args[args.size() - 2], "window")) {
window = args.ParseRange(args.size() - 1); window = args.ParseRange(args.size() - 1);
args.pop_back();
args.pop_back(); args.pop_back();
} }