]> gitweb.factorcode.org Git - factor.git/commitdiff
irc.ui now has timestamps
authorWilliam Schlieper <schlieper@unc.edu>
Fri, 11 Jul 2008 21:11:03 +0000 (17:11 -0400)
committerWilliam Schlieper <schlieper@unc.edu>
Fri, 11 Jul 2008 21:11:03 +0000 (17:11 -0400)
extra/irc/ui/ui.factor

index cc138dad92f68dbd06d2cd3664b889613ded7b2e..54a177f61371dcaf2787b00a630979399ebe6e1e 100755 (executable)
@@ -5,7 +5,8 @@ USING: accessors kernel threads combinators concurrency.mailboxes
        sequences strings hashtables splitting fry assocs hashtables\r
        ui ui.gadgets.panes ui.gadgets.editors ui.gadgets.scrollers\r
        ui.commands ui.gadgets.frames ui.gestures ui.gadgets.tabs\r
-       io io.styles namespaces irc.client irc.messages ;\r
+       io io.styles namespaces irc.client irc.messages calendar\r
+       calendar.format ;\r
 \r
 IN: irc.ui\r
 \r
@@ -27,10 +28,20 @@ GENERIC: write-irc ( irc-message -- )
 M: privmsg write-irc\r
     "<" blue write-color\r
     [ prefix>> prefix>nick write ] keep\r
-    ">" blue write-color\r
-    " " write\r
+    "> " blue write-color\r
     trailing>> write ;\r
 \r
+TUPLE: own-message message nick timestamp ;\r
+\r
+: <own-message> ( message nick -- own-message )\r
+    now own-message boa ;\r
+\r
+M: own-message write-irc\r
+    "<" blue write-color\r
+    [ nick>> bold font-style associate format ] keep\r
+    "> " blue write-color\r
+    message>> write ;\r
+\r
 M: join write-irc\r
     "* " green write-color\r
     prefix>> prefix>nick write\r
@@ -63,15 +74,12 @@ M: irc-message write-irc
     drop ; ! catch all unimplemented writes, THIS WILL CHANGE    \r
 \r
 : print-irc ( irc-message -- )\r
-    write-irc nl ;\r
+    [ timestamp>> timestamp>hms write " " write ]\r
+    [ write-irc nl ] bi ;\r
 \r
 : send-message ( message listener client -- )\r
-    "<" blue write-color\r
-    profile>> nickname>> bold font-style associate format\r
-    ">" blue write-color\r
-    " " write\r
-    over write nl\r
-    out-messages>> mailbox-put ;\r
+    [ nip profile>> nickname>> <own-message> print-irc ]\r
+    [ drop write-message ] 3bi ;\r
 \r
 : display ( stream listener -- )\r
     '[ , [ [ t ]\r