2010-03-31, 15:24
narcan Wrote:Hey,
Great to see an overhaul being made of the Web API. I'm a little late to the party it seems, but the progress made on the JSON interface looks nice and clean!
Thanks for the compliments.
narcan Wrote:I spent about 30 minutes with it on the iPhone remote, just starting down the path of implementing a few basic calls and in that time came across some things I found / had thoughts on:
URL
- Found the URL has to be /jsonrpc rather than /jsonrpc/ . Though when accessing either from the web browser as a GET it gives a 'File not found' error. Be nice we could access from either both paths or /jsonrpc gave an error to suggest it's the correct one to hit but requires POST data to submit. Just took me a couple of mins to figure out why I was getting no response,
Well tbh I don't think there is any convention to what url to post, Problems with allowing both is more that it could get confusing
Anyways on the topic of GET, I doubt its in specification to handle it but I like the idea very much, I'll make it so on a GET of the correct URL will return an introspect or something usefull atleast.
narcan Wrote:System.GetInfo
- Is this intended to be synonymous with the HTTP API GetSystemInfo ?
- Wondering if there is any way to get the info we used to be able to get from the GetSystemInfo command (maybe with a seperate command), such as the XBMC version and shuffle state (though see next point).
Well the system is really against system underneath xbmc, i.e. osx and such. its abit confusing and perhaps the whole namespace should get revamped, however adding version and such I'll for sure do in XBMC.Foo
narcan Wrote:Playlist.XXX
- Can we get some methods to get the playlist state ? Such as Shuffle and Repeat status.
Sure, I'm planning on doing a big revamp on the playlist handling soon so consider it subject to change (mostly thinking of splitting out active and nonactive playlists to seperate namespaces, i.e. VideoPlaylist.Shuffle and then have Playlist.GetItems(id ="/foo/bar.m3u") )
narcan Wrote:MusicLibrary.GetGenres
- Can this be implemented ?
I really want it in, there is some problems with xbmc core regarding genre IDs I need to overcome, will look at it asap!
narcan Wrote:MusicLibrary.GetArtists
- Crashing when passing genreid (if assuming I'm doing the correct thing)
Code:{"jsonrpc":"2.0","params":{"genreid":"6"},"id":"1","method":"MusicLibrary.GetArtists"}
Code:Thread 5 Crashed:
0 libSystem.B.dylib 0x97cfa732 __kill + 10
1 libSystem.B.dylib 0x97cfa724 kill$UNIX2003 + 32
2 libSystem.B.dylib 0x97d8d98d raise + 26
3 libSystem.B.dylib 0x97da39d9 __abort + 124
4 libSystem.B.dylib 0x97da3a55 abort_report_np + 0
5 libstdc++.6.dylib 0x94001fda __gnu_cxx::__verbose_terminate_handler() + 433
6 libstdc++.6.dylib 0x9400017a __cxxabiv1::__terminate(void (*)()) + 10
7 libstdc++.6.dylib 0x940001ba __cxxabiv1::__unexpected(void (*)()) + 0
8 libstdc++.6.dylib 0x940002b8 __gxx_exception_cleanup(_Unwind_Reason_Code, _Unwind_Exception*) + 0
9 com.teamxbmc.xbmc 0x0087286f Json::Value::asInt() const + 271
10 com.teamxbmc.xbmc 0x00884a2a JSONRPC::CMusicLibrary::GetArtists(CStdStr<char> const&, JSONRPC::ITransportLayer*, JSONRPC::IClient*, Json::Value const&, Json::Value&) + 186
Cheers,
Dave Fumberger.
Well tbh the whole genre stuff in jsonrpc is just there as a placeholder, I really should remove or fix so it works genreid needs to be an int but IIRC it doesn't even work if you specify the correct ID.
Thank you for the valuable ideas.
Cheers,
Tobias