X-Git-Url: https://git.distorted.org.uk/~mdw/disorder/blobdiff_plain/58d2aad26bc5a3059ee362a251024a2d470e63a1..0af56a7e7a96453722c9da9d96356914c5748d3f:/doc/disorder_protocol.5.in?ds=sidebyside diff --git a/doc/disorder_protocol.5.in b/doc/disorder_protocol.5.in index 367a68a..c258b0b 100644 --- a/doc/disorder_protocol.5.in +++ b/doc/disorder_protocol.5.in @@ -40,6 +40,15 @@ that comments are prohibited. Bodies borrow their syntax from RFC821; they consist of zero or more ordinary lines, with any initial full stop doubled up, and are terminated by a line consisting of a full stop and a line feed. +.PP +Commands only have a body if explicitly stated below. +If they do have a body then the body should always be sent immediately; +unlike (for instance) the SMTP "DATA" command there is no intermediate step +where the server asks for the body to be sent. +.PP +Replies also only have a body if stated below. +The presence of a reply body can always be inferred from the response code; +if the last digit is a 3 then a body is present, otherwise it is not. .SH COMMANDS Commands always have a command name as the first field of the line; responses always have a 3-digit response code as the first field. @@ -49,8 +58,6 @@ All commands require the connection to have been already authenticated unless stated otherwise. If not stated otherwise, the \fBread\fR right is sufficient to execute the command. -.PP -Neither commands nor responses have a body unless stated otherwise. .TP .B adduser \fIUSERNAME PASSWORD \fR[\fIRIGHTS\fR] Create a new user with the given username and password. @@ -206,6 +213,43 @@ track information (see below). .IP If the response is \fB259\fR then nothing is playing. .TP +.B playlist-delete \fIPLAYLIST\fR +Delete a playlist. +Requires permission to modify that playlist and the \fBplay\fR right. +.TP +.B playlist-get \fIPLAYLIST\fR +Get the contents of a playlist, in a response body. +Requires permission to read that playlist and the \fBread\fR right. +.TP +.B playlist-get-share \fIPLAYLIST\fR +Get the sharing status of a playlist. +The result will be \fBpublic\fR, \fBprivate\fR or \fBshared\fR. +Requires permission to read that playlist and the \fBread\fR right. +.TP +.B playlist-lock \fIPLAYLIST\fR +Lock a playlist. +Requires permission to modify that playlist and the \fBplay\fR right. +Only one playlist may be locked at a time on a given connection and the lock +automatically expires when the connection is closed. +.TP +.B playlist-set \fIPLAYLIST\fR +Set the contents of a playlist. +The new contents should be supplied in a command body. +Requires permission to modify that playlist and the \fBplay\fR right. +The playlist must be locked. +.TP +.B playlist-set-share \fIPLAYLIST\fR \fISHARE\fR +Set the sharing status of a playlist to +\fBpublic\fR, \fBprivate\fR or \fBshared\fR. +Requires permission to modify that playlist and the \fBplay\fR right. +.TP +.B playlist-unlock\fR +Unlock the locked playlist. +.TP +.B playlists +List all playlists that this connection has permission to read. +Requires the \fBread\fR right. +.TP .B prefs \fBTRACK\fR Send back the preferences for \fITRACK\fR in a response body. Each line of the response has the usual line syntax, the first field being the @@ -620,6 +664,9 @@ A track started playing. .B resume The current track was resumed. .TP +.B rights_changed \fIRIGHTS\fR +User's rights were changed. +.TP .B scratched The current track was scratched. .PP @@ -627,16 +674,16 @@ To simplify client implementation, \fBstate\fR commands reflecting the current state are sent at the start of the log. .RE .TB -.B user-add \fIUSERNAME\fR +.B user_add \fIUSERNAME\fR A user was created. .TP -.B user-delete \fIUSERNAME\fR +.B user_delete \fIUSERNAME\fR A user was deleted. .TP -.B user-edit \fIUSERNAME\fR \fIPROPERTY\fR +.B user_edit \fIUSERNAME\fR \fIPROPERTY\fR Some property of a user was edited. .TP -.B user-confirm \fIUSERNAME\fR +.B user_confirm \fIUSERNAME\fR A user's login was confirmed (via the web interface). .TP .B volume \fILEFT\fR \fIRIGHT\fR