X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=sb-mixi.el;h=2d530dc7df2c4bd3058278007934dfe1f7c0dc89;hb=fccb7572577a0ca72481f44374c72c4a4b72bbbf;hp=6761384a798b28c83bdeeb4b8ba90ed13539a770;hpb=5f17334b93489228ff82b56e800b4d8e018e0c81;p=elisp%2Fmixi.git diff --git a/sb-mixi.el b/sb-mixi.el index 6761384..2d530dc 100644 --- a/sb-mixi.el +++ b/sb-mixi.el @@ -41,7 +41,12 @@ ("new-comments" . mixi-get-new-comments) ("new-bbses" . mixi-get-new-bbses) ("messages" . mixi-get-messages) + ("messages.sent" . + (lambda (range) + (mixi-get-messages 'outbox range))) + ("logs" . mixi-get-logs) ("my-diaries" . "/home.pl") + ("mixi-el" . "/view_community.pl?id=1596390") ("news.newest.domestic" . (lambda (range) (mixi-get-news 'domestic 'newest range))) @@ -106,6 +111,7 @@ of mixi object." (const :tag "New comments" mixi-get-new-comments) (const :tag "New BBSes" mixi-get-new-bbses) (const :tag "Messages" mixi-get-messages) + (const :tag "Logs" mixi-get-logs) (function :tag "Other function"))))) ;; FIXME: Don't use this user option. @@ -139,27 +145,33 @@ of mixi object." (defun shimbun-mixi-make-subject (shimbun object) (let ((class (mixi-object-class object))) - (if (eq class 'mixi-comment) - (concat "Re: " (shimbun-mixi-make-subject - shimbun (mixi-comment-parent object))) - (let ((prefix (when (eq class 'mixi-event) "[¥¤¥Ù¥ó¥È]")) - (subject (mixi-object-title object)) - (suffix (when (string-match - "^new-" (shimbun-current-group-internal shimbun)) - (concat " (" - (if (eq class 'mixi-diary) - (mixi-friend-nick - (mixi-diary-owner object)) - (mixi-community-name - (mixi-bbs-community object))) - ")")))) - (concat prefix subject suffix))))) + (cond ((eq class 'mixi-comment) + (concat "Re: " (shimbun-mixi-make-subject + shimbun (mixi-comment-parent object)))) + ((eq class 'mixi-log) + (mixi-friend-nick (mixi-log-friend object))) + (t + (let ((prefix (when (eq class 'mixi-event) "[¥¤¥Ù¥ó¥È]")) + (subject (mixi-object-title object)) + (suffix (when (string-match + "^new-" + (shimbun-current-group-internal shimbun)) + (concat " (" + (if (eq class 'mixi-diary) + (mixi-friend-nick + (mixi-diary-owner object)) + (mixi-community-name + (mixi-bbs-community object))) + ")")))) + (concat prefix subject suffix)))))) (defun shimbun-mixi-make-from (object) (let ((class (mixi-object-class object))) (if (eq class 'mixi-news) (mixi-news-media object) - (let ((owner (mixi-object-owner object))) + (let ((owner (if (eq class 'mixi-log) + (mixi-log-friend object) + (mixi-object-owner object)))) (mixi-friend-nick owner))))) (defun shimbun-mixi-make-date (object) @@ -174,19 +186,21 @@ of mixi object." (defun shimbun-mixi-make-message-id (object) (let ((class (mixi-object-class object))) - (concat "<" - (format-time-string "%Y%m%d%H%M" (mixi-object-time object)) "." - (if (eq class 'mixi-comment) - (concat (mixi-friend-id (mixi-comment-owner object)) "@" - (mixi-object-id (mixi-comment-parent object)) "." - (mixi-friend-id (mixi-object-owner - (mixi-comment-parent object))) ".") - (concat (mixi-object-id object) "@" - (if (eq class 'mixi-news) - (mixi-news-media-id object) - (mixi-object-id (mixi-object-owner object))) ".")) - (mixi-object-name object) ".mixi.jp" - ">"))) + (concat + (format-time-string "<%Y%m%d%H%M" (mixi-object-time object)) "." + (cond ((eq class 'mixi-comment) + (concat (mixi-friend-id (mixi-comment-owner object)) "@" + (mixi-object-id (mixi-comment-parent object)) "." + (mixi-friend-id (mixi-object-owner + (mixi-comment-parent object))) ".")) + ((eq class 'mixi-log) + (concat (mixi-friend-id (mixi-log-friend object)) "@")) + (t + (concat (mixi-object-id object) "@" + (if (eq class 'mixi-news) + (mixi-news-media-id object) + (mixi-object-id (mixi-object-owner object))) "."))) + (mixi-object-name object) ".mixi.jp>"))) (defun shimbun-mixi-make-xref (object) (let ((class (mixi-object-class object))) @@ -202,7 +216,11 @@ of mixi object." ((eq class 'mixi-message) (mixi-expand-url (mixi-message-page object))) ((eq class 'mixi-news) - (mixi-news-page object))))) + (mixi-news-page object)) + ((eq class 'mixi-log) + (mixi-expand-url (mixi-friend-page (mixi-log-friend object)))) + ((eq class 'mixi-friend) + (mixi-expand-url (mixi-friend-page object)))))) (defun shimbun-mixi-make-body (object) (let ((class (mixi-object-class object))) @@ -211,16 +229,57 @@ of mixi object." (setq limit (if limit (format-time-string "%Yǯ%m·î%dÆü" limit) "»ØÄê¤Ê¤·")) - (concat "
³«ºÅÆü»þ¡§
" - "
" (mixi-event-date object) "
" + (concat "
" + "
³«ºÅÆü»þ¡§
" + "
" (mixi-event-date object) "
\n" "
³«ºÅ¾ì½ê¡§
" - "
" (mixi-event-place object) "
" + "
" (mixi-event-place object) "
\n" "
¾ÜºÙ¡§
" - "
" (mixi-event-detail object) "
" + "
" (mixi-event-detail object) "
\n" "
Ê罸´ü¸Â¡§
" - "
" limit "
" + "
" limit "
\n" "
»²²Ã¼Ô¡§
" - "
" (mixi-event-members object) "
"))) + "
" (mixi-event-members object) "
\n" + "
"))) + ((eq class 'mixi-friend) + (if (mixi-object-realized-p object) + (let ((sex (if (eq (mixi-friend-sex object) 'male) "ÃË" "½÷")) + (age (number-to-string (mixi-friend-age object))) + (birthday + (concat (mapconcat (lambda (number) + (number-to-string number)) + (mixi-friend-birthday object) "·î") + "Æü")) + (blood-type (symbol-name + (mixi-friend-blood-type object))) + (hobby (mapconcat 'identity + (mixi-friend-hobby object) ", "))) + (concat "
" + "
̾Á°¡§
" + "
" (mixi-friend-name object) "
\n" + "
À­ÊÌ¡§
" + "
" sex "À­
\n" + "
¸½½»½ê¡§
" + "
" (mixi-friend-address object) "
\n" + "
ǯÎð¡§
" + "
" age "ºÐ
\n" + "
ÃÂÀ¸Æü¡§
" + "
" birthday "
\n" + "
·ì±Õ·¿¡§
" + "
" blood-type "·¿
\n" + "
½Ð¿ÈÃÏ¡§
" + "
" (mixi-friend-birthplace object) "
\n" + "
¼ñÌ£¡§
" + "
" hobby "
\n" + "
¿¦¶È¡§
" + "
" (mixi-friend-job object) "
\n" + "
½ê°¡§
" + "
" (mixi-friend-organization object) "
\n" + "
¼«¸Ê¾Ò²ð¡§
" + "
" (mixi-friend-profile object) "
\n" + "
")) + (concat "¥×¥í¥Õ¥£¡¼¥ë¤òɽ¼¨¤¹¤ë"))) (t (mixi-object-content object))))) (defun shimbun-mixi-make-reply-to (object) @@ -255,33 +314,35 @@ of mixi object." (catch 'stop (mapc (lambda (object) (when (mixi-object-p object) - (let ((class (mixi-object-class object)) - (id (shimbun-mixi-make-message-id object))) - (push - (shimbun-create-header - 0 - (shimbun-mixi-make-subject shimbun object) - (shimbun-mixi-make-from object) - (shimbun-mixi-make-date object) - id - (if (eq class 'mixi-comment) - (shimbun-mixi-make-message-id - (mixi-comment-parent object)) - "") - 0 0 - (shimbun-mixi-make-xref object)) - headers) - (when (or (eq class 'mixi-diary) - (mixi-bbs-p object)) + (let ((class (mixi-object-class object))) + (when (mixi-parent-p object) (let ((comments (mixi-get-comments object range))) (mapc (lambda (header) (push header headers)) (shimbun-mixi-get-headers shimbun comments)))) - (when (eq class 'mixi-comment) - (puthash id (mixi-comment-content object) - (shimbun-mixi-comment-cache-internal - shimbun)))))) + (let ((id (shimbun-mixi-make-message-id object))) + (when (and (eq class 'mixi-comment) + (shimbun-search-id shimbun id)) + (throw 'stop nil)) + (push + (shimbun-create-header + 0 + (shimbun-mixi-make-subject shimbun object) + (shimbun-mixi-make-from object) + (shimbun-mixi-make-date object) + id + (if (eq class 'mixi-comment) + (shimbun-mixi-make-message-id + (mixi-comment-parent object)) + "") + 0 0 + (shimbun-mixi-make-xref object)) + headers) + (when (eq class 'mixi-comment) + (puthash id (mixi-comment-content object) + (shimbun-mixi-comment-cache-internal + shimbun))))))) objects)) headers))) @@ -298,8 +359,7 @@ of mixi object." (setq objects (mixi-get-diaries object range))) ((eq class 'mixi-community) (setq objects (mixi-get-bbses object range))) - ((or (eq class 'mixi-diary) - (mixi-bbs-p object)) + ((mixi-parent-p object) (setq objects (mixi-get-comments object range))) (t (error (concat (symbol-name class) " is not supported yet.")))))