- 2010-03-22 (月) 15:20
- MovableType


- NicheActionsプラグイン ver.2.0
久しぶりにアクションストリームプラグインを作成しました。Niche Actions プラグインの ver.2.0になります。幾つかの機能追加に挑戦しましたが、XPathで指定できる限界があるようで、不完全な実装部分も存在します。クラスを追加してPerl側で処理すれば対応可能なようですが、ひとまずconfig.yamlのXPath指定のみで作成しました。この点については改良の余地ありと思っていますので、そのうち対応するかもしれません。
References:
- 関連エントリー1:「仮称(ニッチアクション)NearFuture! - WolaWola」
- 関連エントリー2:「NicheActions Plugin - WolaWola」
- 関連エントリー3:「NicheActions Pluginを更新しました - WolaWola」
- プラグインページ:「NicheActions Plugin - WolaWola」
- ソース管理・履歴:「MtPluginsNicheActions - oscar's CODE」
Features:
プロファイルサービスとして「二卍・ブクログ・アマゾンお気に入りリスト・ボケて・Amebaなう・Googleバズ」が追加されます。そのプロファイルの更新アクションが取得表示可能になります。
New Features in:
現在のバージョンは、Ver.2.0.1です。
私が使用していない為、Smart.fmの動作チェックが出来なかったので、除外しました。
Hoorayはサービスが終了しているようなので、除外しました。
アクションについての記述を、直接UTF-8でconfig.yaml内に日本語記述するようにしました。その結果、プラグインは日本語専用になりましたが、プロファイル追加画面でのサービス名表示など、いろんな箇所で日本語で表示されるように出来ました。
MT5.0ではAction Streamsの同梱が中止になったので「最近のアクション・改」ウィジェットを除外しました。
Googleバズのサービスとアクションを追加しました。
Amevaなうのサービスとアクションを追加しました。
アマゾンのお気に入りリスト取得が動作していなかったようなので、現在の内容で取得できるように更新しました。
ブクログの取得アクションを拡張しました。
- 状態「読み終わった・積読・等」毎のアクションを指定できるようにしました
- サムネイルを含んだデータの取得するようになりました
- 本に指定したカテゴリが取得出来る様になりました
Requirements:
Movable Type 4.1以降・Movable Type 5.01での動作確認済み
MT4.24以下の場合 Action Streams Plugin
MT5.0以降の場合 アクションストリームプラグイン(MT5用)
MT4.25以降のMT4.xではActionStreams2.xが同梱されていますので、別途導入する必要はありません。
Installation:
- 最初にAction Streamsプラグインをインストールしておきます。参照1:参照2
- ダウンロードしたZipアーカイブを解凍し、「plugins」フォルダ内のにある「NicheActions」をフォルダごと、MTインストールフォルダ内のthe「plugins」ディレクトリにアップロードします
- 同じく「mt-static」以下にあるファイルを、MTのスタティックディレクトリ(通常はmt-staticです)以下にアプロードします。
- 自分のシステム・プロフィールページ(ダッシュボードのThis is you内のプロフィールの編集のClickか、右上に表示されてるユーザ名のClick)へ移動します。
- 左上の「プロフィール」「権限」の下の「Other Profiles(利用サービス)」をクリックします。(MT4.xの場合) もしくは右に表示されている「ユーザー属性」ウィジェット内の「利用サービス」をクリックします。(MT5.xの場合)
- 「Add Profile(プロフィールを追加)」をクリックすると、追加画面になります。Serviceのプルダウンから追加したいサービスを選択し、Username(ユーザー名)入力欄にサービスのユーザー名を入力します。
- Action Streams(アクションストリーム)以下に表示されている、選択したサービスから集めるアクションストリームにチェックを付け、「Add Service(プロフィール追加)」ボタンを押してプロファイルとアクションの追加を行います。
- 追加後に対象アクションの即時取得が実行されます。「アクションストリーム」ぺーじで、結果を確認します。ただしアクション変更日時を正しく受け取れるアクションの場合は、リストが日時順に並んでいますので、ページ送りが必要です。
- Action Streams2.0以降では、利用サービスページに「今すぐ更新する」というボタンが追加されました。タスク実行を待たずに、追加済みアクションの変更情報の取得が可能になっています。
- MT本体のアクションストリームのアイコンが、テンプレート上で表示出来ない理由は、アクションストリームのアイコン情報が、読み込んでいるスタイルシートに追加されていないからです。別途「<MT:StaticWebPath>plugins/ActionStreams/css/action-streams.css」を読み込むか、下記の様にスタイルシートに追加し再構築することで、アイコンが表示されるようになります。
- 追加したアクションストリームプラグインのアイコンが、テンプレート上で表示出来ない理由は、追加プラグインのアイコン情報が読み込んでいるスタイルシートに追加されていないからです。各プラグイン毎のアイコン登録を追加するか、もしくは下記の様にスタイルシートに追加し再構築することで、アイコンが表示されるようになります。
アクションストリームの全プラグインのアイコンを登録する場合
<mt:ProfileServices>
<mt:if name="icon_url">
.service-<mt:var name="type"> {
background-image: url(<mt:var name="icon_url">);
}
</mt:if>
</mt:ProfileServices>
追加アクションストリームプラグインのアイコンを登録する場合
<mt:ProfileServices extra="1">
<mt:if name="icon_url">
.service-<mt:var name="type"> {
background-image: url(<mt:var name="icon_url">);
}
</mt:if>
</mt:ProfileServices>
Caution:
以前の単独の二卍やブクログプラグインや、旧バージョンのNiche Actionsプラグインなどは、事前にpluginsフォルダから削除しておいて下さい。
DownloadLink:
NicheActions2_0_1.zip:2010/03/22 18:55 Added.
VersionHistory:
# v0.1 - FirstRelease. Not Published.
# v0.2 - Add DashBoardWidget. NicheActions v0.2.zip
# v0.3 - Modify SomeActions. NicheActions v0.3.zip
# v2.0 - Modify,Remove and Add Some SomeActions. Only Japanese Use.NicheActions2_0_0.zip
# v2.0.1 - Modify AmebaNow Action.
Repliction:
Googleバズ アクションには時間情報が含まれていませんでした。その為、取得時間が発言の時間として、セットされます。勘違いでした、取得できてます。
Amebaなう ウェブページ上にはフィードは存在しませんが、個人の発言をRDFで取得出来るようなので、そこから情報を読み取っています。ただしその情報には個別発言のURLが含まれていない為に、取得したアクションはURLを持っていません。
アクション出力するテンブレートで無条件でURLを出力するようになっている場合は、空の出力になりますので、条件分岐の追加をお勧めします。
ver.2.0.1で対応した取得できる情報の組み合わせで、なうへのURLを作成できるようになりました。
<mt:if name="service_type" like="amebanow">
<a href="http://now.ameba.jp/<$mt:StreamActionVar name="ameba_id"$>/<$mt:StreamActionVar name="via_id"$>/"><$mt:StreamActionTitle escape="html"$></a>
<mt:else>
<a href="<$mt:StreamActionURL$>"><$mt:StreamActionTitle escape="html"$></a>
</mt:if>
AmebaなうのRDFには独自の情報が含まれていたので、そのデータを取り込むようにしてあります。
- ameba_id: amebaId/child::text()
- 自分のIDです <$MTStreamActionVar name="ameba_id"$>
- reply_id: replyAmebaId/child::text()
- リプライ相手のIDの様です <$MTStreamActionVar name="reply_id"$>
- reply_entry: replyEntryId/child::text()
- リプライ先のエントリーIDです <$MTStreamActionVar name="reply_entry"$>
- reply_name: replyNickname/child::text()
- リプライ相手の名前です <$MTStreamActionVar name="reply_name"$>
- org_img: originalImageUrl/child::text()
- 画像が添付できるようになっていますが、その画像へのURLです <$MTStreamActionVar name="org_img"$>
- thumb_img: thumbnailImageUrl/child::text()
- 添付画像のサムネイルURLです <$MTStreamActionVar name="thumb_img"$>
ブクログには、読書の状態を設定する機能があり、状態毎にフィードが出力されています。今回はこれを登録時に選択出来る様にしました。状態設定で絞り込まれていないフィードを、選択する事も可能ですが、その場合他のフィードも一緒に選択してしまうと、取り込むアクションが重複する可能性もあるので、注意してください。
読書状況:「読みたい」「いま読んでる」「読み終わった」「積読」
他に「指定なし」という状態も存在しますが、「指定なし」の状態の本のみを取得できるフィードは無いようです。
ウェブ上で設定出来るカテゴリーを、取得します。以下のタグで、出力が可能です。
<$MTStreamActionVar name="category"$>
フィードには、サムネイルも含まれていて、そのデータを取り込んで、出力出来る様になっています。ただし通常のサムネイルの処理と異なり、<$MTStreamActionVar name="thumbnail"$>で取り出せる内容は、書籍のサムネイル画像にブクログの書籍ページへのリンクが貼られたものになります。これは取得するサムネイルを含む箇所が、CDATAエリアとなっていて、この部分の内側をうまく指定するXPath記述を私が見つけられなかったからです。
CDATAエリア内の改行も含まれているので改行をコードとホワイトスペースを削除するべきでしょう。<$mt:Var name='thumb_block' strip_linefeeds='1' trim='1' regex_replace='/_SL160_\.jpg/','_SL160_.jpg" alt="'$>とすると以下のように成型されたリンクを出力できます。
<a href="http://booklog.jp/asin/4048730959"><img src="http://ecx.images-amazon.com/images/I/61P1KEVRVTL._SL160_.jpg" alt=""/></a>
サムネイルの有り無しの判断をせずに出力されるので空の場合に分岐させたり、どうしてもサムネイルのみにしたい場合、異なるリンク先で出力したい場合には、出力を正規表現で置き換えてやってみてください。
以下はサムネイル画像が含まれる時(_SL160_というサムネイル画像に出現するファイル名の一部で判断している)に、サムネイルブロックのサムネイル画像サイズを160pxから110pxに変更し、画像のタイトルをalt属性として追加したものを出力します。
<mt:StreamActionTitle escape="html" setvar="book_title" />
<a href="<mt:StreamActionURL escape="html">"><$mt:Var name="book_title"$></a>
<mt:StreamActionVar name="thumbnail" setvar="thumb_block" />
<mt:if name="thumb_block" like="_SL160_">
<br /><$mt:Var name='thumb_block' strip_linefeeds='1' trim='1' regex_replace='/_SL160_\.jpg/','_SL110_.jpg" alt="<$mt:Var name="book_title"$>'$>
</mt:if>
61P1KEVRVTL._SL75_.jpgが長辺75pixel、61P1KEVRVTL.jpgがオリジナルサイズ475pixelのようです。
- Newer >: Movable Type 5プロフェッショナルガイド
- < Older: ActionStreamsの出力を正方形サムネイルで使用する
ping a Trackback
- TrackBack URL for this entry.(1)





スクリプトの読み込みが完了していません。
メールフォーム(Javascriptを使用していません)や、
Twitter経由のCommentでもReplyいたします。ただし返信はブログのコメントとして行う事もあります。