X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=logger.lisp;h=7988c55a78fabd84f3ffb5a85a885d2fc5e51861;hb=3fae70815a20ec802a01eebbd3c6ed9340880fef;hp=0b442ce49e7daab0e485f05ca9eed54a0bfd1dfa;hpb=5516c70e7bfcb8e8dce5e2e82383cb85f476745f;p=irc-logger.git diff --git a/logger.lisp b/logger.lisp index 0b442ce..7988c55 100644 --- a/logger.lisp +++ b/logger.lisp @@ -67,6 +67,10 @@ :documentation "Time of last, potentially active, warning message."))) +(defmethod print-object ((obj logger) stream) + (print-unreadable-object (obj stream :type t :identity t) + (format stream "~A" (l-nickname obj)))) + (defvar *loggers* nil "List of active loggers.") (defparameter *user-address-scanner* @@ -392,9 +396,13 @@ (output-event msg :privmsg channel (trailing-argument msg)))))) (defun action-hook (msg) - (output-event msg :action (first (arguments msg)) - (subseq (trailing-argument msg) 8 - (- (length (trailing-argument msg)) 1)))) + (let ((end (- (length (trailing-argument msg)) 1))) + ;; end has been as low as 7 + (when (< end 8) + (warn "End is less than 8: `$A'." msg)) + (output-event msg :action (first (arguments msg)) + (subseq (trailing-argument msg) (min 8 end) + (- (length (trailing-argument msg)) 1))))) (defun nick-hook (msg) (output-event msg :nick nil (trailing-argument msg))) @@ -418,9 +426,9 @@ logger "Logging daemon ~A has been kicked from ~A (~A)" (l-nickname logger) channel (trailing-argument msg)) - (daemon-sleep 1) + (daemon-sleep 5) (remove-channel-logger logger channel) - (daemon-sleep 1) + (daemon-sleep 10) (add-channel-logger logger channel) (add-private-log-entry logger "Rejoined ~A" channel)))) @@ -714,7 +722,8 @@ (let ((text (trailing-argument msg)) (logger (find-logger-with-connection (connection msg)))) (when (and (stringp text) - (zerop (search (format nil "Closing Link: ~A" (l-nickname logger)) text))) + (eql 0 (search (format nil "Closing Link: ~A" + (l-nickname logger)) text))) (setf (warning-message-utime logger) (received-time msg))) (output-event msg :error nil (trailing-argument msg))))