]> gitweb.factorcode.org Git - factor.git/blob - extra/irc/logbot/log-line/log-line.factor
irc.client: Forward messages before processing for now. Change text for
[factor.git] / extra / irc / logbot / log-line / log-line.factor
1 ! Copyright (C) 2009 Bruno Deferrari.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: accessors irc.messages irc.messages.base kernel make ;
4 EXCLUDE: sequences => join ;
5 IN: irc.logbot.log-line
6
7 : dot-or-parens ( string -- string )
8     [ "." ] [ " (" prepend ")." append ] if-empty ;
9
10 GENERIC: >log-line ( object -- line )
11
12 M: irc-message >log-line line>> ;
13
14 M: privmsg >log-line
15     [ "<" % dup sender>> % "> " % text>> % ] "" make ;
16
17 M: join >log-line
18     [ "* " % sender>> % " has joined the channel." % ] "" make ;
19
20 M: part >log-line
21     [ "* " % dup sender>> % " has left the channel" %
22       comment>> dot-or-parens % ] "" make ;
23
24 M: quit >log-line
25     [ "* " % dup sender>> % " has quit" %
26       comment>> dot-or-parens % ] "" make ;
27
28 M: kick >log-line
29     [ "* " % dup sender>> % " has kicked " % dup user>> %
30       " from the channel" % comment>> dot-or-parens % ] "" make ;
31
32 M: participant-mode >log-line
33     [ "* " % dup sender>> % " has set mode " % dup mode>> %
34       " to " % parameter>> % ] "" make ;
35
36 M: nick >log-line
37     [ "* " % dup sender>> % " is now known as " % nickname>> % ] "" make ;