jwdempsey/Grooveshark.bundle — pull request #1 by manfer (2014-05-28 10:49:57+00:00)
Title: added query to search route

I can't explain the reasons properly because by reading the API and other documentation I was of the idea that any parameter with a string value was not mandatory to be specified in routes. But, at least in the search callback, if you don't specify the parameter the search will not work in some clients.

This is the error that appears in log when trying to search from a smart TV:

2014-05-28 12:02:06,239 (ef0) : DEBUG (runtime:717) - Handling request GET /music/grooveshark/search&query=rolling
2014-05-28 12:02:06,240 (ef0) : CRITICAL (core:561) - Exception matching route for path "/music/grooveshark/search&query=rolling" (most recent call last):
File "C:\Users\xxxxxxxx\AppData\Local\Plex Media Server\Plug-ins\Framework.bundle\Contents\Resources\Versions\2\Python\Framework\components\runtime.py", line 464, in match_route
raise Framework.exceptions.FrameworkException("No route found matching '%s'" % path)
FrameworkException: No route found matching '/music/grooveshark/search&query=rolling'

2014-05-28 12:02:06,242 (ef0) : ERROR (runtime:846) - Could not find route matching /music/grooveshark/search&query=rolling
2014-05-28 12:02:06,242 (ef0) : DEBUG (runtime:918) - Response: [404] NoneType, 0 bytes

This is just probably only a client bug in my Samsung TV Plex client (because the search works correctly on Plex Web and Plex Home Theater) but the issue can be solved by explicitly adding query to the route for the search callback. Introducing that minor change the search will work in every client including the Samsung TV Plex client.