5 ;; Copyright (C) 2015 Christopher Allan Webber <cwebber@dustycloud.org>
7 ;; This library is free software; you can redistribute it and/or
8 ;; modify it under the terms of the GNU Lesser General Public
9 ;; License as published by the Free Software Foundation; either
10 ;; version 3 of the License, or (at your option) any later version.
12 ;; This library is distributed in the hope that it will be useful,
13 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
14 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 ;; Lesser General Public License for more details.
17 ;; You should have received a copy of the GNU Lesser General Public
18 ;; License along with this library; if not, write to the Free Software
19 ;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
22 (use-modules (eightsync systems irc)
26 (define (handle-message socket my-name speaker
27 channel message is-action)
28 (define (looks-like-me? str)
29 (or (equal? str my-name)
30 (equal? str (string-concatenate (list my-name ":")))))
31 (match (string-split message #\space)
32 (((? looks-like-me? _) action action-args ...)
35 (irc-format socket "PRIVMSG ~a :Yippie! *does a dance!*" channel))
36 ((or "hello" "hello!" "hello." "greetings" "greetings." "greetings!"
38 (irc-format socket "PRIVMSG ~a :Oh hi ~a!" channel speaker))
41 (irc-format socket "PRIVMSG ~a :*stupid puppy look*" channel))))
45 (format #t "~a emoted ~s in channel ~a\n"
46 speaker message channel))
48 (format #t "~a said ~s in channel ~a\n"
49 speaker message channel))))))
52 (make-irc-bot-cli (make-handle-line
53 #:handle-privmsg (wrap-apply handle-message))))