;; mixi-utils.el --- Utilities for mixi object -*- coding: euc-jp -*-
-;; Copyright (C) 2007 OHASHI Akira
+;; Copyright (C) 2007, 2008 OHASHI Akira
;; Author: OHASHI Akira <bg66@koka-in.org>
;; Keywords: hypermedia
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
-;; along with this program; if not, you can either send email to this
-;; program's maintainer or write to: The Free Software Foundation,
-;; Inc.; 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+;; along with GNU Emacs; see the file COPYING. If not, write to the
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
;;; Commentary:
")"))))
(concat prefix subject suffix))))))
-(defun mixi-make-author (object)
+(defun mixi-make-author (object &optional add-comment-count)
(with-mixi-class object
- (if (eq class 'mixi-news)
- (mixi-news-media object)
- (let ((owner (if (eq class 'mixi-log)
- (mixi-log-friend object)
- (mixi-object-owner object))))
- (mixi-friend-nick owner)))))
+ (cond ((eq class 'mixi-news)
+ (mixi-news-media object))
+ ((and add-comment-count
+ (eq class 'mixi-comment)
+ (mixi-bbs-p (mixi-comment-parent object)))
+ (concat (mixi-comment-count object) " "
+ (mixi-friend-nick (mixi-comment-owner object))))
+ ((eq class 'mixi-release)
+ "mixi±¿±Ä»ö̳¶É")
+ (t
+ (let ((owner (if (eq class 'mixi-log)
+ (mixi-log-friend object)
+ (mixi-object-owner object))))
+ (mixi-friend-nick owner))))))
(defun mixi-make-date (object)
(let* ((time (mixi-object-time object))
(mixi-comment-parent object))) "."))
((eq class 'mixi-log)
(concat (mixi-friend-id (mixi-log-friend object)) "@"))
+ ((eq class 'mixi-release)
+ (concat (md5 (mixi-release-title object)) "@"))
(t
(concat (mixi-object-id object) "@"
(if (eq class 'mixi-news)
(mixi-expand-url (mixi-message-page object)))
((eq class 'mixi-news)
(mixi-news-page object))
+ ((eq class 'mixi-release)
+ (let ((url (mixi-release-list-page)))
+ (mixi-expand-url (substring url 0
+ (string-match "?" url)))))
((eq class 'mixi-log)
(mixi-expand-url (mixi-friend-page (mixi-log-friend object))))
((eq class 'mixi-friend)
(defun mixi-make-content (object)
(with-mixi-class object
(cond ((eq class 'mixi-event)
- (let ((limit (mixi-event-limit object)))
- (setq limit (if limit
- (format-time-string "%Yǯ%m·î%dÆü" limit)
- "»ØÄê¤Ê¤·"))
- (concat "<dl>"
- "<dt>³«ºÅÆü»þ¡§</dt>"
- "<dd>" (mixi-event-date object) "</dd>\n"
- "<dt>³«ºÅ¾ì½ê¡§</dt>"
- "<dd>" (mixi-event-place object) "</dd>\n"
- "<dt>¾ÜºÙ¡§</dt>"
- "<dd>" (mixi-event-detail object) "</dd>\n"
- "<dt>Ê罸´ü¸Â¡§</dt>"
- "<dd>" limit "</dd>\n"
- "<dt>»²²Ã¼Ô¡§</dt>"
- "<dd>" (mixi-event-members object) "</dd>\n"
- "</dl>")))
+ (concat "<dl>"
+ "<dt>³«ºÅÆü»þ¡§</dt>"
+ "<dd>" (mixi-event-date object) "</dd>\n"
+ "<dt>³«ºÅ¾ì½ê¡§</dt>"
+ "<dd>" (mixi-event-place object) "</dd>\n"
+ "<dt>¾ÜºÙ¡§</dt>"
+ "<dd>" (mixi-event-detail object) "</dd>\n"
+ "<dt>Ê罸´ü¸Â¡§</dt>"
+ "<dd>" (mixi-event-limit object) "</dd>\n"
+ "<dt>»²²Ã¼Ô¡§</dt>"
+ "<dd>" (mixi-event-members object) "</dd>\n"
+ "</dl>"))
((eq class 'mixi-friend)
(if (mixi-object-realized-p object)
(let ((sex (if (eq (mixi-friend-sex object) 'male) "ÃË" "½÷"))
(mixi-friend-birthday object)
"·î") "Æü")
"??·î??Æü"))
- (blood-type (symbol-name
- (mixi-friend-blood-type object)))
+ (blood-type (if (mixi-friend-blood-type object)
+ (symbol-name
+ (mixi-friend-blood-type object))
+ "?"))
(hobby (mapconcat 'identity
(mixi-friend-hobby object) ", ")))
(concat "<dl>"
(mixi-friend-id (mixi-message-owner object))))
((or (eq class 'mixi-friend) (eq class 'mixi-log))
(concat mixi-reply-to "message;"
- (mixi-friend-id object))))))))
+ (mixi-friend-id object)))
+ (t
+ (concat mixi-reply-to "diary")))))))
(defconst mixi-to-regexp
"^mixi;\\([a-z]+\\);?\\([a-z0-9]+\\)?;?\\([0-9]+\\)?;?\\([0-9]+\\)?")