Queryfeedで出力されたRSSフィードをThunderbirdで読めるようにする
TwitterのつぶやきをRSSフィード化してくれるサービスQueryfeedですが、これが出力したフィードをThuunderbirdで購読しようとすると
フィードのURLが正しくありません。 フィードが有効か確認して正しいURLを取得します。
というエラーが発生して受け付けてくれません。
エラーメッセージのリンクをクリックすることでW3C Feed Validation Serviceに誘導されあちこち不具合を指摘されますが、Thunderbirdが致命傷と認識しているのはそのうちのMissing channel element: link、つまり
タグ中にタグが出てこない
という箇所です。
ならば「何でもいいからタグを追加してしまえ!」ということで、こんなPHPプログラムを書いてみました。
Google App Engine for PHPでも動くようにcURLではなくfile_get_contents()を使用しています。
<?php $query = urlencode($_GET["q"]); $result = file_get_contents("https://queryfeed.net/tw?q=".$query); header("Content-Type: application/rss+xml; charset=utf-8"); echo preg_replace("|</webmaster>|", "</webmaster><link>https://queryfeed.net</link>", $result);
qパラメータを素通ししているのでQueryfeedでのURIのアドレス部分をこのプログラムをホスティングしているサーバのURLに書き換えるだけでOKです。
手元のThunderbird(38.2.0)はこれで正常に購読できるようになりました。