irc.client: Clean a bit.

db4
Bruno Deferrari 2008-06-30 12:31:21 -03:00
parent 2c8866c139
commit d4aae8a183
2 changed files with 7 additions and 13 deletions

View File

@ -14,7 +14,7 @@ IN: irc.client.tests
swap [ 2nip <test-stream> f ] curry >>connect ;
: set-nick ( irc-client nickname -- )
[ nick>> ] dip >>name drop ;
swap profile>> (>>nickname) ;
: with-dummy-client ( quot -- )
rot with-variable ; inline
@ -42,9 +42,9 @@ privmsg new
parse-irc-line f >>timestamp ] unit-test
{ "" } make-client dup "factorbot" set-nick current-irc-client [
{ t } [ irc> nick>> name>> me? ] unit-test
{ t } [ irc> profile>> nickname>> me? ] unit-test
{ "factorbot" } [ irc> nick>> name>> ] unit-test
{ "factorbot" } [ irc> profile>> nickname>> ] unit-test
{ "someuser" } [ "someuser!n=user@some.where" parse-name ] unit-test
@ -63,7 +63,7 @@ privmsg new
":some.where 001 factorbot :Welcome factorbot"
} make-client
[ connect-irc ] keep 1 seconds sleep
nick>> name>> ] unit-test
profile>> nickname>> ] unit-test
{ join_ "#factortest" } [
{ ":factorbot!n=factorbo@some.where JOIN :#factortest"

View File

@ -14,18 +14,12 @@ SYMBOL: current-irc-client
: irc-port 6667 ; ! Default irc port
! "setup" objects
TUPLE: irc-profile server port nickname password ;
C: <irc-profile> irc-profile
! "live" objects
TUPLE: nick name channels log ;
C: <nick> nick
TUPLE: irc-client profile nick stream in-messages out-messages join-messages
TUPLE: irc-client profile stream in-messages out-messages join-messages
listeners is-running connect reconnect-time ;
: <irc-client> ( profile -- irc-client )
f V{ } clone V{ } clone <nick>
f <mailbox> <mailbox> <mailbox> H{ } clone f
[ <inet> latin1 <client> ] 15 seconds irc-client boa ;
@ -182,7 +176,7 @@ TUPLE: unhandled < irc-message ;
! ======================================
: me? ( string -- ? )
irc> nick>> name>> = ;
irc> profile>> nickname>> = ;
: irc-message-origin ( irc-message -- name )
dup name>> me? [ prefix>> parse-name ] [ name>> ] if ;
@ -196,7 +190,7 @@ M: irc-message handle-incoming-irc ( irc-message -- )
f listener> [ in-messages>> mailbox-put ] [ drop ] if* ;
M: logged-in handle-incoming-irc ( logged-in -- )
name>> irc> nick>> (>>name) ;
name>> irc> profile>> (>>nickname) ;
M: ping handle-incoming-irc ( ping -- )
trailing>> /PONG ;