* Riece: Version 0.1.6 released.
[riece] / lisp / riece-misc.el
index c4fa7bc..e3ff301 100644 (file)
 \(i.e. it matches `riece-channel-regexp')"
   (string-match (concat "^" riece-channel-regexp) string))
 
+(defun riece-user-p (string)
+  "Return t if STRING is a user.
+\(i.e. it matches `riece-user-regexp')"
+  (string-match (concat "^" riece-user-regexp) string))
+
 (defun riece-current-nickname ()
   "Return the current nickname."
-  (riece-with-server-buffer (riece-identity-server riece-current-channel)
+  (riece-with-server-buffer (riece-current-server-name)
     (if riece-real-nickname
        (riece-make-identity riece-real-nickname riece-server-name))))
 
       (substring user-at-host 1)
     user-at-host))
 
-(defun riece-get-users-on-server ()
-  (riece-with-server-buffer (riece-identity-server riece-current-channel)
-    (let (users)
+(defun riece-get-users-on-server (server-name)
+  (delq nil (mapcar (lambda (identity)
+                     (if (riece-user-p (riece-identity-prefix identity))
+                         identity))
+                   (riece-get-identities-on-server server-name))))
+
+(defun riece-get-identities-on-server (server-name)
+  (riece-with-server-buffer server-name
+    (let (identities)
       (mapatoms
        (lambda (atom)
-        (unless (riece-channel-p (symbol-name atom))
-          (setq users (cons (symbol-name atom) users))))
+        (setq identities
+              (cons (riece-make-identity (symbol-name atom) server-name)
+                    identities)))
        riece-obarray)
-      (if (member riece-real-nickname users)
-         users
-       (cons riece-real-nickname users)))))
+      identities)))
+
+(defun riece-check-channel-commands-are-usable (&optional channel)
+   (unless riece-current-channel
+     (error (substitute-command-keys
+            "Type \\[riece-command-join] to join a channel")))
+   (if (and channel
+           (not (riece-channel-p (riece-identity-prefix
+                                  riece-current-channel))))
+       (error "Not on a channel")))
 
 (provide 'riece-misc)