projects
/
8sync.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Remove (8sync agenda) as an import from actors.scm and add wrap-apply.
[8sync.git]
/
8sync
/
systems
/
irc.scm
diff --git
a/8sync/systems/irc.scm
b/8sync/systems/irc.scm
index e6ad361ae322cfa7bc8308629c24840f8f3b173d..030f2d3b8b68b4e7c19f778d529478d4357bdef9 100755
(executable)
--- a/
8sync/systems/irc.scm
+++ b/
8sync/systems/irc.scm
@@
-1,9
+1,5
@@
-#!/usr/bin/guile \
--e main -s
-!#
-
;;; 8sync --- Asynchronous programming for Guile
;;; 8sync --- Asynchronous programming for Guile
-;;; Copyright
(C) 2015
Christopher Allan Webber <cwebber@dustycloud.org>
+;;; Copyright
© 2015, 2016, 2017
Christopher Allan Webber <cwebber@dustycloud.org>
;;;
;;; This file is part of 8sync.
;;;
;;;
;;; This file is part of 8sync.
;;;
@@
-163,21
+159,21
@@
#:getter irc-bot-port)
(socket #:accessor irc-bot-socket)
(actions #:allocation #:each-subclass
#:getter irc-bot-port)
(socket #:accessor irc-bot-socket)
(actions #:allocation #:each-subclass
- #:init-value (build-actions
- (*init* irc-bot-init)
- (*cleanup* irc-bot-cleanup)
+ #:init-thunk (build-actions
(main-loop irc-bot-main-loop)
(main-loop irc-bot-main-loop)
+ (handle-line handle-line)
(send-line irc-bot-send-line-action))))
(define (irc-bot-realname irc-bot)
(or (slot-ref irc-bot 'realname)
(irc-bot-username irc-bot)))
(send-line irc-bot-send-line-action))))
(define (irc-bot-realname irc-bot)
(or (slot-ref irc-bot 'realname)
(irc-bot-username irc-bot)))
-(define
(irc-bot-init irc-bot message
)
+(define
-method (actor-init! (irc-bot <irc-bot>)
)
"Initialize the IRC bot"
(define socket
(irc-socket-setup (irc-bot-server irc-bot)
(irc-bot-port irc-bot)))
"Initialize the IRC bot"
(define socket
(irc-socket-setup (irc-bot-server irc-bot)
(irc-bot-port irc-bot)))
+ (pk 'initing-irc)
(set! (irc-bot-socket irc-bot) socket)
(format socket "USER ~a ~a ~a :~a~a"
(irc-bot-username irc-bot)
(set! (irc-bot-socket irc-bot) socket)
(format socket "USER ~a ~a ~a :~a~a"
(irc-bot-username irc-bot)
@@
-192,7
+188,7
@@
(<- (actor-id irc-bot) 'main-loop))
(<- (actor-id irc-bot) 'main-loop))
-(define
(irc-bot-cleanup irc-bot message
)
+(define
-method (actor-cleanup! (irc-bot <irc-bot>)
)
(close (irc-bot-socket irc-bot)))
(define (irc-bot-main-loop irc-bot message)
(close (irc-bot-socket irc-bot)))
(define (irc-bot-main-loop irc-bot message)
@@
-208,13
+204,6
@@
((eof-object? (peek-char socket))
(close socket)
'done)
((eof-object? (peek-char socket))
(close socket)
'done)
- ;; ;; Looks like we've been killed somehow... well, stop running
- ;; ;; then!
- ;; ((actor-am-i-dead? irc-bot)
- ;; (if (not (port-closed? socket))
- ;; (close socket))
- ;; 'done)
- ;; Otherwise, let's read till the next line!
(else
(<- (actor-id irc-bot) 'main-loop))))
(else
(<- (actor-id irc-bot) 'main-loop))))
@@
-244,12
+233,13
@@
irc-bot-send-line."
(receive (channel-name line-text emote?)
(condense-privmsg-line line-params)
(let ((username (irc-line-username line-prefix)))
(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)))))
(_ (handle-misc-input irc-bot raw-line)))))
-(define-method (handle-line (irc-bot <irc-bot>)
username channel-nam
e
-
line-text emote?)
+(define-method (handle-line (irc-bot <irc-bot>)
messag
e
+
username channel-name
line-text emote?)
(echo-message irc-bot username channel-name line-text emote?))
(define-method (handle-misc-input (irc-bot <irc-bot>) raw-line)
(echo-message irc-bot username channel-name line-text emote?))
(define-method (handle-misc-input (irc-bot <irc-bot>) raw-line)