irc.client: Add make-client-messages, move things around, etc
parent
b7af781e58
commit
66be27c186
|
@ -20,28 +20,6 @@ IN: irc.client.tests
|
||||||
: with-dummy-client ( quot -- )
|
: with-dummy-client ( quot -- )
|
||||||
rot with-variable ; inline
|
rot with-variable ; inline
|
||||||
|
|
||||||
! Parsing tests
|
|
||||||
irc-message new
|
|
||||||
":someuser!n=user@some.where PRIVMSG #factortest :hi" >>line
|
|
||||||
"someuser!n=user@some.where" >>prefix
|
|
||||||
"PRIVMSG" >>command
|
|
||||||
{ "#factortest" } >>parameters
|
|
||||||
"hi" >>trailing
|
|
||||||
1array
|
|
||||||
[ ":someuser!n=user@some.where PRIVMSG #factortest :hi"
|
|
||||||
string>irc-message f >>timestamp ] unit-test
|
|
||||||
|
|
||||||
privmsg new
|
|
||||||
":someuser!n=user@some.where PRIVMSG #factortest :hi" >>line
|
|
||||||
"someuser!n=user@some.where" >>prefix
|
|
||||||
"PRIVMSG" >>command
|
|
||||||
{ "#factortest" } >>parameters
|
|
||||||
"hi" >>trailing
|
|
||||||
"#factortest" >>name
|
|
||||||
1array
|
|
||||||
[ ":someuser!n=user@some.where PRIVMSG #factortest :hi"
|
|
||||||
parse-irc-line f >>timestamp ] unit-test
|
|
||||||
|
|
||||||
{ "" } make-client dup "factorbot" set-nick current-irc-client [
|
{ "" } make-client dup "factorbot" set-nick current-irc-client [
|
||||||
{ t } [ irc> profile>> nickname>> me? ] unit-test
|
{ t } [ irc> profile>> nickname>> me? ] unit-test
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
USING: kernel tools.test accessors arrays qualified
|
||||||
|
irc.messages irc.messages.private ;
|
||||||
|
EXCLUDE: sequences => join ;
|
||||||
|
IN: irc.messages.tests
|
||||||
|
|
||||||
|
! Parsing tests
|
||||||
|
irc-message new
|
||||||
|
":someuser!n=user@some.where PRIVMSG #factortest :hi" >>line
|
||||||
|
"someuser!n=user@some.where" >>prefix
|
||||||
|
"PRIVMSG" >>command
|
||||||
|
{ "#factortest" } >>parameters
|
||||||
|
"hi" >>trailing
|
||||||
|
1array
|
||||||
|
[ ":someuser!n=user@some.where PRIVMSG #factortest :hi"
|
||||||
|
string>irc-message f >>timestamp ] unit-test
|
||||||
|
|
||||||
|
privmsg new
|
||||||
|
":someuser!n=user@some.where PRIVMSG #factortest :hi" >>line
|
||||||
|
"someuser!n=user@some.where" >>prefix
|
||||||
|
"PRIVMSG" >>command
|
||||||
|
{ "#factortest" } >>parameters
|
||||||
|
"hi" >>trailing
|
||||||
|
"#factortest" >>name
|
||||||
|
1array
|
||||||
|
[ ":someuser!n=user@some.where PRIVMSG #factortest :hi"
|
||||||
|
parse-irc-line f >>timestamp ] unit-test
|
||||||
|
|
||||||
|
join new
|
||||||
|
":someuser!n=user@some.where JOIN :#factortest" >>line
|
||||||
|
"someuser!n=user@some.where" >>prefix
|
||||||
|
"JOIN" >>command
|
||||||
|
{ } >>parameters
|
||||||
|
"#factortest" >>trailing
|
||||||
|
1array
|
||||||
|
[ ":someuser!n=user@some.where JOIN :#factortest"
|
||||||
|
parse-irc-line f >>timestamp ] unit-test
|
||||||
|
|
|
@ -21,6 +21,10 @@ TUPLE: mode < irc-message name channel mode ;
|
||||||
TUPLE: names-reply < irc-message who = channel ;
|
TUPLE: names-reply < irc-message who = channel ;
|
||||||
TUPLE: unhandled < irc-message ;
|
TUPLE: unhandled < irc-message ;
|
||||||
|
|
||||||
|
: make-client-message ( command parameters trailing -- irc-message )
|
||||||
|
irc-message new now >>timestamp
|
||||||
|
[ [ (>>trailing) ] [ (>>parameters) ] [ (>>command) ] tri ] keep ;
|
||||||
|
|
||||||
GENERIC: irc-message>client-line ( irc-message -- string )
|
GENERIC: irc-message>client-line ( irc-message -- string )
|
||||||
|
|
||||||
M: irc-message irc-message>client-line ( irc-message -- string )
|
M: irc-message irc-message>client-line ( irc-message -- string )
|
||||||
|
@ -58,6 +62,8 @@ M: irc-message irc-message>server-line ( irc-message -- string )
|
||||||
: split-trailing ( string -- string string/f )
|
: split-trailing ( string -- string string/f )
|
||||||
":" split1 ;
|
":" split1 ;
|
||||||
|
|
||||||
|
PRIVATE>
|
||||||
|
|
||||||
: string>irc-message ( string -- object )
|
: string>irc-message ( string -- object )
|
||||||
dup split-prefix split-trailing
|
dup split-prefix split-trailing
|
||||||
[ [ blank? ] trim " " split unclip swap ] dip
|
[ [ blank? ] trim " " split unclip swap ] dip
|
||||||
|
@ -82,4 +88,3 @@ M: irc-message irc-message>server-line ( irc-message -- string )
|
||||||
[ [ tuple-slots ] [ parameters>> ] bi append ] dip
|
[ [ tuple-slots ] [ parameters>> ] bi append ] dip
|
||||||
[ all-slots over [ length ] bi@ min head ] keep slots>tuple ;
|
[ all-slots over [ length ] bi@ min head ] keep slots>tuple ;
|
||||||
|
|
||||||
PRIVATE>
|
|
||||||
|
|
Loading…
Reference in New Issue