Googleリーダー→Tiny Tiny Reader
- 公開日: 2013/05/06(月) 18:05[JST]
- 更新日: 2021/01/13(水) 21:30[JST]
Googleリーダーが2013年7月1日に廃止されるということなので、代替のRSSリーダーを検討することになった。条件は以下の通り。
複数の端末からアクセスするからサーバサイド型
パスワード管理がめんどいので外部のサービスはあまり使いたくない。
FreeBSDのportsでインストールできるやつがいいな。
てことで、Tiny Tiny RSS(tt-rss)をいれることにした。インストールはportsのwww/tt-rssであっさり終了。設定は、インストール時のメッセージにしたがってまずmysqlを設定、次いでtt-rssがインストールされたディレクトリにあるconfig.phpを編集。む、プロキシの設定が無いのが気になる。ファイアウォールの内側からでは使えない?
で、ブラウザからtt-rssに接続して、GoogleリーダーからエクスポートしたOPMLファイルをインポート。うむ、やはり動かない。
てことで「tt-rss proxy」ぐぐってみる。まず公式サイトの掲示板。ふむふむ、RSSの取得にはMagpieとかSimplepieとかいうのを使っていて、そのソースをいじればできるんじゃね?、ということか。tt-rssのツリーを見ると、lib/simplepie/simplepie.incというやつがある。これをいじればいいのかな。
で、次に「simplepie proxy」で検索してみると、Codelab Blogに答えが載っていた。
curl_setopt($fp, CURLOPT_PROXY, 'プロキシサーバのIPアドレス');
curl_setopt($fp, CURLOPT_PROXYPORT, プロキシサーバのポート);
を、curl_setoptがたくさん設定されている辺りに追加すればいい、ということのようだ。やってみる、けど動かない。うーむ。
で、気づいたんだけど、「プロキシを使うかどうかもcurl_setoptで設定しなきゃいけないんじゃね?」ということで、PHPのオンラインマニュアルを読んでみる。CURLOPT_HTTPPROXYTUNNELってのがそれっぽい。てことで、
curl_setopt($fp, CURLOPT_HTTPPROXYTUNNEL, TRUE);
curl_setopt($fp, CURLOPT_PROXY, 'プロキシサーバのIPアドレス');
curl_setopt($fp, CURLOPT_PROXYPORT, プロキシサーバのポート);
としてみたところ、うまく動作した。さようなら、Googleリーダー。
(2014/1/5追記)
これで一応は動作してたんだけど、サーバを再起動する度にRSSに接続できず、サーバ起動後にttrssを手動でrestartしなきゃならなかった。理由を調べて見たところ、include/functions.phpの方でプロキシを設定すれば良いことがわかった。つまり、curl_setoptがたくさん設定されている辺りに
curl_setopt($ch, CURLOPT_PROXY, 'プロキシサーバのIP:ポート');
を追加してやることにより、上記の問題が解消された。
(2021/1/13追記)
現在では状況が変わり、 config.php のコメントには記載されていないものの、以下の一行を追加することでプロキシを設定できるようになった。
define('_HTTP_PROXY', 'http://プロキシサーバのIPアドレス:プロキシサーバのポート');
デフォルトではcURLも使わないようになった模様。また、今年からDocker以外のサポート(つまりサーバ環境への直接のインストール)は徐々になくなっていくらしい。FreeBSDのpkgやportsでサポートされなくなるのも時間の問題かも。代替のRSSリーダーどうしよう。Bottle+MySQL+cURLあたりで自作しようかな。調べたらfeedparserというものがあるらしい。