X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=8sync%2Fsystems%2Firc.scm;h=a3c5815b9aa081ca26c7429074c720019471eb2a;hb=4a22f7f5957f2dfa5d10a84ca2d6f078e2dcf8ae;hp=40d02eb6eb1a6a34c4464e43e25d7fb15c9fd9f5;hpb=dc2155083a90de90e24f5341b837d4d96ce2898c;p=8sync.git diff --git a/8sync/systems/irc.scm b/8sync/systems/irc.scm index 40d02eb..a3c5815 100755 --- a/8sync/systems/irc.scm +++ b/8sync/systems/irc.scm @@ -164,8 +164,10 @@ (socket #:accessor irc-bot-socket) (actions #:allocation #:each-subclass #:init-value (build-actions - (init irc-bot-init) + (*init* irc-bot-init) + (*cleanup* irc-bot-cleanup) (main-loop irc-bot-main-loop) + (handle-line handle-line) (send-line irc-bot-send-line-action)))) (define (irc-bot-realname irc-bot) @@ -191,6 +193,9 @@ (<- (actor-id irc-bot) 'main-loop)) +(define (irc-bot-cleanup irc-bot message) + (close (irc-bot-socket irc-bot))) + (define (irc-bot-main-loop irc-bot message) (define socket (irc-bot-socket irc-bot)) (define line (string-trim-right (read-line socket) #\return)) @@ -240,12 +245,13 @@ irc-bot-send-line." (receive (channel-name line-text emote?) (condense-privmsg-line line-params) (let ((username (irc-line-username line-prefix))) - (handle-line irc-bot username channel-name - line-text emote?)))) + (<- (actor-id irc-bot) 'handle-line + username channel-name + line-text emote?)))) (_ (handle-misc-input irc-bot raw-line))))) -(define-method (handle-line (irc-bot ) username channel-name - line-text emote?) +(define-method (handle-line (irc-bot ) message + username channel-name line-text emote?) (echo-message irc-bot username channel-name line-text emote?)) (define-method (handle-misc-input (irc-bot ) raw-line)