ついカッとなってPocketの未読記事をランダムに読めるWebサービス「RandomPocket」をつくりました。

追記(2016/01/28):
本記事で紹介しているサービス「RandomPocket」はすでに閉鎖しています。

ついカッとなって(現実逃避)、Pocketの未読記事をランダムに表示してくれる「RandomPocket」というWebサービスをリリースしました。

動機など

なんでもかんでもPocketに登録する癖がついてしまった僕。気がついたら未読記事の数が5000件以上になっていました。

「Pocketにたまった未読記事を何とかしたい。埋もれた記事をちゃんと読みたい。」

そんな風に思ったのがこのサービスを作ろうと思ったきっかけです。

もしかしたら誰かの何番煎じかもしれません。ちゃんと調べてません。

参考にしたのは、StumbleUponというサービス。

製作時間はざっと8時間ほど。とりあえず公開してもいいレベルになったと判断して、リリースしました。

ざっくりとした紹介

すでにお持ちのPocketのアカウントを使って、RandomPocketのアカウントを登録します。

スクリーンショット_2013-04-29_20.31.27

すると、Pocketとの未読記事同期処理が始まります。未読記事の件数にもよりますが、少し時間がかかります。

スクリーンショット_2013-04-29_20.31.49

同期処理が完了すると、ビューワーが表示されます。といっても、画面のほとんどの領域が記事に占領されています。

画面上部に表示されている黒い帯を操作することで、

  • 記事をPocket上でFavorite or Archive
  • 記事に対して「いいね!」「はてブ」
  • 記事を別タブで開いてRandomPocketを介さずにアクセス
  • 次の記事をランダムに表示

などが行えます。

スクリーンショット_2013-04-29_20.32.30

Pocketとの同期処理は自動では行われませんので、同期したい場合は右上のメニューから「Pocketと同期」を選んでくださいね。

技術的なところ

サーバサイドはRuby on Rails 3.2、インフラにはHerokuを使っています。

同期処理に時間がかかることが予想されたので、Resqueを使った非同期処理にチャレンジしてみました。

ハマったところ1: X-Frame-Optionsヘッダ

記事のコンテンツをiframe要素を使って表示しているのですが、サイトによっては「X-Frame-Options」ヘッダを使ってiframe内での表示を防いでいるところがあるようです。(Qiitaやhatenablogなど)

ブラウザにURLを渡して、iframe要素のsrc属性に該当するサイトのURLを渡すと何も表示されないので、事前にサーバ側でサイトにアクセスし、X-Frame-Optionsヘッダの有無とその値をチェックするようにしました。

X-Frame-Optionsヘッダについては以下のサイトが参考になりました。

iframe内からWebページが読み込まれるのを防止する X-Frame-Options HTTP レスポンスヘッダ – buzzword update

ハマったところ2: Heroku上でのResque

HerokuでResqueのWorkerを動かす方法が最初わからず、かなり調べ物をしました。

最終的には以下の記事を参考に、Heroku上でWeb用、Worker用の2つのアプリを立ち上げることで、Resqueを利用しつつもHerokuの無料利用枠で収めることができました。

Heroku Cedar Background Jobs for free! | ☠ nofail

まとめと今後の展望

「まずは自分用に」と作ったサービスなので、しばらく使いこんでみて、使いにくかったり、満足いかない部分を修正していければと思います。

また、iPhoneでもランダムに記事が読みたいので、iPhoneアプリを自分用にリリースすることも考えています。(RubyMotionの勉強用)

もし自分以外にも使ってくださる人がいらっしゃったら、ぜひご意見・コメントいただけると幸いです。
それではー。

  • Pingback: 面白サービス!Pocketの記事をランダム表示で消化できる! | iPhone,カメラ,文房具,ガジェット好きタイラのガジェット的Blog()

  • same_golgo

    Gigazineで見つけて使ってみました。
    すごくいいです。

    アーカイブ:Evernoteへ突っ込む
    スター:もう一度じっくり読む
    という運用をしているので、記事の削除が出来ればもっと良いのですが。

  • コメントありがとうございます!作りっぱなしで特にアップデートもせずに申し訳ないです!

    僕はアーカイブを削除みたいな意味合いで使っていますが、確かに削除は削除として使えたほうがいいですよね!時間があるときに更新してみます!

  • K子

    すみません、こちらのサービスはもう使えないのでしょうか?
    脱毛エステのページに飛んでしまうのですが…。

  • すみません、すでに閉鎖しています。
    せっかく見つけていただいたのに申し訳ないです。

  • K子

    そうでしたか。
    わかりました、わざわざお返事ありがとうございます。