]> gitweb.factorcode.org Git - factor.git/commitdiff
irc.logbot.log-line: print the user prefix.
authorDoug Coleman <doug.coleman@gmail.com>
Mon, 9 May 2016 22:43:20 +0000 (15:43 -0700)
committerDoug Coleman <doug.coleman@gmail.com>
Mon, 9 May 2016 22:43:20 +0000 (15:43 -0700)
extra/irc/logbot/log-line/log-line.factor

index 0960a3cedbee57e217dddf2da9a35423a43f5250..8864369ad53ff59a73856798f63a12008adee58f 100644 (file)
@@ -1,6 +1,7 @@
 ! Copyright (C) 2009 Bruno Deferrari.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: accessors irc.messages irc.messages.base kernel make ;
+USING: accessors irc.messages irc.messages.base kernel make
+combinators ;
 EXCLUDE: sequences => join ;
 IN: irc.logbot.log-line
 
@@ -20,24 +21,46 @@ M: action >log-line
 M: privmsg >log-line
     [ "<" % dup sender>> % "> " % text>> % ] "" make ;
 
+: prefix% ( string -- )
+    " [" % % "]" % ;
+
 M: join >log-line
-    [ "* " % sender>> % " has joined the channel." % ] "" make ;
+    [
+        [ "* " % sender>> % ]
+        [ prefix>> prefix% " has joined the channel." % ] bi
+    ] "" make ;
 
 M: part >log-line
-    [ "* " % dup sender>> % " has left the channel" %
-      comment>> dot-or-parens % ] "" make ;
+    [
+        [ "* " % sender>> % ]
+        [ prefix>> prefix% " has left the channel" % ]
+        [ comment>> dot-or-parens % ] tri
+    ] "" make ;
 
 M: quit >log-line
-    [ "* " % dup sender>> % " has quit" %
-      comment>> dot-or-parens % ] "" make ;
+    [
+        [ "* " % sender>> % ]
+        [ prefix>> prefix% " has quit" % ]
+        [ comment>> dot-or-parens % ] tri
+    ] "" make ;
 
 M: kick >log-line
-    [ "* " % dup sender>> % " has kicked " % dup user>> %
-      " from the channel" % comment>> dot-or-parens % ] "" make ;
+    [
+        {
+            [ "* " % sender>> % ]
+            [ " has kicked " % user>> % ]
+            [ " from the channel" % comment>> dot-or-parens % ]
+         } cleave
+    ] "" make ;
 
 M: participant-mode >log-line
-    [ "* " % dup sender>> % " has set mode " % dup mode>> %
-      " to " % parameter>> % ] "" make ;
+    [
+        {
+            [ "* " % sender>> % ]
+            [ " has set mode " % mode>> % ]
+            [ " to " % parameter>> % ]
+        } cleave
+     ] "" make ;
 
 M: nick >log-line
     [ "* " % dup sender>> % " is now known as " % nickname>> % ] "" make ;