;;; Code:
(require 'riece-misc)
-(require 'riece-commands)
(require 'riece-filter) ;riece-default-handle-message
"\\)\\(\\*\\)?=\\([-+]\\)\\([^ ]+\\)")
(car replies))
(let ((user (match-string 1 (car replies)))
+ (operator (not (null (match-beginning 2))))
(away (eq (match-string 3 (car replies)) ?-))
(user-at-host (match-string 4 (car replies)))
- (operator (not (null (match-beginning 2)))))
+ status)
+ (if away
+ (setq status (cons "away" status)))
+ (if operator
+ (setq status (cons "operator" status)))
(riece-user-toggle-away user away)
(riece-user-toggle-operator user operator)
(riece-insert-info
(list riece-dialogue-buffer riece-others-buffer)
(concat
(riece-concat-server-name
- (format "%s is (%s) [%s, %s]"
- (riece-format-identity
- (riece-make-identity user riece-server-name)
- t)
- (riece-strip-user-at-host user-at-host)
- (if operator
- "operator"
- "not operator")
- (if away
- "away"
- "not away")))
+ (riece-concat-user-status
+ status
+ (format "%s is (%s)"
+ (riece-format-identity
+ (riece-make-identity user riece-server-name)
+ t)
+ (riece-strip-user-at-host user-at-host))))
"\n"))))
(setq replies (cdr replies)))
(riece-update-status-indicators)
(defun riece-handle-317-message (prefix number name string)
(if (string-match
- (concat "^\\(" riece-user-regexp "\\) \\([0-9]+\\) :")
+ (concat "^\\(" riece-user-regexp "\\) \\([0-9]+\\) [^:]*:seconds")
string)
(let ((user (match-string 1 string))
(idle (match-string 2 string)))
channel (substring (car users) 1) t))
(riece-naming-assert-join (car users) channel)))
(setq users (cdr users)))
+ (let* ((channel-identity (riece-make-identity channel
+ riece-server-name))
+ (buffer (riece-channel-buffer channel-identity)))
+ (riece-insert-info buffer (concat "Users: " string "\n"))
+ (riece-insert-info
+ (if (and riece-channel-buffer-mode
+ (not (eq buffer riece-channel-buffer)))
+ (list riece-dialogue-buffer riece-others-buffer)
+ riece-dialogue-buffer)
+ (concat
+ (riece-concat-server-name
+ (format "Users on %s: %s"
+ (riece-format-identity channel-identity t) string))
+ "\n")))
(riece-redisplay-buffers))))
(defun riece-handle-322-message (prefix number name string)
(riece-channel-set-topic (riece-get-channel channel) topic)
(let* ((channel-identity (riece-make-identity channel
riece-server-name))
- (buffer (riece-channel-buffer-name channel-identity)))
+ (buffer (riece-channel-buffer channel-identity)))
(riece-insert-info buffer (concat visible " users, topic: "
topic "\n"))
(riece-insert-info
(setq modes (cdr modes)))
(let* ((channel-identity (riece-make-identity channel
riece-server-name))
- (buffer (riece-channel-buffer-name channel-identity)))
+ (buffer (riece-channel-buffer channel-identity)))
(riece-insert-info buffer (concat "Mode: " mode-string "\n"))
(riece-insert-info
(if (and riece-channel-buffer-mode
(let* ((channel (match-string 1 string))
(message (substring string (match-end 0)))
(channel-identity (riece-make-identity channel riece-server-name))
- (buffer (riece-channel-buffer-name channel-identity)))
+ (buffer (riece-channel-buffer channel-identity)))
(if remove
(riece-channel-set-topic (riece-get-channel channel) nil)
(riece-channel-set-topic (riece-get-channel channel) message)
(let* ((channel (match-string 1 string))
(user (substring string (match-end 0)))
(channel-identity (riece-make-identity channel riece-server-name))
- (buffer (riece-channel-buffer-name channel-identity)))
+ (buffer (riece-channel-buffer channel-identity)))
(riece-insert-info buffer (concat "Inviting " user "\n"))
(riece-insert-info
(if (and riece-channel-buffer-mode
(flag (match-string 8 string))
(hops (match-string 9 string))
(name (substring string (match-end 0)))
- (buffer (riece-channel-buffer-name
- (riece-make-identity channel riece-server-name)))
- (info (format "%10s = %s (%s) [%s, %s, %s hops, on %s]"
+ (buffer (riece-channel-buffer (riece-make-identity
+ channel riece-server-name)))
+ (info (format "%10s = %s (%s)"
(concat
(if (memq flag '(?@ ?+))
(char-to-string flag)
t))
name
(riece-strip-user-at-host
- (concat user "@" host))
- (if operator
- "operator"
- "not operator")
- (if away
- "away"
- "not away")
- hops
- server)))
+ (concat user "@" host))))
+ status)
+ (if operator
+ (setq status (cons "operator" status)))
+ (if away
+ (setq status (cons "away" status)))
+ (unless (equal hops "0")
+ (setq status (cons (concat "on " server)
+ (cons (concat hops " hops")
+ status))))
+ (if status
+ (setq status (nreverse status)))
(riece-naming-assert-join nick channel)
(riece-user-toggle-away user away)
(riece-user-toggle-operator user operator)
- (riece-insert-info buffer (concat info "\n"))
+ (riece-insert-info buffer (concat (riece-concat-user-status
+ status info)
+ "\n"))
(riece-insert-info
(if (and riece-channel-buffer-mode
(not (eq buffer riece-channel-buffer)))
riece-dialogue-buffer)
(concat
(riece-concat-server-name
- (concat
- (riece-format-identity
- (riece-make-identity channel riece-server-name)
- t)
- " "
- info))
+ (riece-concat-user-status
+ status
+ (concat
+ (riece-format-identity
+ (riece-make-identity channel riece-server-name)
+ t)
+ " "
+ info)))
"\n"))
(riece-redisplay-buffers))))