* mixi-el: Version 1.4.1 released.
[elisp/mixi.git] / riece-mixi.el
index 6cb8748..03d7b09 100644 (file)
 (require 'mixi)
 (require 'mixi-utils)
 (require 'timer)
-
-;; Functions and variables which should be defined in the other module
-;; at run-time.
-(eval-when-compile
-  (defvar riece-current-channels)
-  (autoload 'riece-send-string "riece-server")
-  (autoload 'riece-identity-prefix "riece-identity")
-  (autoload 'riece-display-message "riece-message")
-  (autoload 'riece-make-message "riece-message")
-  (autoload 'riece-current-nickname "riece-misc")
-  (autoload 'riece-message-own-p "riece-message")
-  (autoload 'riece-message-text "riece-message")
-  (autoload 'riece-message-target "riece-message")
-  (autoload 'riece-parse-identity "riece-identity"))
+(require 'riece-message)
 
 (defgroup riece-mixi nil
   "Riece integration for mixi."
@@ -108,9 +95,8 @@ of mixi object."
 
 (defun riece-mixi-display-message-function (message)
   (when (and (get 'riece-mixi 'riece-addon-enabled)
-            (or (not riece-mixi-reply-to-only-me)
-                (and riece-mixi-reply-to-only-me
-                     (riece-message-own-p message)))
+            (or (riece-message-own-p message)
+                (not riece-mixi-reply-to-only-me))
             (string-match riece-mixi-regexp (riece-message-text message)))
     (let* ((url (match-string 1 (riece-message-text message)))
           (object (mixi-make-object-from-url url)))
@@ -120,9 +106,7 @@ of mixi object."
 
 (defun riece-mixi-send-object-with-url (target object)
   (condition-case nil
-      (let ((string (mixi-make-title object t))
-           (url (mixi-make-url object)))
-       (riece-mixi-send-notice target string)
+      (let ((url (mixi-make-url object)))
        (riece-mixi-send-notice target url))
     (error nil)))
 
@@ -136,23 +120,22 @@ If they exist, send them as notice to the corresponding channel."
              (when (member target riece-current-channels)
                (let ((objects (mixi-make-objects url-or-function
                                                  riece-mixi-check-range)))
-                 (mapc (lambda (object)
-                         (when (mixi-parent-p object)
-                           (let ((comments (mixi-get-comments
-                                            object riece-mixi-check-range)))
-                             (mapc (lambda (comment)
-                                     (let ((time (mixi-object-time comment)))
-                                       (when (mixi-time-less-p
-                                              riece-mixi-last-check time)
-                                         (riece-mixi-send-object-with-url
-                                          target comment))))
-                                   comments)))
-                         (let ((time (mixi-object-time object)))
-                           (when (mixi-time-less-p riece-mixi-last-check
-                                                   time)
-                             (riece-mixi-send-object-with-url target
-                                                              object))))
-                       objects)))))
+                 (while objects
+                   (let ((object (car objects)))
+                     (when (mixi-parent-p object)
+                       (let ((comments (mixi-get-comments
+                                        object riece-mixi-check-range)))
+                         (while comments
+                           (let ((time (mixi-object-time (car comments))))
+                             (when (mixi-time-less-p riece-mixi-last-check
+                                                     time)
+                               (riece-mixi-send-object-with-url
+                                target (car comments))))
+                           (setq comments (cdr comments)))))
+                     (let ((time (mixi-object-time object)))
+                       (when (mixi-time-less-p riece-mixi-last-check time)
+                         (riece-mixi-send-object-with-url target object))))
+                   (setq objects (cdr objects)))))))
          riece-mixi-check-alist)
     (setq riece-mixi-last-check (current-time))))