mixi日記を結城浩さんの「はてなダイアリーライター」風に書き込むツールmixi Diary Writerを作ってみました。
処理の流れなどはほとんどそのまま流用させていただいています。nScript版の時もそうでしたが、大変感謝しております。
*概要
mixi Diary Writerは、ローカルに作ったテキストファイル(new.txtや2004-12-13_123456.txt)をmixi日記のデータとして自動書き込み・編集・削除をするためのスクリプトです。
このツールを使うことで、以下のような点が実現できるようになります。
- Webブラウザ上ではなく、自分の使い慣れたテキストエディタで日記を書く。
- 長時間かけて書いた日記を送信中にサーバエラーでデータが消えることを回避する(マスターデータは手元にある)。
- ネットにつながっていないときにオフラインで日記を書く。
- 過去の日記の表現全体をまとめて直して、一気に送信する。もしくは一気に削除する。
- 指定した時刻まで下書き状態として日記投稿を保留する。
日記データとして記述されたテキストファイルの最終更新時刻を見て、新規作成されたファイルと再編集したファイルをmixiに送信するようにしているので、mixiサーバへ掛ける負荷も極力軽減するよう心がけています。
*インストール
*動作条件
以下の条件を満たす必要があります。
- mixiのユーザである必要があります。(尚、当サイトから会員招待はしておりません)
- Perlの処理系がインストールされていること。
- LWP::UserAgentモジュールが導入されていること。
- WWW::Mixiモジュールが導入されていること。
ちなみに作者はWindows XP Professional(SP1) + Active Perl 5.8.4で作成・検証を行っています。
*ダウンロード
ダウンロードはこちら:mixidiary.1.0.0.zip
*セットアップ
- 日記を記述していくフォルダを作ります。たとえばC:\mixi\diaryなど。
- 上記からダウンロードしたファイルを解凍して展開されるmixidiary.plをフォルダにコピーします。
*使い方
*基本的な使い方(新規投稿)
C:\mixi\diaryにnew.txtというテキストファイルを作り、メモ帳などのテキストエディタで開きます。
new.txtの内容は、次のように書いてください。
- 1行目が日記のタイトル(タイトルがいらないなら空行にする)
- 2行目以降が本文。改行があると改行されます。
以下に例を示します。
「今日は食べ過ぎた」の部分がタイトルになり、「これを書いている時点で」以降が本文となります。
今日は食べ過ぎた これを書いている時点でベルトがはちきれんばかりになっている。 朝こそ控えめだったが、昼前に・・・
日記ファイルの準備ができたら、コマンドラインから次のように入力します。
perl mixidiary.pl
そうすると、ログイン用のIDとパスワードを尋ねてきますので入力します。
パスワード認証後、問題なければ「タイトル」とともに「新規投稿成功」と表示されます。
C:\mixi\diary>perl mixidiary.pl e-mail: hogehoge@hugahuga.com password: foobar [新規投稿成功] 今日は食べ過ぎた -> 2004-12-12_123456.txt にリネームされました。
最後の~にリネームされましたというのは、new.txtというファイルが投稿された年月日と日記ひとつひとつに振られた番号をセットにした名前のものに変わったということを指しています。
今後、この日記を編集するときは(この例では)2004-12-12_123456.txtを編集していくという形になります。
*基本的な使い方(編集)
それでは先ほどの2004-12-12_123456.txtを編集してみましょう。
テキストエディタで2004-12-12_123456.txtを開いて、適当に追記してください。
そして、再びコマンドラインからmixi Diary Writerを呼び出すと次のような表示に変わります。
C:\mixi\diary>perl mixidiary.pl e-mail: hogehoge@hugahuga.com password: foobar [編集成功] 今日は食べ過ぎた
フォルダ内に複数編集しているファイルがあると、その数だけ[編集成功]などが表示されます。
*基本的な使い方(削除)
「今日は食べ過ぎた」の日記そのもの自体を削除することにします。
先ほどの2004-12-12_123456.txtを編集してみましょう。
テキストエディタで2004-12-12_123456.txtを開いて、1行目のタイトル部分「今日は食べ過ぎた」の部分を「delete」(半角小文字)に置き換えて上書き保存してください。
そして、再びコマンドラインからmixi Diary Writerを呼び出すと次のように表示され、mixi上の日記が削除されていることが確認できます。
C:\mixi\diary>perl mixidiary.pl e-mail: hogehoge@hugahuga.com password: foobar [日記削除完了] 123456
*画像を添付する。
mixi日記には1つの日記投稿に対して、3つまで画像(JPEG形式のみ)を添付できます。
*新規投稿の際の画像添付
new.txtとセットでnew_1.jpg, new_2.jpg, new_3.jpgというファイルを用意しておくと、それらもアップロードされます。アップロード処理後、new.txtと同様に、リネームされます。
*編集投稿の際の画像添付
先ほどの例でいうと、2004-12-12_123456_1.jpg, 2004-12-12_123456_2.jpg, 2004-12-12_123456_3.jpgの3ファイルが対象となります。
*画像添付時の注意点
画像ファイルもテキスト同様に最終更新時刻チェックの対象となっています。
送られるはずなのに?というときにはその点をご確認ください。
*複数の新規投稿をする
旅先、仕事場、帰宅途中など書き溜めた複数の日記を一気に投稿したいということも考え、new.txt以外でも新規投稿として扱う以下のルールを設けています。
- 拡張子は.txtである
- ファイル名は"new"であるか、"_new"で終わるか、"_new"の後に数字の羅列が続くもので終わること
- _newの前はなんでもかまわない
次のすべてが新規投稿の対象となります。
- new.txt
- _new.txt
- hogehoge_new.txt
- _new1234567.txt
- 2004-12-12_new12345.txt
画像添付時は2004-12-12_new12345.txtの場合、2004-12-12_new12345_1.jpg~2004-12-12_new12345_3.jpgのファイル名が対象となります。
*下書き(草稿)扱いにする。
タイトル部分(1行目)を「draft」(半角小文字)とだけ記述していると、mixiに送信されない下書き(草稿)状態となります。
とりあえず今書きかけだけど、他を更新しないといけないとかいうシチュエーションなどを想定しています。
*指定日時までは下書き(草稿)扱いにする。
「2005年1月1日0時0分0秒」になるまでは下書き(草稿)扱いにするという場合、以下のように1行目を記述します。
schedule:20050101000000:あけましておめでとうございます あけましておめでとうございます。旧年中は(以下略)
なお、年月日以降は足りない桁は0で埋められます。たとえば2004121314とすると「2004年12月13日14時0分0秒」と見なします。
*ログインメールアドレス・パスワードの指定方法
毎回入力するのが面倒な場合、次のいずれかの方法で自動かできます。
- コマンドラインパラメータの指定
- 設定ファイルの作成
*コマンドラインパラメータの指定によるログイン
次のように"-u"ならびに"-p"オプションを指定することで、ログイン処理を自動化できます。
C:\mixi\diary>perl mixidiary.pl -u hogehoge@hugahuga.com -p foobar
*設定ファイルの定義によるログイン
mixidiary.plと同じフォルダにconfig.txtというファイルを作り、次のような記述をすることで、ログイン処理を自動化できます。
id:hogehoge@hugahuga.com password:foobar
パスワードを書くことに抵抗がある場合はIDだけを埋め込むという手もあります。
id:hogehoge@hugahuga.com
この場合には、パスワードだけをキーボードから入力することになります。
*ライセンス・免責
なお、ライセンスについてですが、PerlならびにWWW::Mixiと同様にGPLないしArtistic Licenseです。
当プログラムの利用に際し、如何なる利益・損害が発生しても、プログラム作者は一切の責任を負いませんので悪しからず。
*問い合わせ・ライセンスなど。
このツールは私どなどなが独自に作成したものです。
株式会社イー・マーキュリー・結城浩さん・塚本牧生さんへの問い合わせはご遠慮ください。
バグ報告・機能要望などについては以下のいずれかの方法でお願いします。
- mixiメッセージ
- このエントリーへのコメント
コメント (1)
ひとまず複数投稿対応用のパッチをあげておきます。
詳細はぼくのmixi日記みてください(^^;
http://mixi.jp/show_friend.pl?id=102587
投稿者: どなどな | 2004年12月12日 23:35
日時: 2004年12月12日 23:35