     [file version.texi not included]

このファイルは Emacs で mixi にアクセスするための Emacs Lisp ライブラリ mixi.el に関するマニュアルです。

Copyright © 2007, 2008, 2009 OHASHI Akira.

     Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts.  A copy of the license is included in the section entitled "GNU Free Documentation License".

mixi.el ユーザマニュアル
****************

このマニュアルでは mixi.el バージョン VERSION について解説します。

概要
**

mixi.el とは Emacs 上で mixi の各種情報を閲覧、または日記などの投稿を行なえるようにするための Emacs Lisp ライブラリです。

閲覧機能の基本的な動作原理は以下のようになっています。

 1. mixi へ HTTP アクセスする (必要ならログインを実行する)

 2. 必要とするページを取得する

 3. 取得されたページを解析する

 4. 解析結果を mixi オブジェクト に格納して返却する

取得されたページを解析する際、正規表現を用いて日付や本文などの必要な要素のみを切り出します。この作業は mixi の出力する HTML ページの構造に強く依存しているため、mixi 側がレイアウトやデザインの変更を実施した場合は正常に動作しなくなることがあります。

必要な物
****

mixi.el は mixi へアクセスするために以下のライブラリ、または外部アプリケーションを使用します。必ず以下のうちのどれか一つはインストールしておかなければいけません。

  * emacs-w3m (http://emacs-w3m.namazu.org/)

  * url.el (Emacs 22 以降に付属の物でないと正常に動かないかもしれません)

  * cURL (http://curl.haxx.se/)

使用するライブラリまたは外部アプリケーションのことをバックエンドと呼びます。どのバックエンドを使用するかは環境を調査して自動的に決定されますが、mixi-backend で変更することもできます。

インストール
******

最初に、配布された mixi-el の tarball を以下のように適当な場所で展開し、作成された mixi-el-VERSION ディレクトリへ移動してください。

     % tar zxf mixi-el-VERSION.tar.gz
     % cd mixi-el-VERSION

もしあなたが mixi-el を CVS から取得したのであれば、configure スクリプトを生成するために以下を実行する必要があります。

     % autoreconf -f -i

後は以下を実行することによりインストールが完了します。

     % ./configure
     % make
     % make install (root権限が必要になるかもしれません)

すべての Emacs Lisp ファイルと info ファイルが適切なディレクトリにインストールされているはずです。

mixi-el には mixi.el で用意されている API を使用して実装したいくつかのアプリケーションが同梱されています。これらのアプリケーションの中にはあなたが必要としない物も含まれているかもしれません。また、使用している環境によっては自動で決定されるインストール先が不都合な場合があるかもしれません。これらの問題を解消するためにあなたは configure スクリプトに引数を与えることができます。使用可能な引数については以下を実行してヘルプで確認してください。

     % ./configure --help

同梱されているアプリケーション
***************

mixi-el には mixi.el で用意されている API を使用して実装したいくつかのアプリケーションが同梱されています。この章でそれらを簡単に紹介します。

sb-mixi.el
     Gnus (http://gnus.org/)、Wanderlust (http://www.gohome.org/wl/)、Mew (http://www.mew.org/) のような Shimbun 対応のメーラで mixi の記事を見ることができるようになります。

mixi-gnus.el
mixi-wl.el
     Gnus と Wanderlust からそれぞれ mixi に投稿できるようになります。

riece-mixi.el
     Riece (http://www.nongnu.org/riece/) に mixi の新着記事チェック機能などを追加します。

mixi-atom.el
     RSS リーダで読み込める Atom Syndication Format で mixi の記事を出力します。

mixi-ticker.el
     mixi の新着記事をミニバッファにティッカー表示します。

mixi.el API
***********

この章では mixi.el で扱うデータ形式と API について解説します。

mixi オブジェクト
===========

mixi.el ではマイミクシィや日記、コミュニティ、トピックなどを mixi オブジェクトという独自のデータ形式で管理しています。mixi.el API の各種取得関数ではこの mixi オブジェクト形式のリストが返却され、日記取得関数など引数を取る関数を使用する際にもまた mixi オブジェクト形式で引数を与えなければいけません。

mixi オブジェクトは正確にはマイミクシィや日記などでそれぞれデータ形式が異なります。それは各オブジェクトが持っている情報 (マイミクシィなら名前やニックネーム、日記ならタイトルや本文など) が異なるためです。 mixi オブジェクトはオブジェクト指向プログラムでいうところのインスタンスのように扱うように実装されており、そのオブジェクトが持つ情報を取得あるいは設定するためにアクセサメソッドのように使うことができる関数が用意されています。

mixi オブジェクトは各オブジェクト専用のオブジェクト生成関数を使用して生成することができます。ただし、オブジェクトを生成しただけではまだ mixi のサイトへのアクセスは発生しません。これは、一覧取得関数を実行したときなどに大量のサイトアクセスが発生して時間が掛かってしまうのを防ぐためです。この仕組みは GoF のデザインパターンのうちの Proxy パターン (必要になってから作る) から発想を得ました。

     (setq my-friend (mixi-make-friend "XXXXX"))
         => friend オブジェクト (この時点ではまだサイトにはアクセスし
         ていません)

     (mixi-friend-nick my-friend)
         => ニックネーム (このとき初めてサイトアクセスが発生します)

     (mixi-friend-name my-friend)
         => 名前 (上記のサイトアクセスで全情報を取得しているので、もう
         サイトにはアクセスしません)

以降の小節で各 mixi オブジェクトについて解説します。

friend オブジェクト
-------------

マイミクシィを表すオブジェクトです。以下の関数を使用することにより friend オブジェクトを生成することができます。

 -- Function: mixi-make-friend id
     friend オブジェクトを生成します。引数にはマイミクシィの ID を文字列で指定してください。

アクセサメソッド
........

friend オブジェクトの各種情報を取得するためのアクセサメソッドの一覧を以下に解説します。

 -- Function: mixi-friend-id friend
     ID を返却します。

 -- Function: mixi-friend-nick friend
     ニックネームを返却します。

 -- Function: mixi-friend-name friend
     名前を返却します。

 -- Function: mixi-friend-sex friend
     性別を返却します。

 -- Function: mixi-friend-address friend
     現住所を返却します。

 -- Function: mixi-friend-age friend
     年齢を返却します。

 -- Function: mixi-friend-birthday friend
     誕生日を返却します。

 -- Function: mixi-friend-blood-type friend
     血液型を返却します。

 -- Function: mixi-friend-birthplace friend
     出身地を返却します。

 -- Function: mixi-friend-hobby friend
     趣味を返却します。

 -- Function: mixi-friend-job friend
     職業を返却します。

 -- Function: mixi-friend-organization friend
     所属を返却します。

 -- Function: mixi-friend-profile friend
     自己紹介を返却します。

log オブジェクト
----------

足あとを表すオブジェクトです。このオブジェクトを直接生成することは無いと思います。

アクセサメソッド
........

log オブジェクトの各種情報を取得するためのアクセサメソッドの一覧を以下に解説します。

 -- Function: mixi-log-friend log
     足あとのマイミクシィを返却します。

 -- Function: mixi-log-time log
     足あとの日時を返却します。

diary オブジェクト
------------

日記を表すオブジェクトです。以下の関数を使用することにより diary オブジェクトを生成することができます。

 -- Function: mixi-make-diary owner id
     diary オブジェクトを生成します。引数には作成者を表す friend オブジェクトと日記の ID を文字列で指定してください。

アクセサメソッド
........

diary オブジェクトの各種情報を取得するためのアクセサメソッドの一覧を以下に解説します。

 -- Function: mixi-diary-owner diary
     作成者を返却します。

 -- Function: mixi-diary-id diary
     ID を返却します。

 -- Function: mixi-diary-comment-count diary
     コメント数を返却します。

 -- Function: mixi-diary-time diary
     日時を返却します。

 -- Function: mixi-diary-title diary
     タイトルを返却します。

 -- Function: mixi-diary-content diary
     本文を返却します。本文には HTML タグが含まれている可能性があります。それらを取り除くために mixi-remove-markup を使用することができます。

community オブジェクト
----------------

コミュニティを表すオブジェクトです。以下の関数を使用することにより community オブジェクトを生成することができます。

 -- Function: mixi-make-community id
     community オブジェクトを生成します。引数にはコミュニティの ID を文字列で指定してください。

アクセサメソッド
........

community オブジェクトの各種情報を取得するためのアクセサメソッドの一覧を以下に解説します。

 -- Function: mixi-community-id community
     ID を返却します。

 -- Function: mixi-community-name community
     名前を返却します。

 -- Function: mixi-community-birthday community
     開設日を返却します。

 -- Function: mixi-community-owner community
     管理人を返却します。

 -- Function: mixi-community-category community
     カテゴリを返却します。

 -- Function: mixi-community-members community
     人数を返却します。

 -- Function: mixi-community-open-level community
     参加条件と公開レベルを返却します。

 -- Function: mixi-community-authority community
     トピック作成の権限を返却します。

 -- Function: mixi-community-description community
     説明を返却します。説明には HTML タグが含まれている可能性があります。それらを取り除くために mixi-remove-markup を使用することができます。

topic オブジェクト
------------

トピックを表すオブジェクトです。以下の関数を使用することにより topic オブジェクトを生成することができます。

 -- Function: mixi-make-topic community id
     topic オブジェクトを生成します。引数にはトピックが属するコミュニティを表す community オブジェクトとトピックの ID を文字列で指定してください。

アクセサメソッド
........

topic オブジェクトの各種情報を取得するためのアクセサメソッドの一覧を以下に解説します。

 -- Function: mixi-topic-community topic
     属するコミュニティを返却します。

 -- Function: mixi-topic-id topic
     ID を返却します。

 -- Function: mixi-topic-comment-count topic
     コメント数を返却します。

 -- Function: mixi-topic-time topic
     日時を返却します。

 -- Function: mixi-topic-title topic
     タイトルを返却します。

 -- Function: mixi-topic-owner topic
     作成者を返却します。

 -- Function: mixi-topic-content topic
     本文を返却します。本文には HTML タグが含まれている可能性があります。それらを取り除くために mixi-remove-markup を使用することができます。

event オブジェクト
------------

イベントを表すオブジェクトです。以下の関数を使用することにより event オブジェクトを生成することができます。

 -- Function: mixi-make-event community id
     event オブジェクトを生成します。引数には属するコミュニティを表す community オブジェクトと ID を文字列形式で指定してください。

アクセサメソッド
........

event オブジェクトの各種情報を取得するためのアクセサメソッドの一覧を以下に解説します。

 -- Function: mixi-event-community event
     属するコミュニティを返却します。

 -- Function: mixi-event-id event
     ID を返却します。

 -- Function: mixi-event-comment-count event
     コメント数を返却します。

 -- Function: mixi-event-time event
     日時を返却します。

 -- Function: mixi-event-title event
     タイトルを返却します。

 -- Function: mixi-event-owner event
     作成者を返却します。

 -- Function: mixi-event-date event
     開催日時を返却します。

 -- Function: mixi-event-place event
     開催場所を返却します。

 -- Function: mixi-event-detail event
     詳細を返却します。

 -- Function: mixi-event-limit event
     募集期限を返却します。

 -- Function: mixi-event-members event
     参加者を返却します。

comment オブジェクト
--------------

コメントを表すオブジェクトです。このオブジェクトを直接生成することは無いと思います。

アクセサメソッド
........

comment オブジェクトの各種情報を取得するためのアクセサメソッドの一覧を以下に解説します。

 -- Function: mixi-comment-parent comment
     属する親オブジェクト (日記/トピック/イベント) を返却します。

 -- Function: mixi-comment-owner comment
     作成者を返却します。

 -- Function: mixi-comment-time comment
     日時を返却します。

 -- Function: mixi-comment-content comment
     本文を返却します。本文には HTML タグが含まれている可能性があります。それらを取り除くために mixi-remove-markup を使用することができます。

 -- Function: mixi-comment-count comment
     親オブジェクトがトピックまたはイベントのときのみコメント番号を返却します。

message オブジェクト
--------------

メッセージを表すオブジェクトです。このオブジェクトを直接生成することは無いと思います。

アクセサメソッド
........

message オブジェクトの各種情報を取得するためのアクセサメソッドの一覧を以下に解説します。

 -- Function: mixi-message-id message
     ID を返却します。

 -- Function: mixi-message-box message
     種類を返却します。

     inbox
          受信箱

     outbox
          送信済み

     savebox
          下書き保存箱

     thrash
          ごみ箱

     noticebox
          mixi からのお知らせ

 -- Function: mixi-message-owner message
     作成者を返却します。種類が mixi からのお知らせの場合は nil を返却します。

 -- Function: mixi-message-title message
     タイトルを返却します。

 -- Function: mixi-message-time message
     日時を返却します。

 -- Function: mixi-message-content message
     本文を返却します。本文には HTML タグが含まれている可能性があります。それらを取り除くために mixi-remove-markup を使用することができます。

introduction オブジェクト
-------------------

紹介文を表すオブジェクトです。このオブジェクトを直接生成することは無いと思います。

アクセサメソッド
........

introduction オブジェクトの各種情報を取得するためのアクセサメソッドの一覧を以下に解説します。

 -- Function: mixi-introduction-parent introduction
     紹介されている人を返却します。

 -- Function: mixi-introduction-owner introduction
     作成者を返却します。

 -- Function: mixi-introduction-content introduction
     紹介文を返却します。紹介文には HTML タグが含まれている可能性があります。それらを取り除くために mixi-remove-markup を使用することができます。

news オブジェクト
-----------

ニュースを表すオブジェクトです。このオブジェクトを直接生成することは無いと思います。

アクセサメソッド
........

news オブジェクトの各種情報を取得するためのアクセサメソッドの一覧を以下に解説します。

 -- Function: mixi-news-media-id news
     メディア ID を返却します。

 -- Function: mixi-news-id news
     ID を返却します。

 -- Function: mixi-news-media news
     メディアを返却します。

 -- Function: mixi-news-time news
     日時を返却します。

 -- Function: mixi-news-title news
     タイトルを返却します。

 -- Function: mixi-news-content news
     本文を返却します。本文には HTML タグが含まれている可能性があります。それらを取り除くために mixi-remove-markup を使用することができます。

release オブジェクト
--------------

新機能リリース・障害のご報告を表すオブジェクトです。このオブジェクトを直接生成することは無いと思います。

アクセサメソッド
........

release オブジェクトの各種情報を取得するためのアクセサメソッドの一覧を以下に解説します。

 -- Function: mixi-release-title release
     タイトルを返却します。

 -- Function: mixi-release-time release
     日時を返却します。

 -- Function: mixi-release-content release
     本文を返却します。本文には HTML タグが含まれている可能性があります。それらを取り除くために mixi-remove-markup を使用することができます。

echo オブジェクト
-----------

エコーを表すオブジェクトです。以下の関数を使用することにより echo オブジェクトを生成することができます。

 -- Function: mixi-make-echo owner post-time
     echo オブジェクトを生成します。引数には作成者を表す friend オブジェクトとエコーの日時を表す文字列を指定してください。

アクセサメソッド
........

echo オブジェクトの各種情報を取得するためのアクセサメソッドの一覧を以下に解説します。

 -- Function: mixi-echo-owner echo
     作成者を返却します。

 -- Function: mixi-echo-post-time echo
     日時を表す文字列を返却します。

 -- Function: mixi-echo-content echo
     本文を返却します。本文には HTML タグが含まれている可能性があります。それらを取り除くために mixi-remove-markup を使用することができます。

一覧取得関数
======

一覧取得関数では mixi のさまざまな情報を mixi オブジェクトのリスト形式で取得することができます。

 -- Function: mixi-get-friends &rest friend-or-range
     マイミクシィ一覧を取得します。 FRIEND-OR-RANGE は friend オブジェクトまたは数値を指定することができます。 friend オブジェクトを指定した場合はそのオブジェクトで指定した人のマイミクシィ一覧を取得します。friend オブジェクトを指定しなかった場合は自分のマイミクシィ一覧を取得します。数値を指定した場合は最大でこの数のマイミクシィのみを取得します。 friend オブジェクトと数値は同時に指定することもできます。

          (mixi-get-friends)
              => 自分のマイミクシィすべて

          (mixi-get-friends 5)
              => 自分のマイミクシィ最大で 5 人分のみ

          (mixi-get-friends friend)
              => friend さんのマイミクシィすべて

          (mixi-get-friends friend 10)
              => friend さんのマイミクシィ最大で 10 人分のみ

 -- Function: mixi-get-favorites &optional range
     お気に入り一覧を取得します。 RANGE は数値を指定することができます。 RANGE を指定した場合は最大でこの数のお気に入りのみを取得します。

          (mixi-get-favorites)
              => お気に入りすべて

          (mixi-get-favorites 5)
              => お気に入り最大で 5 件分のみ

 -- Function: mixi-get-logs &optional range
     足あと一覧を取得します。 RANGE は数値を指定することができます。 RANGE を指定した場合は最大でこの数の足あとのみを取得します。

          (mixi-get-logs)
              => 足あとすべて

          (mixi-get-logs 5)
              => 足あと最大で 5 件分のみ

 -- Function: mixi-get-self-logs &optional range
     自分の足あと一覧を取得します。 RANGE は数値を指定することができます。 RANGE を指定した場合は最大でこの数の自分の足あとのみを取得します。

          (mixi-get-self-logs)
              => 自分の足あとすべて

          (mixi-get-self-logs 5)
              => 自分の足あと最大で 5 件分のみ

 -- Function: mixi-get-recommended-friends &optional range
     おすすめマイミクシィ一覧を取得します。 RANGE は数値を指定することができます。 RANGE を指定した場合は最大でこの数のおすすめマイミクシィのみを取得します。

          (mixi-get-recommended-friends)
              => おすすめマイミクシィすべて

          (mixi-get-recommended-friends 5)
              => おすすめマイミクシィ最大で 5 件分のみ

 -- Function: mixi-get-diaries &rest friend-or-range
     日記一覧を取得します。 FRIEND-OR-RANGE は friend オブジェクトまたは数値を指定することができます。 friend オブジェクトを指定した場合はそのオブジェクトで指定した人の日記一覧を取得します。friend オブジェクトを指定しなかった場合は自分の日記一覧を取得します。数値を指定した場合は最大でこの数の日記のみを取得します。 friend オブジェクトと数値は同時に指定することもできます。

          (mixi-get-diaries)
              => 自分の日記すべて

          (mixi-get-diaries 5)
              => 自分の日記最大で 5 件分のみ

          (mixi-get-diaries friend)
              => friend さんの日記すべて

          (mixi-get-diaries friend 10)
              => friend さんの日記最大で 10 件分のみ

 -- Function: mixi-get-new-diaries &optional range
     マイミクシィ最新日記一覧を取得します。 RANGE は数値を指定することができます。 RANGE を指定した場合は最大でこの数のマイミクシィ最新日記のみを取得します。

          (mixi-get-new-diaries)
              => マイミクシィ最新日記すべて

          (mixi-get-new-diaries 5)
              => マイミクシィ最新日記最大で 5 件分のみ

 -- Function: mixi-search-diaries keyword &optional range
     新着日記検索結果一覧を取得します。 KEYWORD は検索したいキーワードを指定してください。 RANGE は数値を指定することができます。 RANGE を指定した場合は最大でこの数の検索結果のみを取得します。

          (mixi-search-diaries "mixi.el")
              => mixi.el で検索した新着日記すべて

          (mixi-search-diaries "mixi.el" 5)
              => mixi.el で検索した新着日記最大で 5 件分

 -- Function: mixi-get-communities &rest friend-or-range
     コミュニティ一覧を取得します。 FRIEND-OR-RANGE は friend オブジェクトまたは数値を指定することができます。 friend オブジェクトを指定した場合はそのオブジェクトで指定した人のコミュニティ一覧を取得します。friend オブジェクトを指定しなかった場合は自分のコミュニティ一覧を取得します。数値を指定した場合は最大でこの数のコミュニティのみを取得します。 friend オブジェクトと数値は同時に指定することもできます。

          (mixi-get-communities)
              => 自分のコミュニティすべて

          (mixi-get-communities 5)
              => 自分のコミュニティ最大で 5 件分のみ

          (mixi-get-communities friend)
              => friend さんのコミュニティすべて

          (mixi-get-communities friend 10)
              => friend さんのコミュニティ最大で 10 件分のみ

 -- Function: mixi-search-communities keyword &optional range
     コミュニティ検索結果一覧を取得します。 KEYWORD は検索したいキーワードを指定してください。 RANGE は数値を指定することができます。 RANGE を指定した場合は最大でこの数の検索結果のみを取得します。

          (mixi-search-communities "mixi.el")
              => mixi.el で検索したコミュニティすべて

          (mixi-search-communities "mixi.el" 5)
              => mixi.el で検索したコミュニティ最大で 5 件分

 -- Function: mixi-get-recommended-communities &optional range
     おすすめコミュニティ一覧を取得します。 RANGE は数値を指定することができます。 RANGE を指定した場合は最大でこの数のおすすめコミュニティのみを取得します。

          (mixi-get-recommended-communities)
              => おすすめコミュニティすべて

          (mixi-get-recommended-communities 5)
              => おすすめコミュニティ最大で 5 件分のみ

 -- Function: mixi-get-bbses community &optional range
     掲示板 (トピック/イベント) 一覧を取得します。 COMMUNITY は community オブジェクトを指定してください。 RANGE は数値を指定することができます。 RANGE を指定した場合は最大でこの数の掲示板のみを取得します。

          (mixi-get-bbses community)
              => community の掲示板すべて

          (mixi-get-bbses community 5)
              => community の掲示板最大で 5 件分のみ

 -- Function: mixi-get-new-bbses &optional range
     コミュニティ最新書き込み一覧を取得します。 RANGE は数値を指定することができます。 RANGE を指定した場合は最大でこの数の書き込みのみを取得します。

          (mixi-get-new-bbses)
              => コミュニティ最新書き込みすべて

          (mixi-get-new-bbses 5)
              => コミュニティ最新書き込み最大で 5 件分のみ

 -- Function: mixi-search-bbses keyword &optional range
     掲示板検索結果一覧を取得します。 KEYWORD は検索したいキーワードを指定してください。 RANGE は数値を指定することができます。 RANGE を指定した場合は最大でこの数の検索結果のみを取得します。

          (mixi-search-bbses "mixi.el")
              => mixi.el で検索した掲示板すべて

          (mixi-search-bbses "mixi.el" 5)
              => mixi.el で検索した掲示板最大で 5 件分

 -- Function: mixi-get-comments parent &optional range
     コメント一覧を取得します。 PARENT は以下のいずれかを指定してください。

       * diary オブジェクト

       * topic オブジェクト

       * event オブジェクト

     RANGE は数値を指定することができます。 RANGE を指定した場合は最大でこの数のコメントのみを取得します。

          (mixi-get-comments diary)
              => diary のコメント日記すべて

          (mixi-get-comments topic)
              => topic のコメント最大で 5 件分のみ

 -- Function: mixi-get-new-comments &optional range
     日記コメント記入履歴一覧を取得します。 RANGE は数値を指定することができます。 RANGE を指定した場合は最大でこの数の日記のみを取得します。

          (mixi-get-new-comments)
              => 日記コメント記入履歴すべて

          (mixi-get-new-comments 5)
              => 日記コメント記入履歴最大で 5 件分のみ

 -- Function: mixi-get-new-bbs-comments &optional range
     コミュニティコメント記入履歴一覧を取得します。 RANGE は数値を指定することができます。 RANGE を指定した場合は最大でこの数の書き込みのみを取得します。

          (mixi-get-new-bbs-comments)
              => コミュニティコメント記入履歴すべて

          (mixi-get-new-bbs-comments 5)
              => コミュニティコメント記入履歴最大で 5 件分のみ

 -- Function: mixi-get-messages &rest box-or-range
     メッセージ一覧を取得します。 BOX-OR-RANGE はメッセージの種類を表す以下のいずれかまたは数値を指定することができます。

     inbox
          受信箱

     outbox
          送信済み

     savebox
          下書き保存箱

     thrash
          ごみ箱

     noticebox
          mixi からのお知らせ

     メッセージの種類を指定した場合は指定したメッセージ一覧を取得します。メッセージの種類を指定しなかった場合は受信箱のメッセージ一覧を取得します。数値を指定した場合は最大でこの数のメッセージのみを取得します。メッセージの種類と数値は同時に指定することもできます。

          (mixi-get-messages)
              => 受信箱のメッセージすべて

          (mixi-get-messages 'outbox)
              => 送信済みのメッセージすべて

          (mixi-get-messages 'savebox 5)
              => 下書き保存箱のメッセージ最大で 5 件分のみ

 -- Function: mixi-get-introductions &rest friend-or-range
     紹介文一覧を取得します。 FRIEND-OR-RANGE は friend オブジェクトまたは数値を指定することができます。 friend オブジェクトを指定した場合はそのオブジェクトで指定したマイミクシィの紹介文一覧を取得します。friend オブジェクトを指定しなかった場合は自分の紹介文一覧を取得します。数値を指定した場合は最大でこの数の紹介文のみを取得します。 friend オブジェクトと数値は同時に指定することもできます。

          (mixi-get-introductions)
              => 自分の紹介文すべて

          (mixi-get-introductions 5)
              => 自分の紹介文最大で 5 人分のみ

          (mixi-get-introductions friend)
              => friend さんの紹介文すべて

          (mixi-get-introductions friend 10)
              => friend さんの紹介文最大で 10 人分のみ

 -- Function: mixi-get-news category sort &optional range
     ニュース一覧を取得します。 CATEGORY はカテゴリを表す以下のいずれかを指定してください。

     domestic
          国内

     politics
          政治

     economy
          経済

     area
          地域

     abroad
          海外

     sports
          スポーツ

     entertainment
          エンターテインメント

     IT
          IT・テクノロジー

     game-anime
          ゲーム・アニメ

     column
          コラム

     SORT は種類を表す以下のいずれかを指定してください。

     newest
          最新のニュース

     pickup
          注目のニュース

     RANGE は数値を指定することができます。 RANGE を指定した場合は最大でこの数のニュースのみを取得します。

          (mixi-get-news 'domestic 'newest)
              => 国内の最新ニュースすべて

          (mixi-get-introductions 'politics 'pickup 5)
              => 政治の注目ニュース最大で 5 件分のみ

 -- Function: mixi-get-releases &optional range
     新機能リリース・障害のご報告一覧を取得します。 RANGE は数値を指定することができます。 RANGE を指定した場合は最大でこの数の新機能リリース・障害のご報告のみを取得します。

          (mixi-get-releases)
              => 新機能リリース・障害のご報告すべて

          (mixi-get-releases 5)
              => 新機能リリース・障害のご報告最大で 5 件分のみ

 -- Function: mixi-get-echoes &rest friend-or-range
     エコー一覧を取得します。 FRIEND-OR-RANGE は friend オブジェクトまたは数値を指定することができます。 friend オブジェクトを指定した場合はそのオブジェクトで指定した人のエコー一覧を取得します。friend オブジェクトを指定しなかった場合は自分のエコー一覧を取得します。数値を指定した場合は最大でこの数のエコーのみを取得します。 friend オブジェクトと数値は同時に指定することもできます。

          (mixi-get-echoes)
              => 自分のエコーすべて

          (mixi-get-echoes 5)
              => 自分のエコー最大で 5 件分のみ

          (mixi-get-echoes friend)
              => friend さんのエコーすべて

          (mixi-get-echoes friend 10)
              => friend さんのエコー最大で 10 件分のみ

 -- Function: mixi-get-new-echoes &optional range
     みんなのエコー一覧を取得します。 RANGE は数値を指定することができます。 RANGE を指定した場合は最大でこの数のみんなのエコーのみを取得します。

          (mixi-get-new-echoes)
              => みんなのエコーすべて

          (mixi-get-new-echoes 5)
              => みんなのエコー最大で 5 件分のみ

投稿用関数
=====

投稿用関数を使用することにより日記の作成やコメントの投稿などが行なえます。

 -- Function: mixi-post-diary title content
     日記を投稿します。引数にはタイトルと本文を指定してください。

          (mixi-post-diary "タイトル" "本文")
              => 不定

 -- Function: mixi-post-topic community title content
     トピックを投稿します。引数には投稿するコミュニティを表す community オブジェクトとタイトル、本文を指定してください。

          (mixi-post-topic community "タイトル" "本文")
              => 不定

 -- Function: mixi-post-comment parent content
     コメントを投稿します。引数には投稿する親オブジェクト (日記/トピック/イベント) と本文を指定してください。

          (mixi-post-comment diary "本文")
              => 不定

 -- Function: mixi-post-message friend title content
     メッセージを送信します。引数には送信相手を表す friend オブジェクトとタイトル、本文を指定してください。

          (mixi-post-message friend "タイトル" "本文")
              => 不定

 -- Function: mixi-post-echo content &optional parent
     エコーを投稿します。引数には本文を指定してください。 PARENT には返信先を表す echo オブジェクトを指定することができます。 PARENT を指定した場合はこのエコーへの返信として投稿します。

          (mixi-post-echo "本文")
              => 不定

          (mixi-post-echo "本文" echo)
              => 不定

その他の関数
======

 -- Function: mixi-login &optional email password
     mixi にログインします。 EMAIL と PASSWORD が指定されていた場合はそれらの値をログイン時の E-mail とパスワードとして使用します。指定されていなかった場合は mixi-default-email と mixi-default-password の値を使用します。これらの値も指定されていなかった場合は、対話的に入力が求められます。

          (mixi-login)
              => 自分を表す friend オブジェクト

     各種情報取得関数を実行した際、もし mixi にログインしていなかった場合は自動的に mixi-login が実行されるので、明示的にログイン関数を実行する必要はありません。

 -- Function: mixi-logout
     mixi からログアウトします。

          (mixi-logout)
              => 不定

 -- Function: mixi-remove-markup string

     diary オブジェクトの本文などは HTML タグが含まれたままの状態で取得されます。この関数を使用することにより、それらの文字列から HTML タグを取り除くことができます。 (ただし、現在この関数は正常にすべてのタグを取り除くことができません。)

          (mixi-remove-markup (mixi-diary-content diary))
              => タグ取り除き済み文字列

カスタマイズ
******

mixi.el にはユーザが動作をカスタマイズするためのいくつかの変数が用意されています。単一のオプションを指定してカスタマイズするためには M-x customize-option を、グループ (mixi.el の場合のグループは mixi) に属するすべてのオプションを変更するためには M-x customize-group を使用することができます。

ユーザオプション一覧
==========

 -- User Option: mixi-url
     mixi のサイトの URL を指定します。

 -- User Option: mixi-directory
     キャッシュファイルやクッキーなどを格納するためのディレクトリを指定します。

 -- User Option: mixi-coding-system
     mixi の web ページで使用されているコーディングシステムを指定します。

 -- User Option: mixi-curl-program
     バックエンドとして curl を使う場合の起動するプログラム名を指定します。

 -- User Option: mixi-curl-cookie-file
     バックエンドとして curl を使う場合のクッキーファイルを指定します。

 -- User Option: mixi-backend
     使用するバックエンドを指定します。

     w3m
          Emacs Lisp プログラム emacs-w3m を使用します。

     url
          Emacs に同梱されている url.el を使用します。

     curl
          外部プログラム curl を使用します。

     バックエンドを明示的に指定しなかった場合は上記表の上から順番に自動的に決定されます。

 -- User Option: mixi-login-use-ssl
     mixi にログインする際に SSL を使用するかどうかを指定します。 SSL を使用する場合は、バックエンドが url のときは外部プログラムとして gnutls-cli あるいは openssl コマンドが必要になり、バックエンドが w3m のときは -with-ssl でコンパイルされた w3m コマンドが必要になります。

 -- User Option: mixi-default-email
     mixi にログインする必要が出た場合に使用するメールアドレスを指定します。この値を指定していない場合は、対話的に入力が求められます。

 -- User Option: mixi-default-password
     mixi にログインする必要が出た場合に使用するパスワードを指定します。この値を指定していない場合は、対話的に入力が求められます。

 -- User Option: mixi-accept-adult-contents
     アダルトカテゴリのコミュニティを閲覧しても問題ないかどうかを指定します。

 -- User Option: mixi-continuously-access-interval
     mixi のサイトは自動ツールなどで短時間に連続してアクセスした場合、その接続を拒否する旨のメッセージを表示します。接続を拒否された場合に待機する秒数を指定します。

 -- User Option: mixi-replace-tab-and-space-to-nbsp
     主に mixi への投稿時、整形された状態を保つためにタブとスペースを文字実体参照である &nbsp; へ置換するかどうかを指定します。

 -- User Option: mixi-cache-expires
     mixi オブジェクトのキャッシュの有効期限を指定します。

     数値
          有効期限を指定した数値秒に設定します。

     t
          常に期限切れとして扱います。

     nil
          常に期限が切れていない物として扱います。

 -- User Option: mixi-cache-use-file
     mixi オブジェクトのキャッシュをファイルとして保存するかどうかを指定します。 (ただし、現在この機能は実装されていません。)

良くある質問と答え
*********

この章ではよく聞かれる質問に対する答えと便利な設定例を紹介します。

Cannot retrieve というエラーが出ます
==========================

なんらかの原因により mixi のサイトに接続できなかった場合、以下のようなエラーが発生することがあるかもしれません。

     mixi-url-retrieve: [mixi] Cannot retrieve: http://...

そのような場合は以下を確認してください。

  * 通信回線に異常がないかどうか

  * 使用している PROXY に異常がないかどうか

  * mixi のサイトがメンテ中あるいはダウンしていないかどうか

  * 使用しているバックエンドでエラーで示されたページにアクセスできるかどうか

セキュリティが心配なので SSL でログインしたいのですが
=============================

mixi-login-use-ssl を t に設定することで SSL でログインするように設定できます。

バグレポート
******

mixi.el を使用していると予期せぬエラーが表示されたり、あるいはあなたの期待した動作をしないことがあるかもしれません。mixi.el を最新版にしてもなお問題が解消されない場合、それは mixi.el の不具合の可能性があります。

エラーが表示される場合
===========

エラーが表示される場合はバックトレースを取得してデバッグにご協力ください。バックトレースの取得方法は以下の URL が参考になります。

プログラムの作者にバグを知らせる方法 (初心者向け) (http://www.jpl.org/elips/BUGS-ja.html)

バックトレースが取得できたらそれをなんらかの方法で作者に届ける必要がありますが、残念なことに mixi のメッセージはファイルの添付ができません。メール、どこかのアップローダ、Web サイト、FTP サイト、手段はなんでも構いませんので、なんらかの方法で作者までそれを届けてください。さらに、同じ不具合で困っている人が他にもいるかもしれませんので、エラーの内容を mixi-el コミュニティ (http://mixi.jp/view_community.pl?id=1596390) 内の不具合報告トピックへも投稿してください。

なお、バックトレース内には表示しようとしていた mixi ページの内容が含まれています。できるだけプライバシー上問題ないと判断される再現手順でのバックトレース取得をお願いします。下手に内容を改ざんされますとデバッグに支障を来たす恐れがありますのでご注意ください。

期待した動作をしない場合
============

仕様か不具合かは分からないけれど期待した動作をしない場合、最低限以下の内容をできるだけ詳細で具体的に mixi-el コミュニティ (http://mixi.jp/view_community.pl?id=1596390) 内の不具合報告トピックへ投稿してください。

  * どういう動作を期待して

  * どういう操作を行なったが

  * どういう結果が得られた