はてなグループで書いている「1日1ニコ」をmixiに転載したいのだけど、
手でやると面倒だし、せっかくmixiの日記投稿APIが発見されてるんだから、
なんかできないものか…と思って、ちょっと自動化してみた。

この辺の話の続きで、暫定の解決策です。

mixiとMovableTypeの両方に投稿したいのだ…が。良い案がない。 の続き。


簡単なロジックは以下。
  1. はてなグループニコニコ部にエントリを書く。
  2. 定期的に該当ブログのRSSを取得しDBに蓄積する。フラグを0にセット。
  3. 定期的にDBをチェックし、フラグが0のものをmixiに投稿してフラグに1をセット。
  4. 時間があるときにmixiをチェックして出来をチェック。

至極、単純な構造。
RSSが全文配信になっていれば、グループ用のAPIが無くったって、
スクレイピングで何とかなる(getだけだけどね)。


コツ。

  • RSSを全文配信にしておく。
  • はてな記法からmixiへの変換をきっちり決めておく(無料と有料とでも違う)。
  • はてなはよく落ちるのでエラー処理にはご注意を。




はてな記法→mixiについては…制限がいろいろあるのであれだけど、
基本的にニコニコ動画のコードは全部、外部プレイヤーに変換するようにしています。
はてなはiframe形式のサムネイルが貼れるけど、mixiは貼れないから。
(API経由でも外部プレイヤーはきちんと貼れます)

それから、文中のリンクについてはすべてリンクを外してます。
有料会員だとタグが書けるんだけど、無料会員は書けないので。
代わりに行頭に置かれているようなリンクについては、

こんなやつ

リンクされているテキストとURLを取り出して2行で書くように。

http://hoge.com/sample
こんなかんじね。

URLの自動リンクは無料会員でも有効なので。


あとは、小見出し(はてな記法で言うところの「**」)は一緒にピックアップされるので、
タグを外して適当な頭出しをしておくとか、
<p>とか<div>とかは削除しておくとか、脚注は表示しないとか、その辺。



日記投稿の処理の部分については、
id:shimookaさんのServices_MixiAPIを利用させていただきました。

日記投稿APIを追加したServices_MixiAPI 0.2.0リリース - Do You PHP はてな

まぁだいたい、サンプルで書いてあるものそのままです。
画像を投稿することはないのでものすごくシンプルに仕上がってます。



ちなみに何でRSSをそのまま投稿するんじゃなく、
間にDBを一回かませてるかというと、同時にDBが欲しかったというのが1つ。
DB化してあれば、動画IDだけ期間決めてピックアップするとか出来るし。
(むしろ取得の課程で動画IDだけ別のテーブルに記録してけっていう話か)
これでニコニコ動画のマイリストにPOSTできるAPIがあれば完璧なんだけどね(苦笑)

もう一つは、重複して投稿してしまうリスクと、投稿に失敗するリスクを天秤にかけた結果、
重複投稿のリスクの方がより避けたいリスクだと判断したので。
登録済みをデータファイルなどに記憶するのもアリだけど、
自分の感覚だとそれをきっちり記録していくのに不安を感じたので。

手違いでRSSのリストにある日記が全部mixiに投稿されて、
マイミクの日記一覧を占拠して迷惑かけるとか、いかにもやっちまいそうなので。
ちょっと間に手間挟んでみました。
mixiじゃなければただ削除するだけで、知ったことじゃないんだけどさ。



ひとつ、根本的な難点をあげるとすれば…

他のブログの転載とか要約とかを読んでみんな嬉しいのかな…という点。
まぁ今ですらすでにマニアックな日記になってるから別に良いんだけども(苦笑)、
なんとなくなープログラムで動いてると思ったら気持ち入ってないように見える…ような。
気にしすぎかな。

あんまり気になるようだったら、止める方向でー



以上、ソースを1つもさらしてないけど(苦笑)、
技術的メモでした。