Skip to content

Instantly share code, notes, and snippets.

@photofroggy
Created April 14, 2014 00:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save photofroggy/10607457 to your computer and use it in GitHub Desktop.
Save photofroggy/10607457 to your computer and use it in GitHub Desktop.
Idea for a BDS protocol to allow private group chats on dAmn.
Ok, so, protocol for making private group chats possible on dAmn.
These messages must happen in a private chat between users and a service bot.
BDS:GROUP:NEW:user1[,user2[,...]]
Sent by clients.
Open a new group chat with the named users.
When the chat is created it is assigned an ID, and the
service bot should send an INVITE message to all the named
users.
BDS:GROUP:INVITE:id,user
Sent by service bots.
This message indicates that `user` has invited someone to join
the private chat referenced by `id`.
Client should either ask for confirmation or automatically send a
JOIN command.
BDS:GROUP:ADD:id,user1[,user2[,...]]
Sent by clients.
This should be used to add users to the group chat after the group
chat has been created.
Make it so either only the creator can add people, or any member.
Unsure which.
BDS:GROUP:JOIN:id
Sent by clients.
Client should send this to join the group chat referenced by `id`.
The service bot should bring the user into the group chat only if they
have already been invited by someone.
BDS:GROUP:PART:id
Sent by clients.
Client should send this to leave a group chat.
BDS:GROUP:KICK:id,user[,reason]
Sent by clients.
Should be used to remove a user from the chat forcibly.
BDS:GROUP:REMOVED:id,user,reason
Sent by service bots.
Indicates a user has been removed from the group chat.
BDS:GROUP:SEND:id,type,content
Sent by clients.
Send a message of type `type` to everyone in the group chat.
Upon receiving this, service bots should relay the message to
other members of the group chat using the following commands.
BDS:GROUP:MSG:id,user,content
BDS:GROUP:ACTION:id,user,content
BDS:GROUP:CLOSE:id[,reason]
Sent by clients.
Allow the creator to close a group chat.
BDS:GROUP:CLOSED:id[,reason]
Sent by service bots.
Indicates the group chat has been closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment