IRC Client ASGI Message Format (Draft Spec)¶
Warning
This is an incomplete draft.
Represents communication with an external IRC server as a client. It is possible to have multiple clients hooked into the same channel layer talking to different servers, which is why the reply channel is not a fixed name; a client will provide it with every incoming action and upon connection.
The reply channel must stay consistent throughout the client’s lifetime, so it can be used as a unique identifier for the client.
Connected¶
Sent when the client has established a connection to an IRC server.
Channel: irc-client.connect
Keys:
reply_channel
: The channel to send messages or actions to the server over.server
: A two-item list of[hostname, port]
, where hostname is a unicode string of the server hostname or IP address, and port is the integer port.
Joined¶
Sent when the client has joined an IRC channel.
Channel: irc-client.join
Keys:
reply_channel
: The channel to send messages or actions to the server over.channel
: Unicode string name of the IRC channel joined
Receive¶
Represents either a message, action or notice being received from the server.
Channel: irc-client.receive
Keys:
reply_channel
: The channel to send messages or actions to the server over.type
: Unicode string, one ofmessage
,action
ornotice
.user
: IRC user as a unicode string (including host portion)channel
: IRC channel name as a unicode stringbody
: Message, action or notice content as a unicode string
Control¶
Sent to control the IRC client.
Channel: Specified by the server as reply_channel
in other types
Keys:
channel
: IRC channel name to act on as a unicode stringtype
: Unicode string, one ofjoin
,part
,message
oraction
.body
: If type ismessage
oraction
, the body of the message or the action as a unicode string.