irc-message


Vocabulary
irc.messages.base

Definition
IN: irc.messages.base

TUPLE: irc-message
line prefix command parameters trailing timestamp sender ;


Methods
USING: accessors irc.logbot.log-line irc.messages.base ;

M: irc-message >log-line line>> ;


USING: accessors calendar combinators irc.messages.base ;

M: irc-message fill-irc-message-slots
gmt >>timestamp {
[ process-irc-trailing ]
[ process-irc-prefix ]
[ process-irc-parameters ]
[ post-process-irc-message ]
} cleave ;


USING: accessors irc.logbot irc.logbot.log-line
irc.messages.base kernel ;

M: irc-message handle-message
[ >log-line ] [ timestamp>> ] bi log-message ;


USING: irc.client.base irc.client.internals irc.messages.base ;

M: irc-message handle-outgoing-irc
irc-message>string irc-print t ;


USING: irc.messages.base kernel ;

M: irc-message irc-command-string drop f ;


USING: irc.messages.base kernel ;

M: irc-message irc-parameter-slots drop f ;


USING: irc.messages.base kernel ;

M: irc-message irc-trailing-slot drop f ;


USING: irc.client.chats irc.client.internals irc.messages.base
kernel ;

M: irc-message message-forwards drop +server-chat+ ;


USING: irc.messages.base kernel ;

M: irc-message post-process-irc-message drop ;


USING: accessors irc.messages.base irc.messages.base.private
kernel mirrors sequences ;

M: irc-message process-irc-parameters
dup irc-parameter-slots [
swap
[ parameters>> swap ] [ <mirror> [slot-setter] ] bi
2each
] [ drop ] if* ;


USING: irc.messages.base kernel ;

M: irc-message process-irc-prefix drop ;


USING: accessors assocs irc.messages.base kernel mirrors ;

M: irc-message process-irc-trailing
dup irc-trailing-slot
[ swap [ trailing>> swap ] [ <mirror> ] bi set-at ]
[ drop ] if* ;


USING: accessors irc.messages.base kernel ;

M: irc-message set-irc-command
[ irc-command-string ] [ command<< ] bi ;


USING: accessors assocs irc.messages.base kernel mirrors
sequences ;

M: irc-message set-irc-parameters
dup irc-parameter-slots
[ over <mirror> [ at ] curry map >>parameters ] when* drop
;


USING: accessors assocs irc.messages.base kernel mirrors ;

M: irc-message set-irc-trailing
dup irc-trailing-slot [ over <mirror> at >>trailing ] when*
drop ;