人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Plaggerを使って、はてなダイアリーの日記をmixi日記に自動で転載しています。
Publish::MixiDiary ( http://xcezx.net/blog/development/plagger-plugin-publish-mixidiary-2.html )を使用しているのですが、mixi日記に転載される際にリンクが全てテキストに置き換えられてしまいます。

例: <a href="http://hatena.jp">はてな</a> → はてな
(mixiプレミアムを使用しているので、日記内で<a>タグは使用可能です)

Publish::MixiDiary 44行目からの

>>
my $e = $args->{entry};
(中略)
my $body = $e->body_text;
<<

この部分でプレーンテキストに変換されていると言うことまでは判ったのですが、ここをどう修正すれば元のダイアリーそのままに転載することが出来るのでしょうか?

●質問者: えーぱーく
●カテゴリ:コンピュータ インターネット
✍キーワード:BODY mixi Plagger はてな はてなダイアリー
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● otsune
●60ポイント

*答え

$e->body

*解説

(Plagger内部について知りたくなければ読む必要は有りません)

Plagger::Entryオブジェクトにbodyというテキストアクセッサが定義されていて、それはPlagger::Textオブジェクトになってる。

そして正確に言うとPlagger::Entryの->body->dataにHTMLソースが入っているのだけど、lib/Plagger/Text.pmで

use overload q("") => sub { $_[0]->data }, fallback => 1;

とオーバーロードされているので普通に->bodyでアクセスするだけでok(のはず)。

ちなみにbody_textはlib/Plagger/Entry.pmで

sub body_text {
 my $self = shift;
 $self->body ? $self->body->plaintext : undef;
}

とわざわざPlagger::Text::plaintextメソッドでテキスト化してます。

◎質問者からの返答

回答ありがとうございました。

該当の方法で(mixi以外へは)HTMLそのままに出力することができるのを確認できました。

しかしmixi日記に関しては代わらずタグがすべて消去された状態で書き込まれるので、Plaggar以外の場所での不具合が起こっているのでないかと考えられます。

なのでもう一度RSS取得から書き込みまでの流れをすべて洗ってみようと思います。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ